Laravel 5.2:Process类依赖于proc_open,这在PHP安装中不可用

Seu*_*ope 8 php cron cpanel laravel-5.2

我使用cron job来使用laravel Task Scheduling进行一些CRUD操作.在localhost和我的Share-Hosting服务器上,它运行良好数月,直到最近我在我的Share-Hosting服务器上运行cron作业时仍然遇到此错误.我没有对我的Share-Hosting服务器上的代码进行任何更改.

[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:
Run Code Online (Sandbox Code Playgroud)

但是在localhost上运行正常.根据我在网上的发现,我尝试了以下内容.

  1. 联系我的托管公司删除proc_open表单禁用PHP功能.
  2. 托管公司提供自定义php.ini文件.我删除所有disable_functions
  3. 重新启动Share-Hosting Server并清除缓存

这些都没有解决这个问题.我不确定接下来会尝试什么,因为相同的项目在不同的Share-Hosting Server上运行良好.

Mah*_*our 10

Laravel 6 及更高版本(proc_open 错误)

这是因为在调试模式下启用了 Flare 错误报告服务有一个解决方法。

发布耀斑配置文件 php artisan vendor:publish --tag=flare-config

并在 config/flare.php

'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,
],
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用,Laravel Framework 6.18.2 和 PHP 版本 ea-php73 (3认同)

Seu*_*ope 9

经过数周试图解决此错误.以下修复工作正常

  1. 将项目从Laravel 5.2升级到5.4
  2. 在CPanel上使用"Select Php version"将PHP版本设置为7
  3. 或者在CPanel上使用"MultiPHP Manager"将PHP版本设置为ea-php70

现在,cron工作顺利进行.我希望这可以帮助别人.

  • laravel 6 是我的版本 (2认同)

Had*_*ote 5

您可以自担风险使用它:

/usr/local/bin/php -d "disable_functions=" /home/didappir/public_html/api/artisan schedule:run > /dev/null 2>&1 
Run Code Online (Sandbox Code Playgroud)