php - Laravel 6.18.2:Process 类依赖于 proc_open,这在您的 PHP 安装中不可用
问题描述
我使用 cron 作业使用 laravel 任务调度来执行一些 CRUD 操作。在本地主机上它工作正常。但是在我的共享主机上,我不断收到此错误。
2020-04-08 16:56:01] local.ERROR: The Process class relies on proc_open, which is not available on your PHP installation. {"exception":"[object] (Symfony\\Component\\Process\\Exception\\LogicException(code: 0): The Process class relies on proc_open, which is not available on your PHP installation. at /home/deshiit/public_html/bangladesh-railway-server/vendor/symfony/process/Process.php:143)
[stacktrace]
但是在本地主机上它工作正常。我联系了我的托管公司以删除 proc_open 表单禁用 PHP 功能,但他们不能。我尝试了这里给出的解决方案。但是这个解决方案不起作用。
我的 PHP 版本是ea-php73
. 我也试过ea-php71
和ea-php72
。
app/Console/Kernel.php
如果我
在
->withoutOverlapping();
命令后添加,
protected function schedule(Schedule $schedule)
{
Log::info('Cron Job Started 1.1');
$schedule->command('outlier:data')
->everyMinute()
->withoutOverlapping();
}
然后 proc_open 错误只给出一次然后
protected function schedule(Schedule $schedule)
每分钟都被调用,但它没有执行 handle() 函数
public function handle()
{
Log::info('Cron Job Started 2.1 in Commands/FindOutlier.php');
}
但是如果 I Clear Cache
,它再次给出一次 proc_open 错误,然后每分钟调用一次调度函数。
解决方案
根据上面的评论,确保 Flare 不收集 git 信息(它会尝试打开 git 进程并获取分支和标签信息)。
在flare.php(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,
],
现在,只有在我清除了配置和路由缓存之后,它才在我的 cPanel 实例上修复了它。确保您没有缓存任何内容,并且您的 OPCache 也已清除。
从我查看代码时看到的情况来看,Flare 是唯一一个调用proc_open
. 如果这仍然不起作用,请尝试禁用调试模式。
推荐阅读
- python - 我如何编写一个函数来创建字符串中选定字符的索引列表
- macos - 如何将代码注入 macOS 中的 arm64e 进程?
- javascript - axios 无法解决网络错误
- python - 如何将pyplot clabel的文本方向更改为直立?
- python - 如何使用 hascat 破解 werkzeug generate_password_hash() 哈希?
- excel - Excel VBA - 当包含 RTD 的列更新值时,在另一列中插入时间
- powershell - 是否可以为不同的 VS Code 终端配置文件使用不同的字体?
- c++ - 如何从文件中读取数字,然后按升序将它们写入两个文件,一次一个,写入一个文件,然后写入第二个文件?
- python - 如何使用 sqlite3 和 python 数据库在 Telegram 中保存用户的地理位置(位置)?
- node.js - 如何在mongodb中用另一个覆盖模式的一个字段