CentOS 与 ThinkPHP 兼容性问题的排查与解决
一 版本匹配与基础环境
二 Nginx 与 PATH_INFO 配置
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass unix:/run/php-fpm/www.sock; # 或 127.0.0.1:9000
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
如需使用 Apache,请确保启用 mod_rewrite 并配置 AllowOverride All,以便框架路由生效。三 PHP 版本升级与多版本管理
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum remove php* # 谨慎:会移除现有 PHP
yum install php56w php56w-cli php56w-common php56w-fpm php56w-mysqlnd php56w-mbstring php56w-gd php56w-xml
升级后重启 php-fpm 与 Nginx/Apache,并验证 php -v 与框架运行结果。四 目录权限与运行用户
listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
user = nginx
group = nginx
chown -R nginx:nginx /path/to/yourphp
find /path/to/yourphp -type d -exec chmod 755 {} \;
find /path/to/yourphp -type f -exec chmod 644 {} \;
chmod -R 775 /path/to/yourphp/runtime /path/to/yourphp/log
五 快速排查清单