You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS 6中PHP版本设置问题:CLI与phpinfo()版本不一致

这种情况太常见了——你升级的只是CLI版本的PHP,但你的Web服务器(不管是Apache还是Nginx)还在死死抱着旧的PHP 5.3模块或者配置不肯撒手。下面分两种主流服务器场景给你一步步解决:

如果你用的是Apache服务器

  • 先把旧的PHP 5.3模块禁用掉
    先看看当前Apache加载了哪些PHP模块,跑这条命令:
    apachectl -M | grep php
    如果输出里有php5_module(这就是对应5.3的模块),先把它禁用:
    a2dismod php5
  • 启用PHP 5.6的模块
    接着启用新的5.6模块:
    a2enmod php5.6
  • 重启Apache让配置生效
    这条命令跑起来:
    service apache2 restart
  • 额外确认:检查站点配置
    有时候个别站点可能单独指定了PHP版本,打开你的站点配置文件(比如/etc/apache2/sites-available/your-site.conf),看看有没有类似SetHandler application/x-httpd-php5.6的配置,确保指向的是5.6版本。

如果你用的是Nginx服务器

Nginx是靠php-fpm来处理PHP请求的,所以重点要搞定php-fpm的版本:

  • 先停掉旧的PHP 5.3-fpm服务
    先把旧服务停了,还要禁止它开机自启:
    service php5.3-fpm stop
    systemctl disable php5.3-fpm
    
  • 启动PHP 5.6-fpm服务
    然后启动新的5.6版本的fpm,设置开机自启:
    service php5.6-fpm start
    systemctl enable php5.6-fpm
    
  • 修改Nginx的站点配置
    打开你的站点配置文件(比如/etc/nginx/sites-available/your-site.conf),找到处理PHP的location块,确保fastcgi_pass指向的是PHP 5.6的socket或者端口,比如:
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php5.6-fpm.sock;
        # 要是用端口的话,改成 fastcgi_pass 127.0.0.1:9000; 但要确认这是5.6的fpm端口
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
  • 重启Nginx生效
    service nginx restart

通用检查小技巧

不管用哪种服务器,都可以做这两步确认:

  • 看phpinfo()里的「Loaded Configuration File」项,找到它加载的php.ini路径,对比一下是不是PHP 5.6对应的配置文件(比如/etc/php/5.6/apache2/php.ini或者/etc/php/5.6/fpm/php.ini)。
  • 用which php看看CLI的PHP路径,再确认Web服务用的PHP路径和它是否一致(如果不一致,说明Web服务没用到新的PHP版本)。

内容的提问来源于stack exchange,提问作者Christopher M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:54:55