在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项目。