溫馨提示×

centos下laravel項目部署步驟

小樊
47
2025-09-01 17:12:59
欄目: 智能運維

CentOS下Laravel項目部署步驟

1. 準備系統環境

首先更新系統包并安裝必要軟件(PHP、Composer、Nginx、MySQL):

# 更新系統
sudo yum update -y

# 安裝EPEL倉庫(提供額外軟件包)
sudo yum install -y epel-release

# 安裝PHP及常用擴展(需滿足Laravel要求:PHP≥7.3)
sudo yum install -y php php-cli php-fpm php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-bcmath

# 安裝Composer(PHP依賴管理工具)
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

# 安裝Nginx(Web服務器)
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

# 安裝MySQL(數據庫)
sudo yum install -y mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo mysql_secure_installation  # 執行安全配置(設置root密碼、移除匿名用戶等)

2. 配置PHP-FPM

編輯PHP-FPM配置文件,確保其與Nginx用戶(通常為nginx)兼容:

sudo vi /etc/php-fpm.d/www.conf

找到并修改以下參數(取消注釋或調整值):

listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
user = nginx
group = nginx

保存后重啟PHP-FPM:

sudo systemctl restart php-fpm

3. 部署Laravel項目

方式一:通過Composer創建新項目
# 進入Web服務器根目錄(如/var/www/html)
cd /var/www/html

# 創建Laravel項目(替換your-project-name為項目名)
composer create-project --prefer-dist laravel/laravel your-project-name
方式二:上傳現有項目

將本地項目文件上傳至服務器目標目錄(如/var/www/html/your-project-name),可通過SCP、SFTP或Git完成。

4. 配置環境變量

進入項目目錄,復制.env.example.env并編輯:

cd /var/www/html/your-project-name
cp .env.example .env
nano .env

修改以下關鍵配置(根據實際情況調整):

APP_ENV=production  # 生產環境
APP_KEY=          # 留空(后續生成)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db  # 數據庫名(需提前創建)
DB_USERNAME=laravel_user  # 數據庫用戶(需創建)
DB_PASSWORD=your_password  # 數據庫密碼

5. 配置數據庫

登錄MySQL并創建數據庫及用戶:

sudo mysql -u root -p

在MySQL shell中執行:

-- 創建數據庫
CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 創建用戶并授權
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;

-- 退出
EXIT;

6. 安裝依賴與生成密鑰

# 安裝項目依賴(--no-dev排除開發依賴,--optimize-autoloader優化自動加載)
composer install --no-dev --optimize-autoloader

# 生成應用密鑰(寫入.env文件)
php artisan key:generate

# 運行數據庫遷移(創建表結構)
php artisan migrate --force  # --force強制在生產環境執行

# 可選:優化性能(緩存配置、路由、視圖)
php artisan config:cache
php artisan route:cache
php artisan view:cache

7. 配置Nginx虛擬主機

創建Nginx配置文件(以項目域名為例):

sudo vi /etc/nginx/conf.d/your-domain.conf

添加以下內容(替換your-domain.com為域名/IP,/var/www/html/your-project-name為項目路徑):

server {
    listen 80;
    server_name your-domain.com;  # 替換為實際域名或IP
    root /var/www/html/your-project-name/public;
    index index.php index.html index.htm;

    # 處理前端路由(避免404)
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # PHP處理
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 禁止訪問隱藏文件(如.htaccess)
    location ~ /\.ht {
        deny all;
    }

    # 日志記錄
    access_log /var/log/nginx/your-domain.access.log;
    error_log /var/log/nginx/your-domain.error.log;
}

保存后重啟Nginx:

sudo systemctl restart nginx

8. 設置文件權限

確保Laravel關鍵目錄可寫:

sudo chown -R nginx:nginx /var/www/html/your-project-name  # 更改所有者(Nginx用戶)
sudo chmod -R 755 /var/www/html/your-project-name/storage  # 存儲目錄權限
sudo chmod -R 755 /var/www/html/your-project-name/bootstrap/cache  # 緩存目錄權限

9. 完成部署

現在可通過瀏覽器訪問http://your-domain.com查看Laravel項目。若需啟用HTTPS,可使用Let’s Encrypt免費證書:

sudo yum install -y certbot python2-certbot-nginx
sudo certbot --nginx -d your-domain.com  # 按提示完成配置

注意事項

  • 防火墻:確保防火墻允許HTTP(80)和HTTPS(443)流量:
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload
    
  • SELinux:若啟用SELinux,需調整上下文(避免權限問題):
    sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/your-project-name/storage
    sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/your-project-name/bootstrap/cache
    
  • 日志排查:若遇到問題,檢查Nginx(/var/log/nginx/error.log)和Laravel(storage/logs/laravel.log)日志定位錯誤。

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