【Laravel入門】15分鐘無痛搞定Win&Mac的Laravel開發環境建置
這篇文章會依序地介紹該如何在 Windows 與 Mac 電腦上安裝開發環境,如果是 Mac 電腦的朋友可以直接往下滾到 Mac 章節
Windows作業系統
Step 1.安裝XAMPP
XAMPP是整合PHP + Apache + MariaDB懶人安裝包,它的版號直接對應到了內建的PHP版本,建議下載越新的版本越好,至少選擇 v7.4以後的版本為宜。如果不熟悉的虛擬機器的朋友建議不要安裝VM版本
含VM的版本檔名上會包含vm兩個字,很好辨認喔
下載完後安裝,過程只需不斷按Next即可
Step 2.安裝Visual Studio Code
由微軟提供,可免費使用的IDE,記得搭配安裝一些PHP以及Laravel相關的套件,會加速你的開發唷
Step 3.安裝Composer
用於管理所有PHP套件,包含Laravel Installer
PS:如之前已安裝過,需升級成新版本,可使用以下指令
composer self-update
Step 4.下載Laravel安裝器
開啟Terminal,輸入以下指令
composer global require laravel/installer
Step 5.建立Laravel專案
-
開啟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.*"
-
生成應用金鑰,開啟Terminal,切換到新建立的專案資料夾,請輸入指令
php artisan key:generate -
開啟專案,確定是否有.env檔案,如果找不到.env檔,可將.env.example檔案改名成.env
Step 6.確認建置是否成功
請確保Apache服務和MySQL服務都有開啟
-
開啟瀏覽器,比如Google Chrome
-
輸入網址
http://localhost/app_name/public
Step 7.設定本地化網域(非必須)
- 將所命名的網域指向到本機 127.0.0.1,作法是修改hosts,這裡以laravel.dev為例
//C:\WINDOWS\system32\drivers\etc\hosts
127.0.0.1 laravel.dev #Laravel學習專案
- 告訴此網域需要由哪個專案資料夾來接手,作法是修改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>
-
要求Apache開啟時需讀取httpd-vhosts.conf,作法是修改 XAMPP資料夾\apache\conf\original\httpd.conf。找到httpd-vhosts.conf那一行,把前面的#註解移除。
-
重開Apache服務,訪問http://laravel.test,看能否順利開啟
Mac 作業系統
下面的環境建置是用 XAMPP 來進行環境建置,如果你本身不排斥使用命令列的話,也很推薦你試看看用 Valet 來做環境建置,請參考教你如何在MAC電腦上建置VALET開發環境
Step 1.安裝XAMPP
XAMPP是整合PHP + Apache + MariaDB懶人安裝包,它的版號直接對應到了內建的PHP版本,建議下載越新的版本越好,至少選擇 v7.4以後的版本為宜。如果不熟悉的虛擬機器的朋友建議不要安裝VM版本
下載完後安裝,過程只需不斷按Next即可,再次提醒選擇相同版號容量較小的非VM版本
Step 2.安裝Visual Studio Code
由微軟提供,可免費使用的IDE,記得搭配安裝一些PHP以及Laravel相關的套件,會加速你的開發唷
Step 3.安裝Composer
用於管理所有PHP套件,包含Laravel installer
1. 進入Composer官網,複製指令
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來設定路徑
請務必確認你的命令列系統是 bash 還是 zsh,這裡是以 bash 舉例,如為 zsh 請將檔案改為 .zshrc
輸入以下指令:
touch ~/.bash_profile;open ~/.bash_profile
這個指令會開啟.bash_profile檔案,在裏頭加入以下程式碼
export PATH=/usr/local/bin:$PATH
5. 立即讀取路徑設定
輸入指令:
source ~/.bash_profile
Step 4.安裝Homebrew以下載缺少套件(非必須)
可先跳到Step 5,如果安裝失敗再回來
用於Mac環境安裝工具或套件,當執行composer時找不到必須套件,就需要使用Homebrew來下載
- 開啟安裝Homebrew網站去複製指令,網址為https://brew.sh
- 開啟Terminal,貼入以下指令並執行
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" - 開啟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;
再次修改.bash_profile,之後修改完整程式碼如下:
export PATH=$HOME/.composer/vendor/bin:/Applications/XAMPP/xamppfiles/bin:/usr/local/bin:$PATH
3. 立即讀取路徑設定
輸入指令:
source ~/.bash_profile
Step 6.建立Laravel專案
1.切換到網頁伺服器根目錄(Document Root)
開啟Terminal,切換到xampp的htdocs資料夾,輸入指令,路徑應根據您的狀況作調整
cd /Applications/XAMPP/htdocs
2.新增專案
如果要建立的是最新Laravel版本的專案,請輸入指令
laravel new app_name
如果要建立指定Laravel版本的新專案,例如5.8,需使用composer,請改輸入以下指令
composer create-project --prefer-dist laravel/laravel app_name "5.8.*"
專案設定
生成應用金鑰
開啟Terminal,切換到新建立的專案資料夾,輸入指令
php artisan key:generate
處理專案權限
將storage資料夾權限全開,同樣在Terminal,路徑在專案資料夾,輸入指令
sudo chmod -R 777 storage
建立隱私設定檔.env
開啟專案,確定是否有.env檔案,如果找不到.env檔,可將.env.example檔案改名成.env
Step 7.確認建置是否成功
請確保Apache服務和MySQL服務都有開啟
開啟瀏覽器,比如Google Chrome
在網址區輸入網址 http://localhost/app_name/public
Step 8.設定本地化網域(非必須)
- 將所命名的網域指向到本機 127.0.0.1,作法是修改hosts,這裡以laravel.dev為例
//etc\hosts
127.0.0.1 laravel.test #Laravel學習專案
- 告訴此網域需要由哪個專案資料夾來接手,作法是修改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>
-
要求Apache開啟時需讀取httpd-vhosts.conf,作法是修改//XAMPP資料夾\etc\httpd.conf。找到httpd-vhosts.conf那一行,把前面的#註解移除。
-
重開Apache服務
-
開啟瀏覽器,訪問
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