在CentOS上部署ThinkPHP前,需先安装Web服务器(Nginx/Apache)、PHP环境及Composer(ThinkPHP的依赖管理工具)。

sudo yum update -ysudo yum install epel-release -ysudo yum install nginx -ysudo systemctl start nginxsudo systemctl enable nginxsudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-curl php-xml php-bcmath -ysudo systemctl start php-fpmsudo systemctl enable php-fpmphp -v确保PHP版本符合ThinkPHP要求(如ThinkPHP 6.x需≥7.2)。ThinkPHP项目依赖Composer管理,需先全局安装Composer:
curl -sS https://getcomposer.org/installer | phpsudo mv composer.phar /usr/local/bin/composersudo chmod +x /usr/local/bin/composer验证安装:
composer --version显示Composer版本号则表示安装成功。
选择项目存放路径(如/var/www/html/thinkphp),并赋予适当权限:
sudo mkdir -p /var/www/html/thinkphpsudo chown -R nginx:nginx /var/www/html/thinkphp# 若使用Nginx,用户为nginxsudo chmod -R 755 /var/www/html/thinkphp进入项目目录,通过Composer创建ThinkPHP项目(以ThinkPHP 6.x为例):
cd /var/www/html/thinkphpcomposer create-project topthink/think tp6 --prefer-dist等待Composer下载并安装依赖(约几分钟)。
ThinkPHP需通过Web服务器访问,需配置Nginx的重写规则以支持PATHINFO(路由功能)。
sudo vim /etc/nginx/conf.d/thinkphp.confyour_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 rewritesudo systemctl restart apache2虚拟主机配置参考Nginx的try_files规则,确保支持PATHINFO。
ThinkPHP项目需连接数据库(如MySQL),修改项目配置文件:
cd /var/www/html/thinkphp/tp6cp .env.example .envDB_TYPE=mysqlDB_HOST=127.0.0.1DB_NAME=your_database_nameDB_USER=your_database_userDB_PASSWORD=your_database_passwordDB_PORT=3306DB_PREFIX=tp_登录MySQL,创建数据库和用户:
mysql -u root -pCREATE 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/tp6sudo chmod -R 775 /var/www/html/thinkphp/tp6/runtime# runtime目录需可写sudo systemctl start php-fpmsudo systemctl enable php-fpmhttp://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项目。