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

相关推荐

  • linux下如何关机命令

    在Linux操作系统中,关机操作看似简单,但涉及系统服务的停止、进程的终止、文件系统的同步以及硬件的断电等多个环节,不同场景下可能需要使用不同的命令,掌握这些命令的用法有助于更安全、高效地管理系统,本文将详细介绍Linux下常用的关机命令及其使用方法,基础关机命令详解Linux系统提供了多种关机命令,每种命令的……

    2025年9月21日
    14800
  • 如何高效用GCC编译Linux C程序?

    准备工作安装GCC终端执行以下命令安装GCC(以Debian/Ubuntu为例):sudo apt update && sudo apt install build-essential验证安装:gcc –version # 输出类似 gcc (Ubuntu 11.4.0) 11.4.0编写测试……

    2025年7月21日
    15900
  • Linux系统如何删除文件?操作方法与步骤详解

    在Linux系统中,删除文件是日常操作中常见的任务,但不同场景下需要使用不同的命令和方法,掌握正确的删除方式不仅能提高效率,还能避免误操作导致的数据丢失,本文将详细介绍Linux中删除文件的各类方法、注意事项及实用技巧,基础删除命令:rmrm(remove)是Linux中最常用的删除文件命令,支持删除单个文件……

    2025年8月28日
    2.3K00
  • 为什么你总是感到疲惫?

    Shell脚本中注释多行方法1:使用 << 和自定义标记(推荐)在脚本开头插入:<<'COMMENT'这是被注释的多行内容echo "这行不会执行"ls /nonexistent # 不会报错COMMENT原理:<<‘COMMENT’ 定义……

    2025年6月22日
    17200
  • 手机如何连接Linux SSH实现远程终端访问与管理?

    手机连接Linux服务器的SSH功能,可以让我们随时随地远程管理服务器,实现命令行操作、文件传输等需求,整个过程主要分为Linux端SSH服务配置、手机端客户端安装与连接、网络环境设置三个核心环节,以下是详细操作步骤:Linux端SSH服务配置(服务器准备工作)安装SSH服务大多数Linux发行版默认未安装SS……

    2025年9月20日
    15100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信