温馨提示×

centos下thinkphp项目部署步骤

小樊
48
2025-11-01 12:46:39
栏目: 编程语言

CentOS下ThinkPHP项目部署步骤

1. 准备工作

  • 确保服务器已安装CentOS 7及以上版本(推荐),并具备root或sudo权限;
  • 备份现有项目数据(若有);
  • 获取ThinkPHP项目源码(可通过Git克隆、FTP上传或官网下载)。

2. 安装基础环境

2.1 安装Web服务器(Nginx为例)
# 添加EPEL仓库(可选,用于扩展软件包)
sudo yum install epel-release -y

# 安装Nginx
sudo yum install nginx -y

# 启动Nginx并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

验证Nginx是否运行:curl http://localhost,若返回Nginx欢迎页面则表示成功。

2.2 安装PHP及扩展

ThinkPHP 6.x推荐使用PHP 7.4及以上版本,需安装核心扩展:

# 添加Remi仓库(提供最新PHP版本)
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y

# 启用PHP 7.4仓库
sudo yum-config-manager --enable remi-php74 -y

# 安装PHP及必要扩展
sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl php-zip -y

# 启动PHP-FPM并设置开机自启
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

验证PHP版本:php -v,确保输出包含PHP 7.4.x

2.3 安装数据库(MySQL为例)
# 安装MySQL Server
sudo yum install mysql-server -y

# 启动MySQL并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld

# 运行安全脚本(设置root密码、移除匿名用户等)
sudo mysql_secure_installation

登录MySQL:mysql -u root -p,输入密码后进入数据库管理界面。

3. 配置Web服务器

3.1 配置Nginx虚拟主机

创建Nginx配置文件(以域名example.com为例):

sudo vim /etc/nginx/conf.d/example.com.conf

写入以下内容(关键配置说明见注释):

server {
    listen 80;
    server_name example.com;  # 替换为你的域名或IP
    root /var/www/html/example.com;  # 项目根目录(需提前创建)
    index index.php index.html;

    # 路由重写:将非文件/目录请求转发到index.php
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # PHP处理:将.php请求交给PHP-FPM
    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/php-fpm.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;
    }

    # 禁止访问.htaccess等敏感文件
    location ~ /\.ht {
        deny all;
    }
}

测试Nginx配置语法:sudo nginx -t,若无错误则重启Nginx:sudo systemctl restart nginx

4. 部署ThinkPHP项目

4.1 上传项目源码

将ThinkPHP项目上传至Nginx根目录(如/var/www/html/example.com),可通过以下方式:

  • SFTP工具(如FileZilla):连接服务器后拖拽文件至目标目录;
  • Git克隆git clone https://github.com/your/repo.git /var/www/html/example.com
  • 本地解压上传:将项目压缩包上传至服务器,解压至目标目录。
4.2 安装Composer依赖

进入项目目录,安装依赖(需提前安装Composer):

cd /var/www/html/example.com
composer install --no-dev --optimize-autoloader  # 生产环境建议关闭dev依赖

若未安装Composer,可通过curl -sS https://getcomposer.org/installer | php全局安装。

4.3 配置数据库

编辑项目根目录下的.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

创建数据库并导入表结构(若有SQL文件):

mysql -u root -p
CREATE DATABASE your_database;
USE your_database;
SOURCE /path/to/your/sql/file.sql;  # 替换为你的SQL文件路径
4.4 设置目录权限

确保项目目录权限正确(避免权限过高导致安全问题):

sudo chown -R nginx:nginx /var/www/html/example.com  # CentOS默认Web用户为nginx
sudo chmod -R 755 /var/www/html/example.com
sudo chmod -R 775 /var/www/html/example.com/runtime  # runtime目录需可写
4.5 关闭调试模式(生产环境必做)

编辑.env文件,设置:

APP_DEBUG=false

避免暴露敏感信息(如数据库配置、错误堆栈)。

5. 启动服务并访问

# 启动Nginx和PHP-FPM(若未启动)
sudo systemctl start nginx
sudo systemctl start php-fpm

# 设置开机自启
sudo systemctl enable nginx
sudo systemctl enable php-fpm

在浏览器中访问http://example.com,若看到ThinkPHP欢迎页面则表示部署成功。

6. 可选优化

  • 开启OPcache:编辑php.ini,取消opcache.enable=1注释,提升PHP性能;
  • 配置HTTPS:使用Let’s Encrypt免费证书,通过Certbot工具配置SSL;
  • 设置Supervisor:管理PHP-FPM进程,避免进程意外终止;
  • 备份策略:定期备份项目代码和数据库。

以上步骤覆盖了CentOS下ThinkPHP项目的基础部署流程,可根据实际需求调整配置(如使用Apache、Redis缓存等)。

0