确保CentOS系统已更新至最新版本,并安装基础开发工具(如gcc、make等):
sudo yum update -y
sudo yum groupinstall "Development Tools" -y
ThinkPHP 8.x要求PHP版本≥8.0,需安装PHP核心、CLI、FPM及常用扩展(如mysqlnd、gd、mbstring等)。推荐通过Remi仓库安装(支持最新PHP版本):
sudo yum install epel-release -y
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y # CentOS 7
# CentOS 8需替换为对应Remi仓库地址
sudo yum-config-manager --enable remi-php80
sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl php-bcmath -y
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
php -v
输出应包含PHP 8.x版本信息。ThinkPHP需Web服务器处理HTTP请求,推荐使用Nginx(高性能、轻量级):
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
编辑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文件
}
}
sudo nginx -t
若输出syntax is ok
,则重启Nginx使配置生效:sudo systemctl restart nginx
```。
ThinkPHP项目依赖Composer管理,安装步骤如下:
sudo yum install unzip git -y
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version
输出应显示Composer版本信息。cd /path/to/your/thinkphp/project
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_ # 表前缀(可选)
```。
sudo yum install mysql-server -y
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo grep 'temporary password' /var/log/mysqld.log
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;
EXIT;
```。
sudo chown -R nginx:nginx /path/to/your/thinkphp/project # CentOS 7默认Nginx用户为nginx
sudo chmod -R 755 /path/to/your/thinkphp/project
cd /path/to/your/thinkphp/project
php think run
浏览器访问http://your_server_ip:8000
,若看到ThinkPHP欢迎页面则说明部署成功。sudo systemctl status php-fpm
),确认Nginx配置中的fastcgi_pass
路径与PHP-FPM监听路径一致(/run/php-fpm/www.sock
)。try_files $uri $uri/ /index.php?$query_string;
,且项目public/.htaccess
文件未被删除(若使用Apache)。composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
)。