一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

CentOS下ThinkPHP项目怎么部署

时间:2026-07-06 10:03:46 编辑:袖梨 来源:一聚教程网

CentOS下ThinkPHP项目部署详细步骤

1. 环境准备

在部署前需安装Web服务器(Nginx/Apache)、PHP环境、数据库(MySQL/MariaDB)、Composer等必要组件。

CentOS下ThinkPHP项目如何部署

  • 安装Nginx(以Nginx为例):
    sudo yum install epel-release -ysudo yum install nginx -ysudo systemctl start nginxsudo systemctl enable nginx
  • 安装PHP及扩展(ThinkPHP 6需PHP 7.4+):
    sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl -ysudo systemctl start php-fpmsudo systemctl enable php-fpm
  • 安装MySQL:
    sudo yum install mysql-server -ysudo systemctl start mysqldsudo systemctl enable mysqldsudo mysql_secure_installation# 完成安全初始化配置
  • 安装Composer(PHP依赖管理工具):
    curl -sS https://getcomposer.org/installer | phpsudo mv composer.phar /usr/local/bin/composer

2. 配置Web服务器

Nginx配置

创建ThinkPHP专属站点配置文件(如/etc/nginx/conf.d/thinkphp.conf),内容如下:

server {listen 80;server_name your_domain.com;# 替换为你的域名/IProot /var/www/html/thinkphp/public;# ThinkPHP项目public目录index index.php index.html;location / {try_files $uri $uri/ /index.php?$query_string;# 路由转发到index.php}location ~ .php$ {fastcgi_pass unix:/run/php-fpm/www.sock;# PHP-FPM监听socketfastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;# 支持PATH_INFO}location ~ /.ht {deny all;# 禁止访问.htaccess文件}}

测试配置并重启Nginx:

sudo nginx -t# 检查配置语法sudo systemctl restart nginx
Apache配置(可选)

若使用Apache,需启用mod_rewrite模块并创建虚拟主机:

sudo a2enmod rewritesudo systemctl restart httpd

创建配置文件(如/etc/httpd/conf.d/thinkphp.conf):

<VirtualHost *:80>ServerName your_domain.comDocumentRoot /var/www/html/thinkphp/public<Directory /var/www/html/thinkphp/public>Options Indexes FollowSymLinksAllowOverride AllRequire all granted</Directory></VirtualHost>

3. 部署ThinkPHP项目

  • 上传项目代码:通过Git、FTP或SFTP将项目上传至/var/www/html/thinkphp(或其他目录)。
  • 安装依赖:进入项目目录,执行Composer安装:
    cd /var/www/html/thinkphpcomposer install --no-dev --optimize-autoloader# 生产环境关闭dev依赖
  • 配置数据库:编辑.env文件(或config/database.php),填写数据库连接信息:
    DB_TYPE=mysqlDB_HOST=127.0.0.1DB_NAME=your_db_nameDB_USER=your_db_userDB_PASSWORD=your_db_passwordDB_PORT=3306DB_PREFIX=tp_# 可选表前缀

4. 设置权限

确保Web服务器用户(Nginx默认nginx,Apache默认apache)对项目目录有读写权限:

sudo chown -R nginx:nginx /var/www/html/thinkphp# 修改所属用户/组sudo chmod -R 755 /var/www/html/thinkphp# 设置目录权限sudo chmod -R 777 /var/www/html/thinkphp/runtime# runtime目录需可写(上传/缓存)

5. 启动服务并测试

  • 启动服务:
    sudo systemctl start nginx php-fpm mysqld# 启动Nginx、PHP-FPM、MySQLsudo systemctl enable nginx php-fpm mysqld # 设置开机自启
  • 测试访问:浏览器输入http://your_domain.com,若看到ThinkPHP欢迎页面则部署成功。

6. 生产环境优化(可选)

  • 关闭调试模式:修改.env文件,设置APP_DEBUG=false,避免敏感信息泄露。
  • 配置缓存:开启OPcache提升PHP性能,编辑/etc/php.ini
    zend_extension=opcache.soopcache.enable=1opcache.memory_consumption=128opcache.max_accelerated_files=4000
  • 使用Redis缓存:安装Redis并配置ThinkPHP使用Redis存储会话/缓存,提升并发性能。
  • 配置HTTPS:通过Let’s Encrypt申请免费SSL证书,配置Nginx支持HTTPS(listen 443 ssl)。

常见问题排查

  • 502 Bad Gateway:检查PHP-FPM是否运行(sudo systemctl status php-fpm),确认Nginx配置中的fastcgi_pass路径正确。
  • 路由失效:确保Nginx配置中包含try_files $uri $uri/ /index.php?$query_string;,且PATH_INFO参数已开启。
  • 权限问题:若出现“Permission denied”错误,检查项目目录所属用户及权限(ls -ld /var/www/html/thinkphp)。

热门栏目