Linux下如何查看PHP版本信息?

在Linux系统中查询PHP版本信息是日常开发和服务器维护中的常见需求,根据PHP的安装方式(如源码编译、包管理器安装、多版本共存等)和运行环境(CLI模式、Web服务器模式),有多种查询方法,以下是详细的操作步骤和适用场景分析,帮助用户准确获取PHP版本信息。

linux如何查php版本信息

命令行直接查询(CLI模式)

PHP命令行接口(CLI)是Linux系统中常用的PHP运行模式,通过终端命令可以直接查询版本信息,这是最快捷的方式。

使用 php -v 命令

命令格式

php -v

适用场景
当PHP已通过系统包管理器(如aptyum)或源码编译安装,且PHP可执行文件在系统PATH环境变量中时,此命令可直接生效。

输出示例

PHP 8.1.2 (cli) (built: Jan 12 2023 10:20:30) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies

说明

  • 第一行显示PHP版本(如1.2)、运行模式(cli为命令行,fpm为FastCGI)及编译时间;
  • 第二行为版权信息;
  • 第三行为Zend引擎版本(PHP核心执行引擎)。

处理命令不存在的情况

若执行php -v提示command not found,可能原因包括:

  • 未安装PHP CLI:部分系统默认只安装Web服务器模式的PHP(如PHP-FPM),需单独安装CLI版本。
    • Ubuntu/Debian系统:sudo apt install php-cli
    • CentOS/RHEL系统:sudo yum install php-cli(需先安装EPEL源)
  • PHP未添加到PATH:若通过源码编译安装PHP,可执行文件可能位于/usr/local/php/bin等自定义路径,需临时指定路径执行:
    /usr/local/php/bin/php -v

    或将PHP路径添加到~/.bashrc/~/.bash_profile环境变量中,永久生效。

查询多版本PHP

若系统共存多个PHP版本(如PHP 7.4和PHP 8.1),包管理器安装的通常会生成版本化命令(如php7.4 -vphp8.1 -v),可通过以下方式确认:

  • Ubuntu/Debianls /usr/bin/php*
  • CentOS/RHELls /usr/bin/php*ls /usr/local/bin/php*
    执行对应版本命令即可,

    php8.1 -v  # 查询PHP 8.1版本
    php7.4 -v  # 查询PHP 7.4版本

Web环境查询(服务器模式)

当PHP运行在Web服务器(如Apache、Nginx)中时,需通过浏览器或Web脚本查询版本信息,适合确认服务器实际运行的PHP版本。

使用 phpinfo() 函数

操作步骤

  1. 在Web服务器根目录(如/var/www/html)创建一个PHP文件,例如info.php; 写入:
    <?php
    phpinfo();
    ?>
  2. 保存后通过浏览器访问http://服务器IP/info.php,页面将显示PHP的详细配置信息。

关键信息位置
在页面顶部“PHP Version”字段可直接查看版本(如“PHP Version 8.1.2”),同时可查看加载的扩展、配置文件路径等。

linux如何查php版本信息

注意事项

  • 查询完成后需删除info.php文件,避免泄露服务器敏感信息(如路径、扩展配置等);
  • 若Web服务器未正确配置PHP解析,需检查模块加载情况(如Apache的mod_php或Nginx的php-fpm)。

通过 php -i 查看配置信息(CLI模式)

若无法访问Web环境,可通过CLI模式输出PHP配置信息并过滤版本号:

php -i | grep "PHP Version"

输出示例

PHP Version => 8.1.2

此方法适合脚本化处理或快速获取版本号,无需输出完整配置信息。

配置文件查询

PHP的配置文件php.ini中可能包含版本相关线索,但需结合其他命令定位文件路径。

定位 php.ini 路径

执行以下命令获取当前PHP使用的配置文件路径:

php --ini

输出示例

Configuration File (php.ini) Path: /etc/php/8.1/cli
Loaded Configuration File:         /etc/php/8.1/cli/php.ini
Scan for additional .ini files in: /etc/php/8.1/cli/conf.d

说明

  • 第一行为php.ini的目录路径;
  • 第二行为当前加载的php.ini完整路径。

检查 php.ini

打开php.ini文件(需root权限),通过搜索PHPversion定位版本信息,但通常php.ini中不直接存储版本号,需结合php -vphpinfo()确认。

