昨日の前日、作曲家の更新があったので、フラフラはたくさんのものをアップグレードして問題なくエンコードし続けたので、真剣に受け止めませんでした。
翌日、サーバーへの展開の更新に問題があり、サーバー500エラーが報告され、特定の理由は示唆されませんでした。。。
レンガをテーブルに持ってきて、解決策を記録します。
1.サーバーに最初にエラーメッセージを表示させ、サーバーのphp.iniを編集し、display_errorsを見つけ、display_errors = Onに変更して保存し、サービスを再起動します
2.実行中のサービスは次のように表示されます
Parse error: syntax error, unexpected 'function' (T_FUNCTION),
expecting identifier (T_STRING) or \\ (T_NS_SEPARATOR)
in /data/qisi_class/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php
on line 5
通常、この種の文法エラーは、上位バージョンの記述と互換性のない下位バージョンの言語が原因で発生します
3.開発環境でサーバーのphpバージョン5.4.16、7.2.10を確認します
4.問題はここにあります。Composerはマシンの上位バージョンに従ってアップグレードされますが、サーバーの動作環境が低すぎて互換性がないためエラーが発生します
5.サーバーを何気なくアップグレードすることはできません。唯一の方法は、composerの一致するバージョンをダウングレードし、composer.jsonを変更して、次のコンテンツを追加することです
"config": {
***
"platform": {
"php": "5.4.16"
}
},
このようにして、composerは指定されたバージョンに従って依存パッケージを照合できます。
6. composerの更新を再度選択し、ダウングレード操作に依存し始めます
- Downgrading sebastian/recursion-context (3.0.0 => 1.0.5): Downloading
- Downgrading sebastian/exporter (3.1.0 => 1.2.2): Downloading (connecting...)
- Installing phpunit/phpunit-mock-objects (2.3.8): Downloading (connecting...)
7.ローカル環境のPHPバージョンは上位であり、下位互換性があるため、当然問題はありません。ダウングレードが完了するのを待ち、サーバーの再デプロイの問題を解決します。
心身の健康のために、作曲家のアップデートを注文するだけではありません。。。