1

symfony2 アプリの本番環境へのデプロイに関するクックブックを読みました。開発モードではうまく機能することがわかりましたが、製品モードでは最初にサインインが許可されず (開発モードでまさにそれらの資格情報でサインインしましたが、資格情報が正しくないと言われました)、後でクリアとウォームアップを追加で実行した後、 prod キャッシュ、prod ルートから http500 を取得します。

構成ファイルを調べたところ、これが何か関係があるのではないかと思いました。

config_dev.php:

imports:
    - { resource: config.yml }

framework:
    router:   { resource: "%kernel.root_dir%/config/routing_dev.yml" }
    profiler: { only_exceptions: false }

web_profiler:
    toolbar: true
    intercept_redirects: false

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
        firephp:
            type:  firephp
            level: info

assetic:
    use_controller: true

config_prod:

imports:
    - { resource: config.yml }

#doctrine:
#    orm:
#        metadata_cache_driver: apc
#        result_cache_driver: apc
#        query_cache_driver: apc

monolog:
    handlers:
        main:
            type:         fingers_crossed
            action_level: error
            handler:      nested
        nested:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug

また、routing_dev.php はあるが、routing_prod がないことにも気付きました。prod 環境は私のローカルホストではうまく機能します。

4

1 に答える 1

0

実稼働環境で app/console cache:warmup コマンドを実行するときは、必ず次のように実行する必要があります:app/console cache:warmup --env=prod --no-debugまた、コマンドは現在のユーザーとしてキャッシュをウォームアップするため、すべてのファイルは現在のユーザーによって所有されるユーザーであり、Web サーバーのユーザーではありません (例: www-data)。これがおそらく、500 サーバー エラーが発生する理由です。キャッシュをウォームアップした後、これを実行します: (必ずWeb サーバーのユーザーchown -R www-data.www-data app/cache/prodに置き換えてください。www-data

parameters.iniファイルが適切な構成になっていることを確認してください。このファイルは、使用しているコード リポジトリにチェックインされていないことがよくあるためです。または(そして私もこれを行いました)devからprod parmeters.iniファイルにパラメーターを入れるのを単に忘れる可能性があります。

また、ログインしようとしたときに何が起こるかを確認するには、app/logs/prod.log を調べる必要があります。

于 2012-11-27T12:27:39.747 に答える