温馨提示×

CentOS下ThinkPHP项目如何搭建

小樊
48
2025-10-19 16:04:36
栏目: 编程语言

CentOS下ThinkPHP项目搭建完整步骤

1. 准备基础环境

在搭建ThinkPHP项目前,需先安装Web服务器(Nginx/Apache)、PHP环境及Composer依赖管理工具。以下以Nginx+PHP-FPM组合为例(推荐,性能更优):

  • 更新系统
    sudo yum update -y
    
  • 安装EPEL仓库(提供额外软件包):
    sudo yum install epel-release -y
    
  • 安装Nginx
    sudo yum install nginx -y
    sudo systemctl start nginx
    sudo systemctl enable nginx
    
  • 安装PHP及必要扩展(ThinkPHP需PDO、MySQL、MBstring等扩展):
    sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl -y
    
  • 配置PHP-FPM(编辑/etc/php-fpm.d/www.conf,确保以下参数正确):
    listen = /run/php-fpm/www.sock
    listen.owner = nginx
    listen.group = nginx
    user = nginx
    group = nginx
    
    启动PHP-FPM并设置开机自启:
    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
    
  • 安装Composer(全局可用):
    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer
    

2. 部署ThinkPHP项目

  • 上传项目文件:通过scprsync或Git将本地项目上传至服务器(如/var/www/html/your_project)。
  • 安装项目依赖:进入项目根目录,运行以下命令安装Composer依赖:
    cd /var/www/html/your_project
    composer install --no-dev --optimize-autoloader  # 生产环境建议关闭dev依赖
    
  • 配置数据库:编辑.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=
    
  • 设置目录权限:确保runtime目录(缓存、日志)可写,public目录(入口文件目录)权限正确:
    sudo chown -R nginx:nginx /var/www/html/your_project
    sudo chmod -R 755 /var/www/html/your_project/runtime
    sudo chmod -R 755 /var/www/html/your_project/public
    

3. 配置Nginx虚拟主机

  • 创建站点配置文件
    sudo vim /etc/nginx/conf.d/your_project.conf
    
    添加以下内容(关键点:root指向public目录,try_files规则实现URL重写):
    server {
        listen 80;
        server_name your_domain.com;  # 替换为你的域名或IP
        root /var/www/html/your_project/public;
        index index.php index.html;
    
        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 ln -s /etc/nginx/conf.d/your_project.conf /etc/nginx/sites-enabled/
    sudo nginx -t  # 测试配置语法
    sudo systemctl restart nginx
    

4. 生产环境优化

  • 关闭调试模式:编辑config/app.php,将app_debug设为false
    'app_debug' => false,
    
  • 启用HTTPS:使用Let’s Encrypt免费证书(需提前安装Certbot):
    sudo certbot --nginx -d your_domain.com
    
    按提示完成证书申请,Certbot会自动修改Nginx配置启用HTTPS。

5. 验证项目

在浏览器中访问http://your_domain.com(或HTTPS地址),若看到ThinkPHP项目首页,说明部署成功。

  • 常见问题排查
    • 502 Bad Gateway:检查PHP-FPM是否运行(sudo systemctl status php-fpm),确认Nginx配置中的fastcgi_pass路径正确。
    • 路由失效:确保Nginx配置中包含try_files规则,且root指向public目录。
    • 权限问题:重新检查runtimepublic目录权限(755),所有者为nginx

通过以上步骤,即可在CentOS系统上完成ThinkPHP项目的搭建与优化。

0