Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.2:Process类依赖于proc_open,这在PHP安装中不可用_Php_Laravel_Cron_Cpanel - Fatal编程技术网

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

Laravel 5.2:Process类依赖于proc_open,这在PHP安装中不可用,php,laravel,cron,cpanel,Php,Laravel,Cron,Cpanel,我使用cron作业来执行一些CRUD操作,使用laravel任务调度。在localhost和我的共享托管服务器上,它工作了好几个月,直到最近我在共享托管服务器上运行cron作业时,一直出现这个错误。我没有对共享托管服务器上的代码进行任何更改 [2017-07-14 09:16:02] production.ERROR: exception 'Symfony\Component\Process\Exception\RuntimeException' with message 'The Proces

我使用cron作业来执行一些CRUD操作,使用laravel任务调度。在localhost和我的共享托管服务器上,它工作了好几个月,直到最近我在共享托管服务器上运行cron作业时,一直出现这个错误。我没有对共享托管服务器上的代码进行任何更改

[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:
但是在localhost上,它工作得很好。根据我在网上的发现,我尝试了以下方法

  • 联系我的托管公司删除proc_open form disable PHP函数
  • 托管公司提供了定制的php.ini文件。我删除了所有的禁用功能
  • 共享主机服务器已重新启动,缓存已清除

  • 所有这些都无法解决问题。我不确定下一步要尝试什么,因为同一个项目在不同的共享托管服务器上运行良好。

    经过数周的尝试解决此错误后。以下修复工作正常

  • 将项目从Laravel 5.2升级到5.4
  • 在CPanel上,使用“选择Php版本”将Php版本设置为7
  • 或者在CPanel上使用“MultiHP Manager”将PHP版本设置为ea-php70

  • 现在,cron作业运行顺利。我希望这能帮助一些人。

    对于我来说,删除config.php文件的缓存版本可以解决问题(Laravel 6)。 转到bootstrap/cache/config.php并删除文件。 另外,不要忘记将APP_URL更改为您的域地址。PHP版本应符合laravel版本的要求



    对于共享主机,如果无法更改php.ini,则应使用laravel 5.8。

    在调试模式下启用Flare错误报告服务时,您将看到此错误

    解决办法是:

    发布flare配置文件

    php artisan vendor:publish --tag=flare-config
    
    在config/flare.php集合中:

    '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,
    
    Laravel 6及以上(程序打开错误) 这是因为在调试模式下启用了Flare错误报告服务 这有一个解决办法

    发布flare配置文件
    php artisan供应商:发布--tag=flare配置

    config/flare.php中

    设置

    “收集信息”=>错误
    “报告”=>[
    “匿名化”=>正确,
    “收集信息”=>false,
    “报告查询”=>true,
    “收集的查询的最大数量”=>200,
    “报告查询绑定”=>true,
    “报告视图数据”=>true,
    ],
    
    您可以在风险管理中使用此选项:

    /usr/local/bin/php -d "disable_functions=" /home/didappir/public_html/api/artisan schedule:run > /dev/null 2>&1 
    

    这个错误让我发疯了。。。最后我意识到我在“routes/web.php”文件中犯了一个错误,处理路由的控制器方法设置错误。我解决了这个问题,错误消除了

    // wrong one :
    Route::get('test', 'TestController@test');
    
    // fixed one :
    Route::get('test', 'Panel\TestController@test');
    

    因此,在对复杂的配置文件进行任何更改之前,只需确保您拥有路线控制器的正确路径。

    您使用的是什么版本的Laravel?Laravel 6是我的版本不适用于我,Laravel Framework 6.18.2和PHP版本ea-php73hi,请向我显示命令。我在公司里找不到工作。我也有Laravel 7和Cpanel,我这样测试过:/opt/Cpanel/ea-php72/root/usr/bin/php/home/brooklyn/Sistema/artisan schedule:run>/dev/null 2>&1这对我不起作用,Laravel Framework 6.18.2和php版本ea-php73