| 組件 | 最低版本 | 說明 |
|---|---|---|
| PHP | >= 5.6.4 | 推薦 7.1+ |
| OpenSSL | 必須 | 加密擴展 |
| PDO | 必須 | 資料庫抽象層 |
| Mbstring | 必須 | 多字節字符串 |
| Tokenizer | 必須 | 語法解析 |
| XML | 建議 | 部分驗證器需要 |
| Ctype | 建議 | 字符類型檢查 |
| JSON | 建議 | API 響應 |
| BCMath | 建議 | 高精度計算 |
# 1. 全局安裝安裝器 composer global require "laravel/installer" # 2. 確保 $HOME/.composer/vendor/bin 在 PATH 中 export PATH="$HOME/.composer/vendor/bin:$PATH" # 加入 ~/.bashrc 或 ~/.zshrc # 3. 創建新專案 laravel new blog # 指定版本 laravel new blog --version=5.3
composer create-project --prefer-dist laravel/laravel blog "5.3.*"
git clone https://github.com/laravel/laravel.git blog cd blog git checkout v5.3.31 # 具體標籤 composer install
關鍵點:DocumentRoot 必須指向 public/ 目錄
# Nginx 示例
server {
listen 80;
server_name laravel.test;
root /path/to/blog/public; # 關鍵:指向 public
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
# 禁止訪問隱藏文件
location ~ /\.(?!well-known).* {
deny all;
}
}
# Apache .htaccess (public/ 目錄下已內建)Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^ ^ [L] RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC] RewriteRule ^ index.php [L]
# storage/ 和 bootstrap/cache/ 必須可寫 chmod -R 775 storage bootstrap/cache # 如果是 Linux 服務器,建議設置所有者為 www-data chown -R www-data:www-data storage bootstrap/cache
php artisan key:generate # 會在 .env 中設置 APP_KEY=base64:xxx # 用於 Session 加密、CSRF Token、密碼重置等安全功能
cp .env.example .env # 編輯 .env 配置資料庫、快取、隊列等
預裝所有依賴的 Vagrant Box,支援多項目共存、資料庫、郵件測試、定時任務等。
# 1. 安裝 VirtualBox + Vagrant
# 2. 添加 Box
vagrant box add laravel/homestead
# 3. 克隆 Homestead 管理腳本
git clone https://github.com/laravel/homestead.git ~/Homestead
cd ~/Homestead
git checkout release # 穩定版
# 4. 初始化配置
bash init.sh # 生成 Homestead.yaml
# 5. 編輯 Homestead.yaml
ip: "192.168.10.10"
memory: 2048
cpus: 2
provider: virtualbox
folders:
- map: ~/code # 主機代碼目錄
to: /home/vagrant/code
sites:
- map: homestead.test # 域名
to: /home/vagrant/code/blog/public # 對應項目 public 目錄
databases:
- homestead
features:
- mariadb: false
- ohmyzsh: true
- webdriver: false
# 6. 啟動
vagrant up
# 7. 主機 hosts 綁定
echo "192.168.10.10 homestead.test" | sudo tee -a /etc/hosts
vagrant ssh # 進入虛擬機 vagrant reload --provision # 重載配置 vagrant halt # 關機 vagrant destroy # 銷毀 homestead edit # 編輯配置(需安裝 homestead 命令)
極輕量、無虛擬機、原生 Nginx + PHP-FPM,適合 Mac 開發者。
composer global require laravel/valet valet install valet park ~/code # 註冊代碼目錄 # 訪問 https://blog.test 即可運行 ~/code/blog
# 進入項目目錄 cd blog # 啟動內建服務器(僅開發測試) php artisan serve # 輸出:Laravel development server started on https://127.0.0.1:8000 # 或訪問配置好的域名 https://homestead.test
瀏覽器打開應看到 Laravel 預設歡迎頁面,顯示版本號、文檔鏈接等信息。
| 現象 | 原因 | 解決 |
|---|---|---|
| Whoops 錯誤頁面 | .env 未配置、APP_KEY 缺失、權限不足 | 檢查 .env、執行 key:generate、chmod storage |
| 500 錯誤無日誌 | storage/logs 不可寫 | chmod 775 storage |
| 資料庫連接失敗 | .env DB 配置錯誤、MySQL 未啟動、權限問題 | 檢查 .env、mysql -u root -p 測試 |
| Composer 安裝極慢 | 國內網絡問題 | 配置鏡像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ |
| Homestead 無法啟動 | VT-x 未開啟、Box 版本不匹配 | BIOS 開啟虛擬化、vagrant box update |
routes/web.php、php artisan make:controller