问题
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.
- Contacted my hosting company to remove proc_open form disable PHP functions.
- Hosting company provided custom php.ini file. I remove all disable_functions
- 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.
回答1:
After many weeks of trying to resolve this error. The following fixes worked
- Upgrade project from Laravel 5.2 to 5.4
- On CPanel using "Select Php version" set PHP version to 7
- Or on CPanel using "MultiPHP Manager" set PHP version to ea-php70
Now, cron job runs smoothly. I hope this helps someone.
回答2:
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.
回答3:
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,
],
回答4:
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,
来源:https://stackoverflow.com/questions/45419702/laravel-5-2-the-process-class-relies-on-proc-open-which-is-not-available-on-yo