在CentOS上部署ThinkPHP前,需先安裝Web服務器(Nginx/Apache)、PHP環境及Composer(ThinkPHP的依賴管理工具)。
sudo yum update -y
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-curl php-xml php-bcmath -y
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
php -v
確保PHP版本符合ThinkPHP要求(如ThinkPHP 6.x需≥7.2)。ThinkPHP項目依賴Composer管理,需先全局安裝Composer:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
驗證安裝:
composer --version
顯示Composer版本號則表示安裝成功。
選擇項目存放路徑(如/var/www/html/thinkphp
),并賦予適當權限:
sudo mkdir -p /var/www/html/thinkphp
sudo chown -R nginx:nginx /var/www/html/thinkphp # 若使用Nginx,用戶為nginx
sudo chmod -R 755 /var/www/html/thinkphp
進入項目目錄,通過Composer創建ThinkPHP項目(以ThinkPHP 6.x為例):
cd /var/www/html/thinkphp
composer create-project topthink/think tp6 --prefer-dist
等待Composer下載并安裝依賴(約幾分鐘)。
ThinkPHP需通過Web服務器訪問,需配置Nginx的重寫規則以支持PATHINFO(路由功能)。
sudo vim /etc/nginx/conf.d/thinkphp.conf
your_domain.com
為域名/IP,/var/www/html/thinkphp/tp6/public
為項目public目錄路徑):server {
listen 80;
server_name your_domain.com;
root /var/www/html/thinkphp/tp6/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~ /\.ht {
deny all;
}
}
sudo nginx -t
若顯示syntax is ok
,則重啟Nginx:sudo systemctl restart nginx
若使用Apache,需啟用mod_rewrite
模塊并創建虛擬主機:
sudo a2enmod rewrite
sudo systemctl restart apache2
虛擬主機配置參考Nginx的try_files
規則,確保支持PATHINFO。
ThinkPHP項目需連接數據庫(如MySQL),修改項目配置文件:
cd /var/www/html/thinkphp/tp6
cp .env.example .env
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_NAME=your_database_name
DB_USER=your_database_user
DB_PASSWORD=your_database_password
DB_PORT=3306
DB_PREFIX=tp_
登錄MySQL,創建數據庫和用戶:
mysql -u root -p
CREATE DATABASE your_database_name;
CREATE USER 'your_database_user'@'localhost' IDENTIFIED BY 'your_database_password';
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_database_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
確保項目目錄權限正確,避免訪問錯誤:
sudo chown -R nginx:nginx /var/www/html/thinkphp/tp6 # Nginx用戶
sudo chmod -R 755 /var/www/html/thinkphp/tp6
sudo chmod -R 775 /var/www/html/thinkphp/tp6/runtime # runtime目錄需可寫
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
http://your_domain.com
(或服務器IP),若看到ThinkPHP歡迎頁面,則部署成功。sudo systemctl status php-fpm
),確認Nginx配置中的fastcgi_pass
路徑正確(如unix:/run/php-fpm/www.sock
)。try_files $uri $uri/ /index.php?$query_string;
,支持PATHINFO。composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
)。通過以上步驟,即可在CentOS系統上成功安裝配置ThinkPHP項目。