Ubuntu下部署Laravel項目的完整步驟
sudo
權限;運行以下命令更新系統包列表及已安裝的包,確保系統處于最新狀態:
sudo apt update && sudo apt upgrade -y
Laravel需要Web服務器來處理HTTP請求,推薦使用Nginx(高性能、輕量級):
sudo apt install nginx -y
# 啟動Nginx并設置開機自啟
sudo systemctl start nginx
sudo systemctl enable nginx
# 驗證Nginx狀態(顯示“active (running)”即為成功)
sudo systemctl status nginx
Laravel依賴PHP 8.1及以上版本,需安裝PHP核心及常用擴展:
sudo apt install php-fpm php-mysql php-zip php-gd php-mbstring php-curl php-xml php-bcmath -y
# 驗證PHP版本(需符合Laravel要求)
php -v
編輯PHP-FPM池配置文件,確保與Nginx通信正常:
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
# 找到“listen”行,確認值為“/run/php/php8.1-fpm.sock”(與Nginx配置一致)
listen = /run/php/php8.1-fpm.sock
# 保存退出后重啟PHP-FPM
sudo systemctl restart php8.1-fpm
為Laravel項目創建專屬Nginx配置,替換yourdomain.com
為實際域名/IP:
sudo nano /etc/nginx/sites-available/yourdomain.com
粘貼以下配置(關鍵路徑需調整):
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourproject/public; # Laravel項目public目錄
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string; # 路由轉發到index.php
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 與PHP-FPM通信
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all; # 禁止訪問.htaccess文件
}
}
啟用配置并重啟Nginx:
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t # 測試配置語法
sudo systemctl restart nginx
Composer用于安裝Laravel依賴,若未安裝則運行:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
# 驗證安裝
composer -v
cd /var/www/
composer create-project --prefer-dist laravel/laravel yourproject
將本地項目上傳至/var/www/yourproject
(通過SFTP/SCP工具),然后進入項目目錄:
cd /var/www/yourproject
復制.env.example
為.env
(包含敏感配置),并編輯數據庫等信息:
cp .env.example .env
nano .env
修改以下關鍵配置(替換為實際值):
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_app # 數據庫名
DB_USERNAME=laravel_user # 數據庫用戶
DB_PASSWORD=strong_pass # 數據庫密碼
APP_KEY= # 生成密鑰(下一步)
生成應用密鑰(用于加密):
php artisan key:generate
sudo apt install mysql-server -y
sudo mysql_secure_installation # 安全配置(設置root密碼、移除匿名用戶等)
登錄MySQL:
sudo mysql -u root -p
執行以下SQL(替換strong_pass
為實際密碼):
CREATE DATABASE laravel_app;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'strong_pass';
GRANT ALL PRIVILEGES ON laravel_app.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
將數據庫結構同步到MySQL:
php artisan migrate
確保Web服務器(www-data
)有權訪問項目目錄:
sudo chown -R www-data:www-data /var/www/yourproject
sudo chmod -R 755 /var/www/yourproject
sudo chmod -R 775 /var/www/yourproject/storage # 存儲目錄需可寫
sudo chmod -R 775 /var/www/yourproject/bootstrap/cache # 緩存目錄需可寫
清理緩存并優化自動加載:
php artisan optimize
在瀏覽器輸入http://yourdomain.com
,若看到Laravel歡迎頁面,則部署成功!
使用Let’s Encrypt免費SSL證書,提升網站安全性:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
# 按提示完成證書申請(自動配置Nginx重定向HTTP→HTTPS)
fastcgi_pass
路徑是否正確)、PHP-FPM服務狀態;www-data
用戶有權訪問);.env
中的數據庫配置(用戶名、密碼、數據庫名)及MySQL服務狀態。