2012-01-22 62 views
2

是否有管理從開發到生產的php.ini配置的最佳實踐?顯然它可以手動完成,但這很容易出現人爲錯誤。我想嘗試在版本控制中使用生產文件,然後可能會自動修改開發版本。 思考或想法我有過,我不知道他們是否可行:如何在生產和開發中管理不同的php.ini設置?

  1. 的php.ini包括 - 只包括開發設置在 文件結束了嗎?
  2. 來自apache conf的條件加載?
  3. 編寫一個腳本,當php.ini更改時,生成一個動態版本的phpdev.ini - (我知道這可以做到)
  4. 使用運行時php設置顯示錯誤 - 我認爲這有限制,因爲如果腳本有致命錯誤,那麼它不會運行運行時設置。
  5. 備份計劃 - 將產品版本保存在SC中,並根據需要手動更改phpdev.ini中的012dell.ini。然後如果手動失誤 它們在開發級別完成。
+0

什麼是你的應用程序部署過程?具體而言,當您部署應用程序時,您是部署代碼還是整個技術堆棧? – jcmeloni

+0

我想我可能也需要一些最佳做法。理想情況下,我想使其自動/防萬一(如果有這樣的事情)。目前部署是黑客/自定義數據庫升級腳本,並且svn update – Nick

回答

1
  1. 存儲您的INI在他們的環境中而得名不同的目錄你的源代碼庫:環境/ {開發,QA,分期,督促} /php.ini
  2. 在每一個環境,這樣做:rm /etc/php.ini; ln -s /var/www/site/environments/prod/php.ini /etc/php.ini

這樣,您將獲得版本控制的好處,並且不一定需要手動編輯每個版本。

+0

這似乎是實現我想要的最快方式。感謝您的建議。 – Nick

+0

我很高興這是幫助。不要忘記把你接受的答案投票。 –

+0

我在想這些,我仍然想知道是什麼阻止了在經過測試的開發版本中進行更改,但是生產版本沒有通過適當的更改進行更新?當移至生產環境時,這可能會導致應用程序出現問題。 – Nick

0

我不確切知道這是否是您要找的內容,但我個人喜歡通過apache虛擬主機設置執行所有非安全必需的php.ini修改,例如,開發虛擬主機:

ServerName sb.local 
    ServerAlias sb.local 
    DocumentRoot /srv/some-site 

    php_value session.cookie_domain "sb.local" 
php_value date.timezone "America/New_York" 
php_value mbstring.func_overload 7 
php_value default_charset "utf-8" 
AddDefaultCharset utf-8 

php_value session.gc_maxlifetime "990000" 
php_value error_reporting 30711 
# 30711 = E_ALL^E_NOTICE 
php_value display_errors "On" 
php_value display_startup_errors "On" 
php_value log_errors "On" 
php_value html_errors "On" 

相關問題