总体兼容性与版本要求
php think run 验证,生产环境建议使用 Nginx/Apache + PHP-FPM。常见兼容性问题与修复
$this->fetch($request->action(true)) 保持原始大小写(避免改动框架核心)。php-ctype、php-pdo、php-pdo_mysql、php-mysqlnd、php-gd、php-mbstring、php-xml、php-zip 等),并重启 PHP-FPM/Web 服务。remi-php80),并安装匹配的扩展集。try_files $uri $uri/ /index.php?$query_string;,为 Apache 启用 mod_rewrite 并配置重写规则。setenforce 0 验证;生产环境应配置正确的 SELinux 布尔值/策略与安全组/防火墙放行端口(如 8000/80/443)。CentOS 7 与 8 部署要点对比
| 维度 | CentOS 7 | CentOS 8 |
|---|---|---|
| 默认 PHP | 5.4(过低,需更换) | 7.2(仍可能低于项目需求) |
| 启用 PHP 8.0 | 安装 EPEL + Remi,启用 remi-php80 后 yum install php php-fpm ... |
使用 Remi 仓库启用相应版本(如 remi-php80/81/82) |
| 常用扩展 | 建议:php-mysqlnd php-gd php-mbstring php-xml php-zip php-bcmath php-json php-fpm |
同上(按项目实际增减) |
| 开发验证 | php think run(默认 8000 端口) |
同上 |
| 生产建议 | Nginx/Apache + PHP-FPM,正确重写规则与权限 | 同上 |
说明:ThinkPHP 6 官方要求 PHP >= 7.1;ThinkPHP 8 要求 PHP >= 8.0。在 CentOS 7/8 上均可通过 Remi 仓库安装所需版本;部署前务必用 php -v 与 php -m 校验版本与扩展。
标准化部署与排查清单
yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-zip ...;php -v 校验。root 指向项目 public,try_files $uri $uri/ /index.php?$query_string;;PHP-FPM 通过 127.0.0.1:9000 或 unix socket 连接;重启服务。mod_rewrite,配置 AllowOverride All,使用标准重写规则。composer create-project topthink <app>;进入目录 php think run 验证;生产环境按需执行 composer install 与 php think vendor:publish。chown -R nginx:nginx <project>(或 apache:apache);chmod -R 755 <project>;确保 runtime、vendor 可写。mysql_secure_installation 初始化;在 .env 或 config/database.php 正确配置 DB_TYPE/DB_HOST/DB_NAME/DB_USER/DB_PASS/DB_PORT。could not find driver、Call to undefined function ctype_lower()、Permission denied、No input file specified、404 路由失效。