thinkphp 6.x 部署需 php 7.4+,centos 7 必换 remi 源;安装 php-fpm 及扩展后,须配置 web 服务代理至 php-fpm,并处理 selinux 对 runtime 目录的写入限制。

确认系统自带 PHP 版本是否满足 ThinkPHP 要求
ThinkPHP 6.x 最低要求 PHP 7.1,但实际部署建议用 PHP 7.4 或 8.0+;CentOS 7 默认 yum 源里的 php 包是 5.4,完全不可用。
直接运行 php -v 查版本,如果低于 7.1,别折腾默认源,必须换。
- CentOS 7 推荐启用
remi源(稳定、更新勤、PHP 多版本共存友好) - 禁用系统自带的
php和php-common,否则会冲突 - 安装前先执行
yum install epel-release,这是 remi 依赖的基础
配置 remi 源并安装 PHP 7.4(或 8.0)
remi 提供多个 PHP 版本仓库,需手动启用对应 repo 文件,不能只装 remi-release 就完事。
- 安装 remi 源:
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm - 启用 PHP 7.4:
yum-config-manager --enable remi-php74(若要 8.0 则用remi-php80) - 安装核心组件:
yum install php php-cli php-fpm php-mysqlnd php-xml php-gd php-mbstring php-opcache - 特别注意:
php-mysqlnd替代已废弃的php-mysql,否则 ThinkPHP 连不上 MySQL
检查 Apache/Nginx 与 PHP-FPM 的通信是否生效
装完 PHP 不代表 Web 服务能跑起来。CentOS 上常见问题是 Apache 仍调用旧模块,或 Nginx 没配对 fastcgi_pass。
- Apache 用户:确认没加载
libphp7.so,改用proxy_fcgi+sethandler方式转发给 PHP-FPM - Nginx 用户:检查
fastcgi_pass是否指向127.0.0.1:9000或unix:/var/run/php-fpm/www.sock,后者性能更好但权限易错 - 务必启动并设开机自启:
systemctl start php-fpm && systemctl enable php-fpm - 测试用
phpinfo()页面,而不是直接丢 ThinkPHP 入口——避免把环境问题和框架问题混在一起
ThinkPHP 部署时权限与 SELinux 的真实影响
在 CentOS 上,chmod 755 不解决所有问题,SELinux 才是那个默默拦路的“隐形墙”。
- ThinkPHP 的
runtime目录必须可写,但chown -R apache:apache runtime可能无效——因为 SELinux 默认禁止 httpd 写入非标准路径 - 临时验证:执行
setenforce 0,如果这时能写入了,就是 SELinux 策略卡住 - 永久修复:用
semanage fcontext -a -t httpd_sys_rw_content_t "/path/to/thinkphp/runtime(/.*)?",再restorecon -Rv /path/to/thinkphp/runtime - 别删
/etc/selinux/config里那行SELINUX=enforcing,生产环境关 SELinux 是自找麻烦
systemctl restart php-fpm httpd(或 nginx),少一个就白配。php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










