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

GNU/Linux下如何通过Shell/SSH命令查看PHP更新操作历史

GNU/Linux下查询PHP版本变更历史的方法

不存在跨所有发行版通用的独立命令,PHP的安装、升级、卸载操作全部由系统包管理器记录,根据你服务器使用的发行版对应查询包管理日志即可,以下是常见环境的操作方式:

  • Debian/Ubuntu(dpkg/apt体系)
    dpkg会留存所有软件包的操作明细日志,直接过滤PHP相关条目即可:
    grep -i "php" /var/log/dpkg.log*
    如果历史日志已经被轮转压缩,直接用zgrep读取压缩包内容,不需要手动解压:
    zgrep -i "php" /var/log/dpkg.log*
    输出内容会明确标注操作时间、操作类型(install安装/upgrade升级/remove卸载)、版本变更前后的具体值,升级记录会直接显示旧版本号 -> 新版本号的格式。如果只想看版本升级的记录,可以加过滤规则缩小范围:
    zgrep -i "upgrade.*php" /var/log/dpkg.log*
  • RHEL/CentOS/Rocky Linux/AlmaLinux/Fedora(yum/dnf体系)
    • CentOS 6/7等使用yum的版本,直接查询yum日志:
      grep -i "php" /var/log/yum.log*
    • CentOS 8+/RHEL8+/Fedora等使用dnf的版本,既可以查日志文件,也可以用dnf自带的历史命令查结构化记录:
      先列出所有涉及PHP包的操作事务:
      dnf history list php
      拿到返回结果里的事务ID后,查询对应事务的详细信息,包含操作时间、操作人、所有涉及包的版本前后变化:
      dnf history info <替换为实际查到的事务ID>
      压缩的轮转日志同样可以用zgrep直接查询。
  • 源码编译安装的PHP
    包管理器不会留存操作记录,可以先查询PHP二进制文件的修改时间做初步判断:
    stat $(which php)
    返回结果里的Modify字段就是当前PHP二进制文件最后一次被替换/修改的时间,如果当时编译安装时留存了编译目录、安装日志,可以到对应部署路径下找更详细的记录。

注意:如果服务器配置了日志定期清理策略,超过留存周期的操作记录会被删除,这种场景可以通过php -v输出里的Build Date(编译时间)字段,和你已知的历史部署时间做交叉验证。

内容的提问来源于stack exchange,提问作者rikabetty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 18:54:24