---
tags: laravel
---
# Laravel開發環境建置

## Windows作業系統
### Step 1.安裝XAMPP
PHP + Apache + MariaDB懶人包
[下載網址](https://www.apachefriends.org/zh_tw/download.html)
請下載PHP 7.2.5以上版本,下載完後安裝,過程只需不斷按Next即可。
### Step 2.安裝Visual Studio Code
由微軟提供,可免費使用的IDE
[下載網址](https://code.visualstudio.com/download)
### Step 3.安裝Composer
用於管理所有PHP套件,包含Laravel
[下載網址](https://getcomposer.org/download)
PS:如之前已安裝過,需升級成新版本,可使用以下指令
`composer self-update`
### Step 4.下載Laravel安裝器
開啟Terminal,輸入以下指令
composer global require laravel/installer
### Step 5.建立Laravel專案
1. 開啟Terminal,切換到xampp的htdocs資料夾,輸入指令,路徑應根據您的狀況作調整
`cd c:\xampp\htdocs`
2.如果要建立的是最新Laravel版本的專案,請輸入指令
`laravel new app_name`
2.1 如果要建立指定Laravel版本的新專案,例如5.8,需使用composer,請輸入指令
`composer create-project --prefer-dist laravel/laravel app_name "5.8.*"`
3. 生成應用金鑰,開啟Terminal,切換到新建立的專案資料夾,請輸入指令
`php artisan key:generate`
4. 開啟專案,確定是否有.env檔案,如果找不到.env檔,可將.env.example檔案改名成.env
### Step 6.確認建置是否成功
==請確保Apache服務和MySQL服務都有開啟==
1. 開啟瀏覽器,比如Google Chrome
2. 輸入網址 http://localhost/app_name/public
### Step 7.設定本地化網域(非必須)
1. 將所命名的網域指向到本機 127.0.0.1,作法是修改hosts,這裡以laravel.dev為例
```
//C:\WINDOWS\system32\drivers\etc\hosts
127.0.0.1 laravel.dev #Laravel學習專案
```
2. 告訴此網域需要由哪個專案資料夾來接手,作法是修改httpd-vhost.conf,路徑應根據您的狀況作調整
```
//XAMPP資料夾\apache\conf\extra\httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "c:\xampp\htdocs\app_name\public"
ServerName laravel.test
<Directory "c:\xampp\htdocs\app_name\public">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
```
3. 要求Apache開啟時需讀取httpd-vhosts.conf,作法是修改 XAMPP資料夾\apache\conf\original\httpd.conf。找到httpd-vhosts.conf那一行,把前面的#註解移除。
4. 重開Apache服務,訪問http://laravel.test,看能否順利開啟
## Mac 作業系統
### Step 1.安裝XAMPP
PHP + Apache + MariaDB懶人包
[下載網址](https://www.apachefriends.org/zh_tw/download.html)
請下載PHP 7.2.5以上版本,下載完後安裝,過程只需不斷按Next即可。
選擇相同版號容量較小的非VM版本
### Step 2.安裝Visual Studio Code
由微軟提供,可免費使用的IDE
[下載網址](https://code.visualstudio.com/download)
### Step 3.安裝Composer
用於管理所有PHP套件,包含Laravel
1. 進入Composer官網,複製指令
[指令複製網址](https://getcomposer.org/download)
2. 開啟Terminal,貼入以下指令並執行
```
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
```
3. 搬移到指定位置,指令如下:
`sudo mv composer.phar /usr/local/bin/composer`
==如果/usr/local/bin不存在,輸入指令來建立:sudo mkdir /usr/local/bin==
4. 開啟.bash_profile來設定路徑,輸入指令: touch ~/.bash_profile;open ~/.bash_profile
4.1 加入以下程式碼
`export PATH=/usr/local/bin:$PATH`
5. 立即讀取路徑設定,輸入指令: source ~/.bash_profile
### Step 4.安裝Homebrew以下載缺少套件(非必須)
==可先跳到Step 5,如果安裝失敗再回來==
用於Mac環境安裝工具或套件,當執行composer時找不到必須套件,就需要使用Homebrew來下載
1. 開啟安裝Homebrew網站去複製指令,網址為https://brew.sh
2. 開啟Terminal,貼入以下指令並執行
`/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"`
3. 開啟Terminal,輸入指令:
```
brew install php@7.4
brew link php@7.4 --force
```
==PS: 7.4版本應替換為你所安裝XAMPP所採用的PHP版本==
### Step 5.下載Laravel安裝器
==如果進行這個階段遇到錯誤,請先退回到Step4安裝完再回來。如果跳出需要命令列開發者工具,點安裝來安裝工具==
1. 開啟Terminal,輸入以下指令
`composer global require "laravel/installer"`
2. 開啟.bash_profile以設定路徑,輸入指令:`touch ~/.bash_profile;open ~/.bash_profile;`
2.1 修改完整程式碼如下:
` export PATH=$HOME/.composer/vendor/bin:/Applications/XAMPP/xamppfiles/bin:/usr/local/bin:$PATH`
3. 立即讀取路徑設定,指令為 `source ~/.bash_profile `
### Step 6.建立Laravel專案
1. 開啟Terminal,切換到xampp的htdocs資料夾,輸入指令,路徑應根據您的狀況作調整
`cd /Applications/XAMPP/htdocs`
2. 如果要建立指定Laravel版本的新專案,例如5.8,需使用composer,請輸入指令
`composer create-project --prefer-dist laravel/laravel app_name "5.8.*"`
2.1(可選) 如果要建立的是最新Laravel版本的專案,請輸入指令
`laravel new app_name`
3. 生成應用金鑰,開啟Terminal,切換到新建立的專案資料夾,輸入指令
`php artisan key:generate`
4. 將storage資料夾權限全開,同樣在Terminal,路徑在專案資料夾,輸入指令
`sudo chmod -R 777 storage`
5. 開啟專案,確定是否有.env檔案,如果找不到.env檔,可將.env.example檔案改名成.env
### Step 7.確認建置是否成功
==請確保Apache服務和MySQL服務都有開啟==
開啟瀏覽器,比如Google Chrome
輸入網址 http://localhost/app_name/public
### Step 8.設定本地化網域(非必須)
1. 將所命名的網域指向到本機 127.0.0.1,作法是修改hosts,這裡以laravel.dev為例
```
//etc\hosts
127.0.0.1 laravel.test #Laravel學習專案
```
2. 告訴此網域需要由哪個專案資料夾來接手,作法是修改httpd-vhost.conf,加入以下設定,路徑應根據您的狀況作調整
```
//XAMPP資料夾\etc\extra\httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/Applications/XAMPP/htdocs/app_name/public"
ServerName laravel.test
<Directory "/Applications/XAMPP/htdocs/app_name/public">
Require all granted
Options All
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
```
3. 要求Apache開啟時需讀取httpd-vhosts.conf,作法是修改//XAMPP資料夾\etc\httpd.conf。找到httpd-vhosts.conf那一行,把前面的#註解移除。
4. 重開Apache服務
5. 開啟瀏覽器,訪問http://laravel.test,看能否順利開啟
## 專案設定
### 主設定檔修改
修改config/app.php,設定timezone時區與locale語系
```
//config/app.php
'locale' => 'zh_TW',
'timezone' => 'Asia/Taipei',
```
### 隱私設定檔設定
修改.env檔案,所設的值不可以有空格
```
//.env
APP_NAME=Blog //專案名稱
APP_ENV=local //專案所在環境,local為本地端開發,production為正式上線環境
APP_KEY //應用金鑰,不得為空,可透過 php artisan key:generate來生成
APP_DEBUG=true //是否開啟除錯模式,正式上線環境建議關掉
APP_URL=http://localhost/blog/public //專案網域,須設定到public資料夾
DB_CONNECTION=mysql //所要連接的資料庫
DB_HOST=127.0.0.1 //資料庫Ip Address
DB_PORT=3306 //資料庫port號
DB_DATABASE=blog //資料庫名稱
DB_USERNAME=root //資料庫帳號
DB_PASSWORD= //資料庫密碼
```
## 錯誤排除
### 套件安裝錯誤
1.出現記憶體不足的錯誤導致安裝失敗
解決方案:
找到Apache資料夾內的php.ini(Windows版本在php資料夾內),找到裏頭的一行設定"memory_limit",將其值改成-1,即可不限定伺服器的記憶體空間
### 套件安裝太慢
解決方案:
可能是Composer內核還是1.x版本,請升級到2.0.6以上,請開啟CMD輸入以下指令
`composer self-update --2`
### 資料庫連線錯誤
1. 出現1071 Specified key was too long; max key length is 767 bytes
解決方法:
開啟 app\Providers\AppServiceProvider.php
加入以下程式碼:
```
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
```
### 權限不足錯誤
1. Mac開發環境出現storage資料夾的 failed to open stream:Permission denied
解決方法:
開啟Terminal,切換到專案資料夾後,輸入以下指令
`sudo chmod -R 777 storage`
### 應用錯誤
1. 出現No application encryption key has been specified
錯誤原因是缺少應用的金鑰
解決方案:
開啟Terminal,切換到專案資料夾後,輸入以下指令
`php artisan key:generate`