我已阅读有关将symfony2应用程序部署到生产环境的手册。我发现它在开发模式下运行良好,但是prod模式首先不允许登录(虽然我在开发模式下使用那些凭据登录时表示不良凭据),之后又进行了额外的清除和加温运行在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 encironment在我的localhost上工作得很好,所以......?
答案 0 :(得分: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,了解尝试登录时会发生什么。