一、前置准备
首先,确保你的CentOS系统已经更新到最新版本,并且装好了基础开发工具,比如gcc、make这些。这一步很基础,但别跳过——少了它后面会处处碰壁。

sudo yum update -y
sudo yum groupinstall "Development Tools" -y
二、安装PHP及必要扩展
ThinkPHP 8.x 要求 PHP 版本不低于 8.0,所以我们需要安装 PHP 核心、CLI、FPM,以及常用的扩展(比如 mysqlnd、gd、mbstring 等)。推荐通过 Remi 仓库来安装,它能提供最新的 PHP 版本,省心很多。
- 先添加 EPEL 和 Remi 仓库:
sudo yum install epel-release -y sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y # CentOS 7 # CentOS 8 需替换为对应 Remi 仓库地址 - 启用 PHP 8.0 仓库(以 8.0 为例,如果要用 8.1 或 8.2 可以对应替换):
sudo yum-config-manager --enable remi-php80 - 安装 PHP 及扩展:
sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl php-bcmath -y - 启动 PHP-FPM 并设置开机自启:
sudo systemctl start php-fpm sudo systemctl enable php-fpm - 验证 PHP 版本:
输出应该能看到 PHP 8.x 的版本信息,到这步就算装好了。php -v
三、安装Web服务器(以Nginx为例)
ThinkPHP 需要 Web 服务器来处理 HTTP 请求,Nginx 是首选方案——高性能、轻量级,配置也简单。
- 安装 Nginx:
sudo yum install nginx -y - 启动 Nginx 并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx - 验证 Nginx 运行状态:在浏览器里输入服务器的 IP 地址,如果看到 Nginx 的欢迎页面,那就说明安装成功了。
四、配置Web服务器支持PHP
1. 配置Nginx解析PHP
编辑 Nginx 的默认站点配置文件(或者新建一个自定义配置):
sudo vi /etc/nginx/conf.d/thinkphp.conf
添加以下内容,记得把 /path/to/your/thinkphp/project 换成你项目的实际路径:
server {
listen 80;
server_name your_domain.com; # 替换为域名或IP
root /path/to/your/thinkphp/project/public; # ThinkPHP项目public目录
index index.php index.html index.htm;
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文件
}
}
- 测试 Nginx 配置语法:
如果输出sudo nginx -tsyntax is ok,就重启 Nginx 让配置生效:sudo systemctl restart nginx
五、安装Composer(PHP依赖管理工具)
ThinkPHP 项目依赖 Composer 来管理,安装步骤如下:
- 安装 Composer 依赖:
sudo yum install unzip git -y - 下载并安装 Composer:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer - 验证 Composer 安装:
能看到版本号就说明装好了。composer --version
六、部署ThinkPHP项目
- 进入项目目录:
cd /path/to/your/thinkphp/project - 使用 Composer 创建 ThinkPHP 项目(以 ThinkPHP 8.x 为例):
或者把现有的项目上传到composer create-project topthink/think your-project-name/path/to/your/thinkphp/project目录。 - 配置数据库连接:编辑项目根目录下的
.env文件(或者config/database.php),修改以下参数: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/MariaDB:
sudo yum install mysql-server -y - 启动 MySQL 并设置开机自启:
sudo systemctl start mysqld sudo systemctl enable mysqld - 获取 root 用户临时密码:
sudo grep 'temporary password' /var/log/mysqld.log - 登录 MySQL 并修改 root 密码:
mysql -u root -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword'; # 替换为强密码 - 创建数据库和用户:
CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 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; - 退出 MySQL:
EXIT;
八、设置权限与启动项目
- 设置项目目录权限,避免权限问题导致无法访问:
sudo chown -R nginx:nginx /path/to/your/thinkphp/project # CentOS 7默认Nginx用户为nginx sudo chmod -R 755 /path/to/your/thinkphp/project - 启动 ThinkPHP 内置服务器(仅开发环境使用):
在浏览器里访问cd /path/to/your/thinkphp/project php think runhttp://your_server_ip:8000,如果看到 ThinkPHP 的欢迎页面,那就说明部署成功了。
九、常见问题排查
- 502 Bad Gateway:检查 PHP-FPM 是否运行(
sudo systemctl status php-fpm),确认 Nginx 配置中的fastcgi_pass路径与 PHP-FPM 监听路径一致(通常是/run/php-fpm/www.sock)。 - 路由失效:确保 Nginx 配置中包含
try_files $uri $uri/ /index.php?$query_string;,而且项目public/.htaccess文件没有被删除(如果用的是 Apache 的话)。 - Composer 安装慢:配置国内镜像加速,比如阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,速度会快很多。