設定 Laravel 網站

基本設定

當你的伺服器都設定完成,開啟瀏覽器輸入

http://localhost/你的網站名稱/public/

應該就可以看到預設的 Laravel 頁面。

註:「你的網站名稱」即目錄的名稱。

一個新的網站,通常要做的基本設定:

  • 開啟 debug 模式

  • 設定 url

  • 輸入 key

  • 設定資料庫

這些設定都會在 app/config 目錄下動作。

第一個要認識的是關於整個網站的 app.php,開啟它,你會發現它只是回傳陣列,這個陣列是以各個參數組合而成。首先要認識的有:

  • debug

  • url

  • key

debug

預設為 false 不開啟,改為 true 就是開啟。不過,我們先不要更動它,讓它保持 false。

url

如果你是本機開發,可以不去修改。但當你上傳到伺服器上,就必須改成你的伺服器所在的網址,例如:

http://www.abc.com.tw/blog/public

假設 blog 是網站目錄的名稱。注意 public 後面沒有斜線。

key

基於安全的理由,每個 Laravel 網站,都要指定一組 32 位元的 key。這個 key 可以由 artisan 來產生。請開啟終端機,進入網站目錄,輸入

php artisan key:generate

就會產生一組 32 位元的 key,將其複製貼上到 key 欄位。這組 key 會用來識別所有的連線動作,保護網站的安全,這是必須做的動作。

資料庫

接下來是設定資料庫,打開 database.php,首先要認識:

  • default

  • connections

default 是指定要使用的資料庫,預設為 mysql。可用的選項在下方 connections 項目中可以找到:

  • sqlite

  • mysql

  • pgsql

  • sqlsrv

接著在 connections 項目中,設定資料庫的連線資料,如果前面選擇mysql,就修改 mysql 項目的資料:

  • database:指定你的資料庫的名稱

  • username:指定可操作資料庫的使用者名稱

  • password:指定使用者密碼

依環境設定

通常你會在本機開發,然後再上傳檔案到實際運作的伺服器,如果先把這些不同環境的配置設定好,就不用因為環境改變而去做這些配置的調整。

Laravel 讓你可以依不同環境設定不同的配置檔。在 config 目錄下,有一個 local 目錄,這個目錄是你本機開發的配置檔。

你可以自行新增一個 production 的目錄,當成伺服器上實際運行時的配置檔,在這些目錄中加入要重新指定的配置檔(檔名一樣),這些檔案的設定會覆蓋掉原本 config 中的相同檔案中的設定參數。

在 local 目錄中,相同名稱的 app.php 中,我們設定 debug 參數為 true。這樣只要在本機的環境中就會開啟 debug 模式。而在 production 目錄中,也有相同名稱的 app.php ,其中的 debug 則設為 false。這樣在實際運行的伺服器上,就不會開啟 debug 模式。它們會覆蓋掉原本在 app/config 中相同名稱中的設定。

相同的概念,database.php 中的參數,也許本機及實際伺服器的資料庫名稱、帳號及密碼不同,就可以分開設定。

那要如何知道現在是在本機或是在實際運作的伺服器呢?

首先回到此網站的根目錄,其中有一個 bootstrap 的目錄,在 start.php 中可以看到一個環境變數:

$env = $app->detectEnvironment(array(
'local' => array('abc.local'),
'production' => array('cloud'),
));

"local"及"production"代表 config 下的目錄名稱,所設定的值是代表機器的 hostname(在終端機中輸入 hostname 即可得機器名稱),資料以陣列的方式儲存。這裡的 "abc.local" 代表本機的機器名稱,"cloud" 代表實際伺服器的名稱。