我在本地機器上開發了一個Zend MVC,並使用DreamHost站點進行登臺。由於每zend quick start,我的本地機器上設置我的APPLICATION_ENV發展從.htaccess文件內的項目的公共目錄,如下所示:環境變量管理的最佳實踐
的myproject /公/的.htaccess包含此行,
「SETENV APPLICATION_ENV發展」
這在當地工作就好了。但是當我嘗試在我的登臺服務器中使用我的app_env時,它不適合使用。這thread建議可能suexec在後臺運行。我做了一些挖掘,果然,Dreamhost blocks custom environment variables。
我嘗試了DH建議的第一個解決方法,將「HTTP_」預先加入「APPLICATION_ENV」,然後在public/index.php中添加另一個條件以檢查原始版本和dreamhost版本。
// Define application environment
defined('APPLICATION_ENV') || define('APPLICATION_ENV',
(getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') :
(getenv('HTTP_APPLICATION_ENV') ? getenv('HTTP_APPLICATION_ENV') : 'production')));
這似乎不適用於我。即使在ssh中,當我在命令行中運行'env'時,我的application_env未被列出。由於我沒有使用CGI腳本,所以沒有考慮第二個和第三個解決方法。
TL;博士
所以,據我所知,我的選擇是要麼創建自己的配置系統(app_env保存到不同的文件,加載該文件在公共/ index.php文件,這似乎像更多的工作比值得考慮選項2)或者只是'將'app_env編碼到默認位置 - 意味着,而不是上面的代碼示例中的'生產',它只會說'暫存'。如果我使用後者,則必須使用.gitignore我的public/index.php文件,這似乎有點奇怪。在此之前,我從來沒有必要更改該文件,並認爲如果我不惹惱它會更好,更不用說完全將它留在我的存儲庫之外。 想法?建議?進一步的解決方法?
你使用的是什麼webserver? – 2012-04-21 11:32:04
dreamhost.com,這就是這個時刻,正在下降......不祥。 – dsulli 2012-04-22 07:41:38
我的意思是它運行什麼軟件,apache,nginx,zend服務器等... – 2012-04-22 09:28:06