包管理器查询(适用于系统安装的PHP)

若PHP通过系统包管理器(aptyum等)安装,可通过查询已安装包列表获取版本信息。

Ubuntu/Debian 系统(使用 dpkg

dpkg -l | grep php

输出示例

linux如何查php版本信息

ii  php8.1-cli              8.1.2-1ubuntu2.1              amd64        command-line interpreter for the PHP scripting language
ii  php8.1-fpm              8.1.2-1ubuntu2.1              amd64        PHP's FastCGI Process Manager

说明

  • 第一列ii表示包已正确安装;
  • 第二列为包名(如php8.1-cli表示PHP 8.1的CLI版本);
  • 第三列为版本号(如1.2-1ubuntu2.1)。

CentOS/RHEL 系统(使用 rpm

rpm -qa | grep php

输出示例

php-cli-8.1.2-1.el8.remi.x86_64
php-fpm-8.1.2-1.el8.remi.x86_64

说明:包名格式与Debian不同,但版本号位于中间位置(如1.2)。

不同查询方法的对比总结

为方便用户选择合适的方法,以下通过表格对比各查询方式的特点:

方法类别 具体命令/操作 适用场景 优点 缺点
命令行CLI查询 php -vphp7.4 -v 快速查询CLI模式版本,多版本共存场景 简单快捷,无需依赖Web环境 需确认PHP CLI已安装
Web环境查询 创建phpinfo()文件访问浏览器 确认Web服务器实际运行的PHP版本 信息全面,可查看扩展和配置 需Web环境支持,需临时创建文件
配置信息过滤 php -i | grep "PHP Version" 脚本化处理或快速获取版本号 输出简洁,适合自动化 需熟悉命令行管道操作
包管理器查询 dpkg -l | grep phprpm -qa | grep php 查询系统通过包管理器安装的PHP版本包 可确认安装的包版本 无法直接显示运行时版本

相关问答FAQs

问题1:为什么执行 php -v 提示 “command not found”?

解答
出现该错误通常有两个原因:

  1. 未安装PHP CLI:部分Linux系统默认只安装Web服务器模式的PHP(如PHP-FPM),需单独安装CLI版本。
    • Ubuntu/Debian:sudo apt update && sudo apt install php-cli
    • CentOS/RHEL:sudo yum install php-cli(需先配置EPEL或Remi源)
  2. PHP未添加到PATH:若通过源码编译安装PHP,可执行文件可能位于自定义路径(如/usr/local/php/bin),需临时指定路径执行:
    /usr/local/php/bin/php -v

    或将PHP路径添加到~/.bashrc环境变量中(执行echo 'export PATH=/usr/local/php/bin:$PATH' >> ~/.bashrc && source ~/.bashrc)。

问题2:如何确认Web服务器(如Nginx)使用的PHP版本不是CLI版本?

解答
Web服务器(如Nginx)通常通过PHP-FPM或FastCGI模式运行PHP,其版本可能与CLI版本不同,可通过以下方式确认:

  1. 通过 phpinfo() 查询:在Web根目录创建info.php<?php phpinfo(); ?>),浏览器访问后查看“PHP Version”字段,该版本即为Web服务器实际运行的PHP版本。
  2. 检查PHP-FPM配置:PHP-FPM的配置文件(如/etc/php/8.1/fpm/php-fpm.conf/etc/php/8.1/fpm/pool.d/www.conf)中会指定执行的PHP路径,可通过以下命令查看:
    grep "php-fpm" /etc/nginx/sites-enabled/default  # 查看Nginx配置中的PHP-FPM路径

    或直接查看PHP-FPM版本:

    php-fpm8.1 -v  # 若PHP-FPM版本化命令存在
  3. 使用 ps 命令查看进程:执行ps aux | grep php-fpm,查看PHP-FPM进程的启动路径,
    www-data 1234  0.0  0.5  40228 21004 ?        Ss   10:00   0:00 php-fpm: www process (stream=sock, role=Worker)

    若路径中包含php8.1,则说明运行的是PHP 8.1版本的FPM。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/34053.html

(0)
酷番叔酷番叔
上一篇 2025年10月1日 22:51
下一篇 2025年10月1日 23:07

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信