我正在構建一個網站,該網站每天都會運行一系列cron任務來更新隨後在站點中使用的數據庫中的信息。我有三種環境設置:開發(我的電腦),分級和生活。共享主機上的帳戶和活動都是帳戶。我遇到的問題是根據運行代碼的環境來決定使用哪個數據庫訪問憑據。理想情況下,所有三個都將具有相同的憑據,但由於暫存和生命都在共享服務器上,所以我無法控制數據庫的名稱。我在我自己的計算機上鏡像了實時數據庫名稱和訪問憑據,但我無法在分段上執行此操作。檢測登臺服務器上是否正在運行Cron作業
我想要做的是自動選擇正確的環境正確的憑據時,我的cron任務運行,這樣的事情:
if(environment === staging) {
//define db access constants for staging here
else {
//define db access constants for live or dev here
}}
通常對於這樣的事情我會使用$ _ SERVER [ 'SERVER_NAME'],但是因爲這是在Cron中運行的$ _SERVER auto global不可用。我如何檢測腳本在cron作業中運行的環境?
訪問數組時應該是''''''''''而不是''''''''。 – scoates 2010-12-17 14:53:23
謝謝,我認爲這只是給了我解決方案。我使用$ argv中顯示的命令行參數將變量傳遞到腳本中。我只是在分期中傳遞一個額外的參數,並用它來決定使用哪個憑證。 – Jeremy 2010-12-17 14:53:42
我應該說明我無權訪問crontab文件,因爲我只能通過CPanel接口訪問服務器。 – Jeremy 2010-12-17 15:10:30