溫馨提示×

Ubuntu下Laravel項目如何部署

小樊
33
2025-10-18 17:01:01
欄目: 智能運維

Ubuntu下部署Laravel項目的完整步驟

1. 準備工作

  • 確保服務器已安裝Ubuntu(推薦22.04及以上版本),并具備sudo權限;
  • 通過SSH連接到服務器;
  • 準備好待部署的Laravel項目代碼(或后續通過Composer創建)。

2. 更新系統包

運行以下命令更新系統包列表及已安裝的包,確保系統處于最新狀態:

sudo apt update && sudo apt upgrade -y

3. 安裝Web服務器(以Nginx為例)

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

4. 安裝PHP及必要擴展

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

5. 配置PHP-FPM

編輯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

6. 配置Nginx虛擬主機

為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

7. 安裝Composer(PHP依賴管理工具)

Composer用于安裝Laravel依賴,若未安裝則運行:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
# 驗證安裝
composer -v

8. 部署Laravel項目

方式一:通過Composer創建新項目

cd /var/www/
composer create-project --prefer-dist laravel/laravel yourproject

方式二:上傳現有項目

將本地項目上傳至/var/www/yourproject(通過SFTP/SCP工具),然后進入項目目錄:

cd /var/www/yourproject

9. 配置環境變量

復制.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

10. 配置數據庫

10.1 安裝MySQL

sudo apt install mysql-server -y
sudo mysql_secure_installation  # 安全配置(設置root密碼、移除匿名用戶等)

10.2 創建數據庫及用戶

登錄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;

11. 運行數據庫遷移

將數據庫結構同步到MySQL:

php artisan migrate

12. 設置文件權限

確保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  # 緩存目錄需可寫

13. 優化Laravel性能

清理緩存并優化自動加載:

php artisan optimize

14. 訪問項目

在瀏覽器輸入http://yourdomain.com,若看到Laravel歡迎頁面,則部署成功!

可選步驟:啟用HTTPS(推薦)

使用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)

常見問題排查

  • 502 Bad Gateway:檢查Nginx與PHP-FPM通信(fastcgi_pass路徑是否正確)、PHP-FPM服務狀態;
  • 403 Forbidden:確認項目目錄權限(www-data用戶有權訪問);
  • 數據庫連接失敗:檢查.env中的數據庫配置(用戶名、密碼、數據庫名)及MySQL服務狀態。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女