在搭建ThinkPHP项目前,需先安装Web服务器(Nginx/Apache)、PHP环境及Composer依赖管理工具。以下以Nginx+PHP-FPM组合为例(推荐,性能更优):
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-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl -y
/etc/php-fpm.d/www.conf,确保以下参数正确):listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
user = nginx
group = nginx
启动PHP-FPM并设置开机自启:sudo systemctl start php-fpm
sudo systemctl enable php-fpm
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
scp、rsync或Git将本地项目上传至服务器(如/var/www/html/your_project)。cd /var/www/html/your_project
composer install --no-dev --optimize-autoloader # 生产环境建议关闭dev依赖
.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=
runtime目录(缓存、日志)可写,public目录(入口文件目录)权限正确:sudo chown -R nginx:nginx /var/www/html/your_project
sudo chmod -R 755 /var/www/html/your_project/runtime
sudo chmod -R 755 /var/www/html/your_project/public
sudo vim /etc/nginx/conf.d/your_project.conf
添加以下内容(关键点:root指向public目录,try_files规则实现URL重写):server {
listen 80;
server_name your_domain.com; # 替换为你的域名或IP
root /var/www/html/your_project/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string; # 路由重写,支持PATHINFO
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock; # 与PHP-FPM配置一致
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; # 禁止访问.htaccess文件
}
}
sudo ln -s /etc/nginx/conf.d/your_project.conf /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置语法
sudo systemctl restart nginx
config/app.php,将app_debug设为false:'app_debug' => false,
sudo certbot --nginx -d your_domain.com
按提示完成证书申请,Certbot会自动修改Nginx配置启用HTTPS。在浏览器中访问http://your_domain.com(或HTTPS地址),若看到ThinkPHP项目首页,说明部署成功。
sudo systemctl status php-fpm),确认Nginx配置中的fastcgi_pass路径正确。try_files规则,且root指向public目录。runtime和public目录权限(755),所有者为nginx。通过以上步骤,即可在CentOS系统上完成ThinkPHP项目的搭建与优化。