web-dev-qa-db-ja.com

Laravel 5.2:Processクラスはproc_openに依存していますが、これはPHPインストールでは利用できません

Cronジョブを使用して、laravel Task Schedulingを使用してCRUD操作を実行します。ローカルホストと共有ホスティングサーバーでは、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では問題なく動作します。オンラインでの私の発見に基づいて、私は以下を試しました。

  1. ホスティング会社に連絡して、proc_open form disable PHP functions。
  2. ホスティング会社がカスタムphp.iniファイルを提供しました。すべてのdisable_functionsを削除します
  3. 共有ホスティングサーバーが再起動され、キャッシュがクリアされました

この問題はいずれも修正されませんでした。同じプロジェクトが別の共有ホスティングサーバーで正常に動作するため、次に何を試すかわかりません。

11
Seunope

このエラーを解決するために何週間も試行した後。次の修正が機能しました

  1. Laravel 5.2から5.4へのプロジェクトのアップグレード
  2. 「Select Php version」を使用するCPanelで設定PHPバージョンを7
  3. または「MultiPHP Manager」を使用するCPanelでPHP version to ea-php70を設定します

これで、cronジョブがスムーズに実行されます。これが誰かのお役に立てば幸いです。

9
Seunope

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,
],
8

デバッグモードで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,

キャッシュされたバージョンのconfig.phpファイルを削除すると、問題が解決します(Laravel 6)。 bootstrap/cache/config.phpに移動し、ファイルを削除します。また、APP_URLをドメインアドレスに変更することを忘れないでください。 PHP versionはlaravel version。


共有ホストの場合、php.iniを変更できない場合は、laravel 5.8を使用する必要があります。

2
reza jafari