設定 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" 代表實際伺服器的名稱。