centos

thinkphp在centos的配置步骤

小樊
40
2025-09-22 02:41:55
栏目: 编程语言

一、环境准备:安装基础软件包

在CentOS上部署ThinkPHP前,需先安装**Web服务器(Nginx/Apache)、PHP及扩展、Composer、数据库(MySQL/MariaDB)**等基础组件。

1. 更新系统并安装EPEL源(可选但推荐)

sudo yum update -y
sudo yum install -y epel-release  # 用于后续安装额外软件包

2. 安装Web服务器(以Nginx为例)

sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx  # 设置开机自启

若使用Apache,替换为:

sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd

3. 安装PHP及必要扩展

ThinkPHP 8.x要求PHP≥8.0,需安装PHP核心、FPM(用于Nginx)、数据库驱动(如MySQL)及常用扩展:

sudo yum install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-curl php-xml php-bcmath

验证PHP版本:

php -v  # 需显示PHP 8.0及以上版本

4. 安装Composer(PHP依赖管理工具)

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version  # 验证安装

5. 安装数据库(以MySQL为例)

sudo yum install -y mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 运行安全脚本设置root密码
sudo mysql_secure_installation

二、配置Web服务器

1. 配置Nginx(关键:支持PATHINFO)

编辑Nginx站点配置文件(如/etc/nginx/conf.d/thinkphp.conf),添加以下内容:

server {
    listen 80;
    server_name your_domain_or_ip;  # 替换为域名或IP
    root /path/to/your/thinkphp/public;  # 必须指向public目录(入口文件所在)
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;  # 路由重写,支持PATHINFO
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;  # 与PHP-FPM通信
        fastcgi_index index.php;
        include fastcgi.conf;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

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

测试Nginx配置并重启:

sudo nginx -t  # 检查语法
sudo systemctl restart nginx

2. 配置Apache(可选)

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

sudo a2enmod rewrite  # 启用重写模块
sudo systemctl restart httpd

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

<VirtualHost *:80>
    ServerName your_domain_or_ip
    DocumentRoot /path/to/your/thinkphp/public
    <Directory /path/to/your/thinkphp/public>
        Options Indexes FollowSymLinks
        AllowOverride All  # 允许.htaccess覆盖
        Require all granted
    </Directory>
</VirtualHost>

重启Apache:

sudo systemctl restart httpd

三、部署ThinkPHP项目

1. 使用Composer创建项目

进入Web服务器根目录(如/var/www/html),通过Composer创建ThinkPHP项目:

cd /var/www/html
composer create-project topthink/think tp6  # 创建ThinkPHP 6.x项目,名称为tp6

2. 配置数据库连接

编辑项目根目录下的.env文件(或config/database.php),填写数据库信息:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name  # 替换为已创建的数据库名
DB_USERNAME=your_username       # 替换为数据库用户名
DB_PASSWORD=your_password       # 替换为数据库密码

3. 运行数据库迁移(可选)

若项目包含数据库表结构,执行迁移命令:

cd /path/to/your/thinkphp
php think migrate

四、设置权限与优化

1. 调整目录权限

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

sudo chown -R nginx:nginx /path/to/your/thinkphp  # Nginx用户
sudo chmod -R 755 /path/to/your/thinkphp

2. 关闭调试模式(生产环境)

编辑.env文件,设置:

APP_DEBUG = false  # 关闭调试模式,避免暴露敏感信息

3. 配置HTTPS(可选但推荐)

使用Let’s Encrypt免费获取SSL证书:

sudo yum install -y certbot python3-certbot-nginx  # Nginx用户
sudo certbot --nginx -d your_domain_or_ip  # 自动配置HTTPS

五、启动与验证

1. 启动项目

2. 验证结果

若看到ThinkPHP欢迎页面,说明部署成功。若遇到502错误,需检查:

0
看了该问题的人还看了