# 添加EPEL仓库(可选,用于扩展软件包)
sudo yum install epel-release -y
# 安装Nginx
sudo yum install nginx -y
# 启动Nginx并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
验证Nginx是否运行:curl http://localhost,若返回Nginx欢迎页面则表示成功。
ThinkPHP 6.x推荐使用PHP 7.4及以上版本,需安装核心扩展:
# 添加Remi仓库(提供最新PHP版本)
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
# 启用PHP 7.4仓库
sudo yum-config-manager --enable remi-php74 -y
# 安装PHP及必要扩展
sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl php-zip -y
# 启动PHP-FPM并设置开机自启
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
验证PHP版本:php -v,确保输出包含PHP 7.4.x。
# 安装MySQL Server
sudo yum install mysql-server -y
# 启动MySQL并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 运行安全脚本(设置root密码、移除匿名用户等)
sudo mysql_secure_installation
登录MySQL:mysql -u root -p,输入密码后进入数据库管理界面。
创建Nginx配置文件(以域名example.com为例):
sudo vim /etc/nginx/conf.d/example.com.conf
写入以下内容(关键配置说明见注释):
server {
listen 80;
server_name example.com; # 替换为你的域名或IP
root /var/www/html/example.com; # 项目根目录(需提前创建)
index index.php index.html;
# 路由重写:将非文件/目录请求转发到index.php
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP处理:将.php请求交给PHP-FPM
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/php-fpm.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;
}
# 禁止访问.htaccess等敏感文件
location ~ /\.ht {
deny all;
}
}
测试Nginx配置语法:sudo nginx -t,若无错误则重启Nginx:sudo systemctl restart nginx。
将ThinkPHP项目上传至Nginx根目录(如/var/www/html/example.com),可通过以下方式:
git clone https://github.com/your/repo.git /var/www/html/example.com;进入项目目录,安装依赖(需提前安装Composer):
cd /var/www/html/example.com
composer install --no-dev --optimize-autoloader # 生产环境建议关闭dev依赖
若未安装Composer,可通过curl -sS https://getcomposer.org/installer | php全局安装。
编辑项目根目录下的.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
创建数据库并导入表结构(若有SQL文件):
mysql -u root -p
CREATE DATABASE your_database;
USE your_database;
SOURCE /path/to/your/sql/file.sql; # 替换为你的SQL文件路径
确保项目目录权限正确(避免权限过高导致安全问题):
sudo chown -R nginx:nginx /var/www/html/example.com # CentOS默认Web用户为nginx
sudo chmod -R 755 /var/www/html/example.com
sudo chmod -R 775 /var/www/html/example.com/runtime # runtime目录需可写
编辑.env文件,设置:
APP_DEBUG=false
避免暴露敏感信息(如数据库配置、错误堆栈)。
# 启动Nginx和PHP-FPM(若未启动)
sudo systemctl start nginx
sudo systemctl start php-fpm
# 设置开机自启
sudo systemctl enable nginx
sudo systemctl enable php-fpm
在浏览器中访问http://example.com,若看到ThinkPHP欢迎页面则表示部署成功。
php.ini,取消opcache.enable=1注释,提升PHP性能;以上步骤覆盖了CentOS下ThinkPHP项目的基础部署流程,可根据实际需求调整配置(如使用Apache、Redis缓存等)。