2014-03-04 163 views
5

我想知道是否有人可以幫忙。Laravel 4環境不工作

我已經運行Laravel 4的環境設置,它似乎沒有工作。

在我MAMP設置中,我創建protected.dev舉辦

在我Bootstrap-> start.php我有我的本地URL像這樣

$env = $app->detectEnvironment(array(
    'local' => array('protected.dev') 
)); 

我已經創造了一個 '本地' 目錄app-> config目錄,通過標準database.php文件複製,然後修改'local'目錄內的database.php文件。

當我嘗試,並顯示該網站,我得到的

Access denied for user 'root'@'localhost' 

這是在標準config->爲database.php文件。

由於某種原因,它似乎並未檢測到其本地環境。

任何幫助將不勝感激。

乾杯,

回答

16

在laravel 4,視覺環境是由計算機名設置,而不是由:在Linux上,你可以在終端運行下面​​的命令找出你的機器的主機名網絡服務器網址。

要確定您的主機名,請使用hostname terminal命令。

在你的終端中鍵入主機名(這在linux和mac上有效)並將結果剪切並粘貼到本地變量的start.php文件中,它應該可以正常工作。

例如:

angoru @天使山:〜$主機名

天使山

我start.php

$env = $app->detectEnvironment(array(
    'local' => array('angel-mountain'), // Change this to your local machine hostname. 
    'staging' => array('your-staging-machine-name'), 
    'production' => array('your-production-machine-name'), 
)); 

詳細的解釋:Environment Configuration

+0

解決了這個問題......非常感謝! ...我需要將我的app.php'url'設置爲任何內容嗎? – BigJobbies

+0

網站不需要工作,但運行Artisan任務時應該需要它。 – angoru

+0

這是有道理的...所以如果它使用環境來自動檢測本地或生產,該網址應設置爲什麼? – BigJobbies

1

在具有多個開發人員的環境中,每個人都可以在開始時將其主機名添加到「本地」數組中。PHP:

$env = $app->detectEnvironment(array(
    'local' => array('user1-hostname','user2-hostname'), // Developers local hostnames 
    'staging' => array('your-staging-machine-name'), 
    'production' => array('your-production-machine-name'), 
)); 
0

如果您使用本地主機域名或不點一些其他的虛擬主機(我通常做的),它可能是有益的bootstrap/start.php使用這些代碼測試Laravel項目:

$env = $app->detectEnvironment(function(){ 
    if (strpos($_SERVER['HTTP_HOST'],'.') === false) { 
     return 'local'; 
    } 
    return 'production'; 
}); 

後:

$app = new Illuminate\Foundation\Application; 

這使得即使你移動你的代碼到其他目錄或移動到另一臺機器/其他虛擬主機不點,你不必添加機器南進入local機器。

如果需要,您當然可以添加更多規則(包括127.0.0.1或某些主機名稱爲.dev)。