溫馨提示×

CentOS下ThinkPHP項目如何部署

小樊
38
2025-10-08 23:23:00
欄目: 編程語言

CentOS下ThinkPHP項目部署詳細步驟

1. 環境準備

在部署前需安裝Web服務器(Nginx/Apache)、PHP環境、數據庫(MySQL/MariaDB)、Composer等必要組件。

  • 安裝Nginx(以Nginx為例):
    sudo yum install epel-release -y
    sudo yum install nginx -y
    sudo systemctl start nginx
    sudo systemctl enable nginx
    
  • 安裝PHP及擴展(ThinkPHP 6需PHP 7.4+):
    sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl -y
    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
    
  • 安裝MySQL
    sudo yum install mysql-server -y
    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    sudo mysql_secure_installation  # 完成安全初始化配置
    
  • 安裝Composer(PHP依賴管理工具):
    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer
    

2. 配置Web服務器

Nginx配置

創建ThinkPHP專屬站點配置文件(如/etc/nginx/conf.d/thinkphp.conf),內容如下:

server {
    listen 80;
    server_name your_domain.com;  # 替換為你的域名/IP
    root /var/www/html/thinkphp/public;  # ThinkPHP項目public目錄
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;  # 路由轉發到index.php
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/www.sock;  # PHP-FPM監聽socket
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;  # 支持PATH_INFO
    }

    location ~ /\.ht {
        deny all;  # 禁止訪問.htaccess文件
    }
}

測試配置并重啟Nginx:

sudo nginx -t  # 檢查配置語法
sudo systemctl restart nginx
Apache配置(可選)

若使用Apache,需啟用mod_rewrite模塊并創建虛擬主機:

sudo a2enmod rewrite
sudo systemctl restart httpd

創建配置文件(如/etc/httpd/conf.d/thinkphp.conf):

<VirtualHost *:80>
    ServerName your_domain.com
    DocumentRoot /var/www/html/thinkphp/public
    <Directory /var/www/html/thinkphp/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

3. 部署ThinkPHP項目

  • 上傳項目代碼:通過Git、FTP或SFTP將項目上傳至/var/www/html/thinkphp(或其他目錄)。
  • 安裝依賴:進入項目目錄,執行Composer安裝:
    cd /var/www/html/thinkphp
    composer install --no-dev --optimize-autoloader  # 生產環境關閉dev依賴
    
  • 配置數據庫:編輯.env文件(或config/database.php),填寫數據庫連接信息:
    DB_TYPE=mysql
    DB_HOST=127.0.0.1
    DB_NAME=your_db_name
    DB_USER=your_db_user
    DB_PASSWORD=your_db_password
    DB_PORT=3306
    DB_PREFIX=tp_  # 可選表前綴
    

4. 設置權限

確保Web服務器用戶(Nginx默認nginx,Apache默認apache)對項目目錄有讀寫權限:

sudo chown -R nginx:nginx /var/www/html/thinkphp  # 修改所屬用戶/組
sudo chmod -R 755 /var/www/html/thinkphp          # 設置目錄權限
sudo chmod -R 777 /var/www/html/thinkphp/runtime  # runtime目錄需可寫(上傳/緩存)

5. 啟動服務并測試

  • 啟動服務
    sudo systemctl start nginx php-fpm mysqld  # 啟動Nginx、PHP-FPM、MySQL
    sudo systemctl enable nginx php-fpm mysqld # 設置開機自啟
    
  • 測試訪問
    瀏覽器輸入http://your_domain.com,若看到ThinkPHP歡迎頁面則部署成功。

6. 生產環境優化(可選)

  • 關閉調試模式:修改.env文件,設置APP_DEBUG=false,避免敏感信息泄露。
  • 配置緩存:開啟OPcache提升PHP性能,編輯/etc/php.ini
    zend_extension=opcache.so
    opcache.enable=1
    opcache.memory_consumption=128
    opcache.max_accelerated_files=4000
    
  • 使用Redis緩存:安裝Redis并配置ThinkPHP使用Redis存儲會話/緩存,提升并發性能。
  • 配置HTTPS:通過Let’s Encrypt申請免費SSL證書,配置Nginx支持HTTPS(listen 443 ssl)。

常見問題排查

  • 502 Bad Gateway:檢查PHP-FPM是否運行(sudo systemctl status php-fpm),確認Nginx配置中的fastcgi_pass路徑正確。
  • 路由失效:確保Nginx配置中包含try_files $uri $uri/ /index.php?$query_string;,且PATH_INFO參數已開啟。
  • 權限問題:若出現“Permission denied”錯誤,檢查項目目錄所屬用戶及權限(ls -ld /var/www/html/thinkphp)。

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