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では問題なく動作します。オンラインでの私の発見に基づいて、私は以下を試しました。
この問題はいずれも修正されませんでした。同じプロジェクトが別の共有ホスティングサーバーで正常に動作するため、次に何を試すかわかりません。
このエラーを解決するために何週間も試行した後。次の修正が機能しました
これで、cronジョブがスムーズに実行されます。これが誰かのお役に立てば幸いです。
これは、デバッグモードで有効になっている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,
],
デバッグモードで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を使用する必要があります。