在部署前需安装Web服务器(Nginx/Apache)、PHP及扩展、数据库(MySQL/MariaDB)、Composer,确保系统依赖满足ThinkPHP运行要求。
sudo yum update -ysudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-curl php-xml php-bcmath -y
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo yum install mysql-server -y
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo mysql_secure_installation # 完成安全配置(设置root密码、移除匿名用户等)
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
ThinkPHP需要伪静态支持,需修改Nginx配置文件(/etc/nginx/conf.d/thinkphp.conf):
server {
listen 80;
server_name your_domain.com; # 替换为域名或IP
root /var/www/html/thinkphp/public; # 项目public目录
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string; # 路由重写
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock; # PHP-FPM socket路径
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all; # 禁止访问.htaccess文件
}
}
验证配置并重启Nginx:
sudo nginx -t # 测试配置语法
sudo systemctl restart nginx
若使用Apache,需启用mod_rewrite并配置虚拟主机(/etc/httpd/conf.d/thinkphp.conf):
<VirtualHost *:80>
ServerName your_domain.com
DocumentRoot /var/www/html/thinkphp/public
<Directory /var/www/html/thinkphp/public>
AllowOverride All # 允许.htaccess覆盖
Require all granted
</Directory>
</VirtualHost>
重启Apache:
sudo systemctl restart httpd
/var/www/html/thinkphp(或其他目录)。composer install --no-dev --optimize-autoloader(--no-dev用于生产环境移除开发依赖,--optimize-autoloader优化自动加载性能)。.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=tp_ # 表前缀(可选)
CREATE DATABASE your_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_database.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES;
php think migrate:run # 执行数据库迁移
确保项目目录权限正确,避免因权限问题导致无法访问:
sudo chown -R nginx:nginx /var/www/html/thinkphp # Nginx用户(若用Apache则改为apache:apache)
sudo chmod -R 755 /var/www/html/thinkphp
sudo chmod -R 775 /var/www/html/thinkphp/runtime # runtime目录需可写
sudo systemctl start nginx
sudo systemctl start php-fpm
sudo systemctl enable nginx
sudo systemctl enable php-fpm
http://your_domain.com,若看到ThinkPHP欢迎页面则部署成功。.env文件,设置APP_DEBUG=false。php.ini)和Redis缓存(修改config/cache.php)。以上步骤覆盖了ThinkPHP项目在CentOS上的完整部署流程,可根据实际需求调整配置(如端口、域名、数据库类型等)。部署过程中若遇到问题,可通过查看Web服务器错误日志(/var/log/nginx/error.log或/var/log/httpd/error_log)定位解决。