在Linux系统中,查询PHP版本是开发运维中的常见需求,无论是调试环境、依赖检查还是版本升级,都需要准确获取当前PHP的版本信息,本文将详细介绍多种在Linux中查询PHP版本的方法,涵盖命令行、网页环境、配置文件等场景,并针对不同Linux发行版提供具体操作示例,帮助用户快速定位所需信息。
通过命令行直接查询(最常用)
命令行查询是最直接的方式,适用于已安装PHP CLI(命令行接口)的环境,PHP CLI通常与PHP-FPM或Apache/Nginx模块的PHP版本一致,但需注意多版本共存时可能需指定路径。
基础命令:php -v
这是最简洁的命令,直接输出PHP版本、编译信息及模块列表。
操作步骤:
- 打开终端,输入以下命令:
php -v
- 输出示例(以PHP 8.2为例):
PHP 8.2.10 (cli) (built: Sep 10 2023 15:25:10) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.10, Copyright (c) Zend Technologies with Zend OPcache v8.2.10, Copyright (c), by Zend Technologies
其中第一行的
PHP 8.2.10
即为核心版本号,cli
表示当前环境为命令行模式。
指定PHP路径查询(多版本场景)
若系统安装了多个PHP版本(如PHP 7.4和PHP 8.1),默认php
命令可能指向某个版本,需通过绝对路径或版本号指定。
-
方法1:使用
which
或whereis
查找PHP路径which php # 查找默认php命令路径(如/usr/bin/php) whereis php # 查找所有php相关路径(如/usr/bin/php /etc/php/8.1/cli/php.ini)
根据路径执行,
/usr/bin/php -v # 执行默认版本 /usr/bin/php8.1 -v # 若安装了php8.1命令,可直接调用
-
方法2:使用
update-alternatives
管理(Ubuntu/Debian)
若通过update-alternatives
管理多版本PHP,可通过以下命令查看及切换:sudo update-alternatives --config php # 列出可用PHP版本并选择
使用php --version
(与-v
等效)
该命令与php -v
功能完全一致,输出内容相同,可根据习惯选择:
php --version
通过网页环境查询(适用于服务器环境)
若PHP运行在Web服务器(如Apache、Nginx)中,可通过创建PHP信息页面查看版本,同时可检查模块配置、环境变量等详细信息。
操作步骤:
-
创建PHP信息文件:
在网站根目录(如/var/www/html
)创建info.php
如下:<?php phpinfo(); ?>
-
访问文件:
通过浏览器访问http://your_domain/info.php
(your_domain
替换为实际域名或IP),页面会显示详细的PHP配置信息。 -
定位版本信息:
在页面顶部“PHP Version”字段即可看到当前PHP版本号(如“PHP 8.1.2”)。
注意事项:
- 安全性:
phpinfo()
会暴露服务器配置、路径等敏感信息,排查完成后务必删除该文件。 - 多站点环境:若使用虚拟主机,需确保文件放在对应站点的根目录,并检查Web服务器配置是否允许访问。
通过PHP配置文件路径推断版本
PHP配置文件(如php.ini
)的路径通常包含版本信息,可通过定位配置文件间接判断PHP版本。
操作步骤:
-
查找
php.ini
路径:php --ini # 输出PHP CLI的配置文件路径
输出示例:
Configuration File (php.ini) Path: /etc/php/8.2/cli Loaded Configuration File: /etc/php/8.2/cli/php.ini Scan for additional .ini files in: /etc/php/8.2/cli/conf.d
路径中的
2
即为PHP版本号。 -
查看Web环境的
php.ini
:
若需查询Web服务器使用的PHP版本,可通过以下方式定位配置文件:- Apache:执行
phpinfo()
页面查找“Loaded Configuration File”字段。 - Nginx+PHP-FPM:通过
ps aux | grep php-fpm
查看PHP-FPM进程,根据进程路径(如/usr/sbin/php8.1-fpm
)推断版本。
- Apache:执行
通过包管理器查询(适用于源码包安装环境)
若PHP通过系统包管理器(如apt
、yum
、dnf
)安装,可通过查询已安装包列表获取版本信息。
Ubuntu/Debian系统(使用apt
)
dpkg -l | grep php # 列出所有已安装的PHP相关包 apt list --installed | grep php # 更直观显示包名及版本
输出示例:
php8.2-cli/now 8.2.10-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed,local] php8.2-fpm/now 8.2.10-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed,local]
包名中的php8.2
即为核心版本。
CentOS/RHEL系统(使用yum
或dnf
)
rpm -qa | grep php # 使用yum(CentOS 7及以下) dnf list installed | grep php # 使用dnf(CentOS 8及以上)
输出示例(CentOS 8,使用dnf
):
php-cli-8.0.28-1.el8.remi.x86_64 php-fpm-8.0.28-1.el8.remi.x86_64
通过Composer或Laravel Artisan间接查询
在开发环境中,若使用Composer管理依赖或Laravel框架,可通过相关工具间接获取PHP版本(适用于快速验证环境)。
Composer版本依赖
composer --version # 查看Composer版本,其依赖的PHP版本会显示在括号中
输出示例:
Composer version 2.5.8 2023-06-09 17:13:51 PHP 8.2.10 - /usr/bin/php8.2
Laravel Artisan命令
若项目使用Laravel,可通过artisan
命令查看环境信息:
php artisan --version # 查看Laravel版本 php artisan about # Laravel 10+支持,输出详细环境信息(含PHP版本)
方法对比与选择
为方便用户根据场景选择合适方法,以下通过表格总结各方法的适用场景及优缺点:
方法 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
php -v |
命令行环境,快速查询 | 简单直接,无需额外操作 | 需确保PHP CLI已安装 |
网页phpinfo() |
Web服务器环境,需详细配置信息 | 信息全面,可查模块/环境变量 | 需创建临时文件,存在安全风险 |
配置文件路径推断 | 无执行权限,需通过路径判断版本 | 适合排查安装路径问题 | 需结合路径解析,不够直观 |
包管理器查询 | 源码包安装环境,确认安装的包版本 | 可查所有PHP相关依赖包 | 需熟悉包管理器命令 |
Composer/Artisan | 开发环境,依赖框架/工具的场景 | 间接验证,适合开发流程 | 依赖工具是否安装,非直接查询 |
相关问答FAQs
Q1:为什么执行php -v
提示“command not found”?
解答:
该错误通常表示系统中未安装PHP CLI或PHP CLI未添加到系统环境变量(PATH
),解决方法:
- 安装PHP CLI:
- Ubuntu/Debian:
sudo apt update && sudo apt install php-cli
- CentOS/RHEL:
sudo yum install php-cli
(或dnf install php-cli
) - 若需指定版本(如PHP 8.1),需先添加第三方源(如Ondřej Surý的PHP源)。
- Ubuntu/Debian:
- 检查环境变量:
执行echo $PATH
,确认PHP安装路径(如/usr/bin
)是否包含在PATH
中,若未包含,需添加到~/.bashrc
或/etc/profile
中。
Q2:Linux系统安装了多个PHP版本(如PHP 7.4和PHP 8.1),如何查看所有已安装的PHP版本?
解答:
可通过以下组合命令全面排查多版本PHP:
- 查看命令行可用的PHP版本:
ls /usr/bin/php* # 列出所有php可执行文件(如php7.4、php8.1)
- 通过包管理器查询已安装的PHP包:
- Ubuntu/Debian:
dpkg -l | grep php | awk '{print $2}' | cut -d'-' -f1 | sort -u
- CentOS/RHEL:
rpm -qa | grep php | cut -d'-' -f1 | sort -u
- Ubuntu/Debian:
- 查看Web服务器使用的PHP版本:
- 若使用PHP-FPM,执行
systemctl status php*-fpm
(如php7.4-fpm
、php8.1-fpm
)查看运行状态。 - 通过
phpinfo()
页面确认Web环境实际加载的PHP版本。
- 若使用PHP-FPM,执行
通过以上方法,可全面掌握系统中所有PHP版本的安装及运行情况,便于多版本环境的管理与切换。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/34117.html