在部署前需安裝Web服務器(Nginx/Apache)、PHP及擴展、數據庫(MySQL/MariaDB)、Composer,確保系統依賴滿足ThinkPHP運行要求。
sudo yum update -ysudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
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
sudo yum install mysql-server -y
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo mysql_secure_installation # 完成安全配置(設置root密碼、移除匿名用戶等)
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
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,需啟用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
/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_ # 表前綴(可選)
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 # 執行數據庫遷移
確保項目目錄權限正確,避免因權限問題導致無法訪問:
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目錄需可寫
sudo systemctl start nginx
sudo systemctl start php-fpm
sudo systemctl enable nginx
sudo systemctl enable php-fpm
http://your_domain.com,若看到ThinkPHP歡迎頁面則部署成功。.env文件,設置APP_DEBUG=false。php.ini)和Redis緩存(修改config/cache.php)。以上步驟覆蓋了ThinkPHP項目在CentOS上的完整部署流程,可根據實際需求調整配置(如端口、域名、數據庫類型等)。部署過程中若遇到問題,可通過查看Web服務器錯誤日志(/var/log/nginx/error.log或/var/log/httpd/error_log)定位解決。