Linux环境下测试 ThinkPHP 的完整流程
一 环境准备与快速验证
- 安装基础组件:确保已安装 PHP(≥7.4,ThinkPHP 8 需 ≥8.0)、PHP-FPM、Nginx/Apache、MySQL/MariaDB 与 Composer。
示例(Debian/Ubuntu):sudo apt update && sudo apt install -y php php-fpm php-mysql php-mbstring php-xml php-curl nginx
示例(CentOS/RHEL/Alibaba Cloud Linux):sudo yum install -y php php-fpm php-mysqlnd php-mbstring php-xml php-curl nginx
- 安装 Composer:curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer
- 创建项目:composer create-project topthink tp6 && cd tp6
- 快速启动内置服务器:php think run(默认监听 8000 端口)
- 访问验证:在浏览器打开 http://<服务器IP>:8000,出现欢迎页即表示框架可运行。
二 使用 Web 服务器测试 Nginx 与 Apache
- Nginx 配置要点
- 将站点根目录指向项目的 public 目录;在 server 块中配置:
- root /path/to/tp6/public;
- try_files $uri $uri/ /index.php?$query_string;
- location ~ .php$ 使用 fastcgi_pass 指向 PHP-FPM(如:unix:/run/php/php-fpm.sock 或 127.0.0.1:9000),并设置 SCRIPT_FILENAME、PATH_INFO 等参数。
- Apache 配置要点
- 启用 mod_rewrite,将 DocumentRoot 指向 public,并在 中设置 AllowOverride All。
- 重载服务并访问
- sudo systemctl reload nginx 或 sudo systemctl restart apache2
- 浏览器访问 http://<域名或IP>/,能正常打开且路由可用即表示 Web 环境测试通过。
三 数据库与目录权限验证
- 数据库连通性
- 在 .env 或 config/database.php 中配置 TYPE、HOSTNAME、DATABASE、USERNAME、PASSWORD、PORT,使用 php think db:connect 测试连接,或编写简单模型/控制器查询验证读写。
- 目录权限与运行用户
- 确保 runtime、日志、缓存等目录可写:chmod -R 755 runtime,chown -R www-data:www-data /path/to/tp6(Linux 发行版用户组可能为 nginx/apache,请按实际调整)。
- 安全与优化
- 生产环境关闭调试:在 config/app.php 将 app_debug => false;
- 禁止访问敏感文件:location ~ /.env { deny all; };
- 建议开启 OPcache 提升性能。
四 常见问题快速排查
- 502 Bad Gateway:检查 PHP-FPM 是否运行(systemctl status php-fpm),并核对 Nginx fastcgi_pass 路径或端口是否正确。
- 路由 404/白屏:确认 Nginx 包含 try_files $uri $uri/ /index.php?$query_string;,Apache 启用 mod_rewrite 且 .htaccess 生效。
- Composer 安装慢:使用国内镜像 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。
- 权限错误:确认 runtime 与上传目录对 Web 服务运行用户可写。
五 一键验证清单
| 测试项 |
预期结果 |
命令或路径 |
| PHP 版本 |
输出 ≥7.4(TP8 ≥8.0) |
php -v |
| Composer |
可用 |
composer -V |
| 内置服务 |
浏览器访问 :8000 显示欢迎页 |
php think run |
| Nginx/Apache |
站点根目录为 public,路由正常 |
配置 root 与 try_files/rewrite |
| 数据库连接 |
能连接并查询 |
php think db:connect 或简单查询 |
| 目录权限 |
runtime 可写 |
chmod/chown 后无写入报错 |
| 安全与性能 |
.env 禁止访问,OPcache 开启 |
Nginx deny all;php.ini 启用 opcache |