2012-11-14 26 views
1

我已閱讀有關將我的symfony2應用程序部署到生產環境的食譜。我發現它在開發模式下效果很好,但prod模式首先不允許登錄(雖然我使用開發模式中的憑證登錄時輸入了錯誤的憑據),但後來經過多次清理和熱身後prod緩存,我只是從我的prod路線獲取http500。如何部署symfony2 - 我的開發環境工程,但不是生產

我原來在配置文件一看,不知道這有什麼關係呢:

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環境很好,但在我的本地主機,所以......?

+0

框架路由器參數默認是「%kernel.root_dir%/ config/routing.y ML」。 config_dev.yml覆蓋它以加載routing_dev.yml,它在加載routing.yml之前加載一些額外的dev路由(用於分析)。所以,不,我不認爲這應該是導致你的問題,除非你已經修改了routing_dev.yml並且把你所有的路由導入到那裏,而不是路由到.yml – redbirdo

+0

另外,你有沒有嘗試尋找在Web服務器/ PHP錯誤日誌,看看是否有任何進一步的信息? – redbirdo

回答

0

在生產環境中運行應用程序/控制檯緩存時:warmup命令需要確保以如下方式運行:app/console cache:warmup --env=prod --no-debug另外,請記住,該命令將以當前用戶的身份將緩存預熱,因此所有文件都將由當前用戶擁有,而不是Web服務器用戶(例如:www-data)。這可能是你得到500服務器錯誤的原因。在您的熱身緩存運行此:chown -R www-data.www-data app/cache/prod(一定要與您的Web服務器用戶更換www-data

確保您parameters.ini文件具有自常見於發生的任何適當的CONFIGS爲不檢查這個文件。你可能會使用任何代碼庫,或者(甚至我已經這樣做了),可能只是忘記將參數從dev設置到prods的parmeters.ini文件中

您還需要查看你的app/logs/prod.log看看當你嘗試登錄時會發生什麼

+0

謝謝我將檢查緩存文件夾的權限。我沒有使用存儲庫,所以這不是問題,我也從來沒有進入登錄屏幕,我只得到一個空白頁面(最有可能的http500),所以我不知道什麼是gonig。我會盡力查看日誌中是否有任何內容,謝謝。 –

+0

如果它只是一個空白屏幕,那麼它可能是一個緩存文件夾的權限問題。一旦你檢查出來,讓我知道你找到了什麼。 – lifo