プロジェクトを.env
でprod
モードに設定しましたが、カスタムエラーページ以外はすべて機能しているようです。
私はこれを404 twigテンプレート:
{# templates/bundles/TwigBundle/Exception/error404.html.twig #}
{% include 'builder/layout/header.html.twig' with {'title': '404'} %}
<img src="{{ assets('img/not-found.jpeg') }}" class="img-responsive"
id="error-not-found-img" />
<div class="http-error-msg-container">
<h1>404! Page Not Found</h1>
<p>Don't despair, go back to <a href="{{ path('dashboard') }}">Home</a> and try again.</p>
</div>
{% include 'builder/layout/footer.html.twig' %}
存在しないページ(たとえば/dashboard/giorgoirdjfisejf
)に移動すると、空白のページが返されます。そこで、これをindex.php
ファイルに追加しました。
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(-1);
エラーを表示するために、私はこれを手に入れました:
致命的なエラー:107行目の/var/www/solomon/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.phpで許可されたメモリサイズ134217728バイトが使い果たされました(20480バイトを割り当てようとしました)
致命的なエラー:1行目の/var/www/solomon/vendor/symfony/debug/Exception/OutOfMemoryException.phpで許可されたメモリサイズ134217728バイトが使い果たされました(32768バイトを割り当てようとしました)
なぜこれがエラーを引き起こし、デバッグできないのかよくわかりません。 var/log/prod.log
に何も表示されません。どうすれば解決できますか、それとももっと良い方法ですが、どうすればデバッグできますか?
私のprod/monolog.yamlファイル
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
excluded_404s:
# regex: exclude all 404 errors from the logs
- ^/
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
console:
type: console
process_psr_3_messages: false
channels: ["!event", "!doctrine"]
これは自動生成され、変更は加えていません
Symfonyログファイルのファイルパーミッションを確認してください。 monologがpermission denied
例外をキャッチし、それをログに書き込もうとして、同じエラーを何度もキャッチしているようです。
私の場合、スタックトレースが常にStreamHandler.php
の行171を指していることを除いて、エラーメッセージはほとんど同じでした。問題は、ComposerがWindowsで実行され、結果のファイルがLinuxシステムにコピーされたため、誤ったディレクトリセパレータが使用され、Symfonyが/var/www/html/var\log/prod.log
(バックスラッシュが含まれています)、これは明らかに失敗します。
したがって、後でアプリケーションを実行するのと同じOSでComposerを実行するようにしてください。