ubuntu中thinkphp部署流程是怎样的
小樊
40
2025-11-26 22:45:37
Ubuntu下部署ThinkPHP的标准流程
一 环境准备
- 更新系统并安装基础组件(以 Ubuntu 20.04/22.04 为例,PHP 建议 7.4+):
- 安装命令:sudo apt update && sudo apt install -y php php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-gd nginx mysql-server composer
- 安装完成后核对版本与扩展:
- 核对命令:php -v;根据需要启用或确认已安装扩展(PDO、OpenSSL、MBstring 等)
- 说明:ThinkPHP可在 Linux 稳定运行,常见组合为 Nginx + PHP-FPM 或 Apache。
二 获取与放置项目代码
- 方式一(全新项目):使用 Composer 创建
- 命令:composer create-project topthink tp6(“tp6”为项目目录名,可自定义)
- 方式二(已有项目):上传或克隆到服务器目录(如 /var/www/html/your_project)
- 进入目录后安装依赖:composer install
- 目录规范:将 Web 根目录指向项目的 public 目录,这是框架的对外入口。
三 Web服务器配置
- Nginx 配置要点(站点文件建议放在 /etc/nginx/sites-available/your_project):
- 核心配置示例:
- root 指向:/var/www/html/your_project/public;
- 路由重写:location / { try_files $uri $uri/ /index.php?$query_string; }
- PHP 处理:location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
- 启用站点与检查:
- 命令:sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled/;sudo nginx -t;sudo systemctl restart nginx
- Apache 配置要点(确保启用 mod_rewrite):
- 在站点配置中设置 DocumentRoot 为项目的 public,并在项目根目录放置或确保存在有效的 .htaccess 以进行重写
- 命令:sudo a2enmod rewrite;sudo systemctl restart apache2。
四 框架与数据库配置
- 数据库配置:
- 推荐使用 .env 文件配置数据库连接(示例):
- DB_TYPE=mysql;DB_HOST=127.0.0.1;DB_NAME=your_db;DB_USER=your_user;DB_PASSWORD=your_pass;DB_PORT=3306
- 如使用旧版本或未采用 .env,可在配置文件(如 application/database.php)中设置相同参数
- 目录权限与运行用户:
- 确保 runtime 目录可写:chmod -R 755 runtime;chown -R www-data:www-data /var/www/html/your_project
- 调试模式:
- 生产环境务必关闭:将 config/app.php 中的 ‘app_debug’ 设置为 false。
五 启动、验证与常见问题
- 启动与验证:
- 重启服务:sudo systemctl restart nginx(或 apache2);sudo systemctl status php7.4-fpm
- 访问测试:打开浏览器访问 http://your_domain_or_ip,应看到框架欢迎页或项目首页
- 常见问题快速排查:
- 502 Bad Gateway:检查 PHP-FPM 是否运行、Nginx 中 fastcgi_pass 路径是否与本机 PHP-FPM 套接字一致(如:/run/php/php7.4-fpm.sock)
- 路由失效/404:确认 Nginx 包含 try_files 重写规则;Apache 确认 mod_rewrite 已启用且 .htaccess 生效
- 日志定位:查看 /var/log/nginx/error.log 与 PHP-FPM 错误日志以快速定位问题。