centos上thinkphp项目部署流程是怎样的
导读:CentOS上ThinkPHP项目部署流程 1. 环境准备 在部署前需安装Web服务器(Nginx/Apache)、PHP环境、Composer(依赖管理)、MySQL/MariaDB(数据库),确保系统具备运行ThinkPHP的基础条件。...
CentOS上ThinkPHP项目部署流程
1. 环境准备
在部署前需安装Web服务器(Nginx/Apache)、PHP环境、Composer(依赖管理)、MySQL/MariaDB(数据库),确保系统具备运行ThinkPHP的基础条件。
- 安装Nginx(以Nginx为例):
sudo yum install epel-release -y sudo yum install nginx -y sudo systemctl start nginx sudo systemctl enable nginx - 安装PHP及扩展(ThinkPHP 6.x推荐PHP 7.4+):
sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-curl php-xml php-zip -y sudo systemctl start php-fpm sudo systemctl enable php-fpm - 安装Composer(管理PHP依赖):
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
2. 配置Web服务器
根据选择的Web服务器调整配置,确保能正确解析PHP请求并指向项目目录。
- Nginx配置(关键:开启PATHINFO支持):
编辑/etc/nginx/conf.d/thinkphp.conf(或新建站点配置),添加以下内容:测试配置并重启Nginx:server { listen 80; server_name your_domain.com; # 替换为你的域名/IP root /path/to/your/thinkphp/project/public; # 必须指向public目录(ThinkPHP入口) index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; # 路由转发到index.php } location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/php-fpm.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文件 } }sudo nginx -t sudo systemctl restart nginx - Apache配置(可选):
若使用Apache,需启用mod_rewrite模块,并创建虚拟主机配置,确保AllowOverride All(允许.htaccess生效)。
3. 部署ThinkPHP项目
将项目代码上传至服务器指定目录(如/var/www/html/thinkphp),推荐使用Git或FTP工具。
- 通过Git克隆项目(推荐,便于版本管理):
cd /path/to/your/project git clone https://github.com/your/thinkphp-project.git . - 通过FTP上传:
使用FileZilla等工具将本地项目文件上传至服务器目标目录。
4. 安装依赖与配置数据库
- 安装Composer依赖:
进入项目根目录,执行以下命令安装依赖(生产环境建议添加--no-dev跳过开发依赖):composer install --no-dev --optimize-autoloader - 配置数据库连接:
编辑项目根目录下的.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 - 创建数据库与表:
登录MySQL,执行以下命令:CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE your_database_name; SOURCE /path/to/your/thinkphp/project/database/init.sql; # 导入初始化表结构(若有)
5. 设置文件权限
确保项目目录权限正确,避免因权限问题导致无法访问或写入。
sudo chown -R nginx:nginx /path/to/your/thinkphp/project # 若使用Nginx,用户为nginx
sudo chmod -R 755 /path/to/your/thinkphp/project
sudo chmod -R 775 /path/to/your/thinkphp/project/runtime # runtime目录需可写
6. 启动服务与访问项目
- 启动Web服务:
sudo systemctl start nginx sudo systemctl enable nginx sudo systemctl start php-fpm sudo systemctl enable php-fpm - 访问项目:
在浏览器中输入http://your_domain.com,若看到ThinkPHP欢迎页面,说明部署成功。
7. 优化与安全配置(可选但推荐)
- 关闭调试模式:
修改.env文件,将APP_DEBUG=true改为APP_DEBUG=false,避免泄露敏感信息。 - 配置HTTPS:
使用Let’s Encrypt免费证书,通过Certbot工具配置HTTPS,提升安全性:sudo yum install certbot python3-certbot-nginx -y sudo certbot --nginx -d your_domain.com - 开启OPcache:
编辑php.ini,启用OPcache加速PHP执行:opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 - 配置缓存:
使用Redis或Memcached作为缓存驱动,提升性能(需安装对应扩展并修改.env配置)。
常见问题排查
- 502 Bad Gateway:检查PHP-FPM是否运行(
sudo systemctl status php-fpm),确认Nginx配置中的fastcgi_pass路径与php-fpm监听端口一致。 - 路由失效:确保Nginx配置中包含
try_files $uri $uri/ /index.php?$query_string;,且PATH_INFO参数正确传递。 - 权限问题:检查项目目录所有者是否为Web服务器用户(如
nginx),runtime目录是否可写。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos上thinkphp项目部署流程是怎样的
本文地址: https://pptw.com/jishu/736543.html
