Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel 5.2: The Process class relies on proc_open, which is not available on your PHP installation

I use cron job to do some CRUD operation using laravel Task Scheduling. On localhost and on my Share-Hosting server it worked fine for months until recently I keep getting this error when I run cron job on my Share-Hosting server. I did not make any changes to the code on my Share-Hosting server.

[2017-07-14 09:16:02] production.ERROR: exception 'Symfony\Component\Process\Exception\RuntimeException' with message 'The Process class relies on proc_open, which is not available on your PHP installation.' in /home/xxx/xx/vendor/symfony/process/Process.php:144
Stack trace:

But on localhost it works fine. Based on my finding online I have tried the following.

  1. Contacted my hosting company to remove proc_open form disable PHP functions.
  2. Hosting company provided custom php.ini file. I remove all disable_functions
  3. Share-Hosting Server was restarted and cache was cleared

None of this fixed the issue. I am not sure of what next to try because the same project works fine on different Share-Hosting Server.

like image 309
Seunope Avatar asked Jul 31 '17 15:07

Seunope


3 Answers

You can use this at your own risk:

/usr/local/bin/php -d "disable_functions=" /home/didappir/public_html/api/artisan schedule:run > /dev/null 2>&1 
like image 154
Hadi Note Avatar answered Sep 30 '22 01:09

Hadi Note


After many weeks of trying to resolve this error. The following fixes worked

  1. Upgrade project from Laravel 5.2 to 5.4
  2. On CPanel using "Select Php version" set PHP version to 7
  3. Or on CPanel using "MultiPHP Manager" set PHP version to ea-php70

Now, cron job runs smoothly. I hope this helps someone.

like image 12
Seunope Avatar answered Oct 24 '22 04:10

Seunope


Laravel 6 and higher (proc_open Error)

It is because of Flare error reporting service enabled in debug mode There is a workaround for this.

Publish flare config file php artisan vendor:publish --tag=flare-config

and in config/flare.php

Set

'collect_git_information' => false 
'reporting' => [
     'anonymize_ips' => true,
     'collect_git_information' => false,
     'report_queries' => true,
     'maximum_number_of_collected_queries' => 200,
     'report_query_bindings' => true,
     'report_view_data' => true,
],
like image 11
Mahdi Bashirpour Avatar answered Oct 24 '22 03:10

Mahdi Bashirpour