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

Viewed 40687

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.

5 Answers

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,
],

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 

When Flare error reporting service enabled in debug mode you'll see this error

The solution is:

Publish flare config file

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

in config/flare.php Set:

'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,
    ],



'send_logs_as_events' => false,

For me removing cached version of config.php file solve problem(Laravel 6). go to bootstrap/cache/config.php and remove file. Also don't forget to change APP_URL to your domain address. PHP version should be as required by laravel version.


for shared host if you can't change php.ini, you should use laravel 5.8.

Related