在部署前需安裝Web服務器(Nginx/Apache)、PHP環境、數據庫(MySQL/MariaDB)、Composer等必要組件。
sudo 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-xml php-curl -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 # 完成安全初始化配置
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
創建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,需啟用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>
/var/www/html/thinkphp
(或其他目錄)。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_ # 可選表前綴
確保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目錄需可寫(上傳/緩存)
sudo systemctl start nginx php-fpm mysqld # 啟動Nginx、PHP-FPM、MySQL
sudo systemctl enable nginx php-fpm mysqld # 設置開機自啟
http://your_domain.com
,若看到ThinkPHP歡迎頁面則部署成功。.env
文件,設置APP_DEBUG=false
,避免敏感信息泄露。/etc/php.ini
:zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
listen 443 ssl
)。sudo systemctl status php-fpm
),確認Nginx配置中的fastcgi_pass
路徑正確。try_files $uri $uri/ /index.php?$query_string;
,且PATH_INFO
參數已開啟。ls -ld /var/www/html/thinkphp
)。