溫馨提示×

thinkphp項目在centos上如何部署

小樊
44
2025-10-06 23:04:40
欄目: 編程語言

ThinkPHP項目在CentOS上的部署步驟

1. 環境準備

在部署前需安裝Web服務器(Nginx/Apache)、PHP及擴展、數據庫(MySQL/MariaDB)、Composer,確保系統依賴滿足ThinkPHP運行要求。

  • 更新系統sudo yum update -y
  • 安裝Nginx
    sudo yum install epel-release -y
    sudo yum install nginx -y
    sudo systemctl start nginx
    sudo systemctl enable nginx
    
  • 安裝PHP及擴展(ThinkPHP 6.x推薦PHP 7.4+):
    sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-curl php-xml php-bcmath -y
    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
    
  • 安裝MySQL/MariaDB
    sudo yum install mysql-server -y
    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    sudo mysql_secure_installation  # 完成安全配置(設置root密碼、移除匿名用戶等)
    
  • 安裝Composer(依賴管理工具):
    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer
    

2. 配置Web服務器

Nginx配置(推薦)

ThinkPHP需要偽靜態支持,需修改Nginx配置文件(/etc/nginx/conf.d/thinkphp.conf):

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

    location / {
        try_files $uri $uri/ /index.php?$query_string;  # 路由重寫
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/www.sock;  # PHP-FPM socket路徑
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

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

驗證配置并重啟Nginx:

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

若使用Apache,需啟用mod_rewrite并配置虛擬主機(/etc/httpd/conf.d/thinkphp.conf):

<VirtualHost *:80>
    ServerName your_domain.com
    DocumentRoot /var/www/html/thinkphp/public
    <Directory /var/www/html/thinkphp/public>
        AllowOverride All  # 允許.htaccess覆蓋
        Require all granted
    </Directory>
</VirtualHost>

重啟Apache:

sudo systemctl restart httpd

3. 部署ThinkPHP項目

  • 上傳項目:通過FTP/SFTP或Git將項目代碼上傳至/var/www/html/thinkphp(或其他目錄)。
  • 安裝依賴:進入項目目錄,執行composer install --no-dev --optimize-autoloader--no-dev用于生產環境移除開發依賴,--optimize-autoloader優化自動加載性能)。
  • 配置數據庫:編輯.env文件(或config/database.php),填寫數據庫連接信息:
    DB_TYPE=mysql
    DB_HOST=127.0.0.1
    DB_NAME=your_database
    DB_USER=your_username
    DB_PASSWORD=your_password
    DB_PORT=3306
    DB_PREFIX=tp_  # 表前綴(可選)
    
  • 創建數據庫:登錄MySQL,執行以下命令:
    CREATE DATABASE your_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON your_database.* TO 'your_username'@'localhost';
    FLUSH PRIVILEGES;
    
  • 運行數據庫遷移(若有):
    php think migrate:run  # 執行數據庫遷移
    

4. 設置權限

確保項目目錄權限正確,避免因權限問題導致無法訪問:

sudo chown -R nginx:nginx /var/www/html/thinkphp  # Nginx用戶(若用Apache則改為apache:apache)
sudo chmod -R 755 /var/www/html/thinkphp
sudo chmod -R 775 /var/www/html/thinkphp/runtime  # runtime目錄需可寫

5. 啟動服務與訪問

  • 啟動服務
    sudo systemctl start nginx
    sudo systemctl start php-fpm
    sudo systemctl enable nginx
    sudo systemctl enable php-fpm
    
  • 訪問項目:在瀏覽器輸入http://your_domain.com,若看到ThinkPHP歡迎頁面則部署成功。

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

  • 關閉調試模式:編輯.env文件,設置APP_DEBUG=false。
  • 配置緩存:開啟OPcache(修改php.ini)和Redis緩存(修改config/cache.php)。
  • 設置Supervisor:管理PHP-FPM進程,避免進程意外終止(參考ThinkPHP官方文檔)。
  • 配置HTTPS:使用Let’s Encrypt免費證書,提升網站安全性(參考Certbot文檔)。

以上步驟覆蓋了ThinkPHP項目在CentOS上的完整部署流程,可根據實際需求調整配置(如端口、域名、數據庫類型等)。部署過程中若遇到問題,可通過查看Web服務器錯誤日志(/var/log/nginx/error.log/var/log/httpd/error_log)定位解決。

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