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

配置产品:

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 服务器错误的原因。预热缓存后运行:(chown -R www-data.www-data app/cache/prod确保替换www-data为您的 Web 服务器用户。

确保您的parameters.ini文件具有任何适当的配置,因为该文件通常不会被检入到您可能使用的任何代码存储库中。或者(我什至已经这样做了)可能只是忘记将来自 dev 的参数放入 prod parmeters.ini 文件中。

您还需要查看您的 app/logs/prod.log 以查看尝试登录时会发生什么。

于 2012-11-27T12:27:39.747 回答