首页主机资讯CentOS下ThinkPHP项目如何部署

CentOS下ThinkPHP项目如何部署

时间2025-10-09 15:31:03发布访客分类主机资讯浏览1171
导读:CentOS下ThinkPHP项目部署详细步骤 1. 环境准备 在部署前需安装Web服务器(Nginx/Apache)、PHP环境、数据库(MySQL/MariaDB)、Composer等必要组件。 安装Nginx(以Nginx为例):s...

CentOS下ThinkPHP项目部署详细步骤

1. 环境准备

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

  • 安装Nginx(以Nginx为例):
    sudo yum install epel-release -y
    sudo yum install nginx -y
    sudo systemctl start nginx
    sudo 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 -y
    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
    
  • 安装MySQL
    sudo yum install mysql-server -y
    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    sudo mysql_secure_installation  # 完成安全初始化配置
    
  • 安装Composer(PHP依赖管理工具):
    curl -sS https://getcomposer.org/installer | php
    sudo 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;
      # 替换为你的域名/IP
    root /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监听socket
        fastcgi_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 rewrite
sudo systemctl restart httpd

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

<
    VirtualHost *:80>
    
    ServerName your_domain.com
    DocumentRoot /var/www/html/thinkphp/public
    <
    Directory /var/www/html/thinkphp/public>
    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    <
    /Directory>
    
<
    /VirtualHost>
    

3. 部署ThinkPHP项目

  • 上传项目代码:通过Git、FTP或SFTP将项目上传至/var/www/html/thinkphp(或其他目录)。
  • 安装依赖:进入项目目录,执行Composer安装:
    cd /var/www/html/thinkphp
    composer install --no-dev --optimize-autoloader  # 生产环境关闭dev依赖
    
  • 配置数据库:编辑.env文件(或config/database.php),填写数据库连接信息:
    DB_TYPE=mysql
    DB_HOST=127.0.0.1
    DB_NAME=your_db_name
    DB_USER=your_db_user
    DB_PASSWORD=your_db_password
    DB_PORT=3306
    DB_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、MySQL
    sudo systemctl enable nginx php-fpm mysqld # 设置开机自启
    
  • 测试访问
    浏览器输入http://your_domain.com,若看到ThinkPHP欢迎页面则部署成功。

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

  • 关闭调试模式:修改.env文件,设置APP_DEBUG=false,避免敏感信息泄露。
  • 配置缓存:开启OPcache提升PHP性能,编辑/etc/php.ini
    zend_extension=opcache.so
    opcache.enable=1
    opcache.memory_consumption=128
    opcache.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)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS下ThinkPHP项目如何部署
本文地址: https://pptw.com/jishu/721436.html
centos下laravel缓存怎么设置 如何在centos上配置golang测试环境

游客 回复需填写必要信息