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 'SymfonyComponentProcessExceptionRuntimeException' 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.
6
Answers
After many weeks of trying to resolve this error. The following fixes worked
Now, cron job runs smoothly. I hope this helps someone.
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.
When Flare error reporting service enabled in debug mode you’ll see this error
The solution is:
Publish flare config file
in config/flare.php Set:
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
You can use this at your own risk:
if it is disabled you cannot run it
use phpinfo() to find out if it’s disabled