如何查看PHP是否已启动:多种实用方法详解
在服务器管理或开发过程中,确认PHP是否正常启动是排查问题、确保服务运行的关键步骤,无论是搭建LAMP/LNMP环境,还是调试PHP应用,多种查看PHP启动状态的方法都至关重要,本文将介绍在不同操作系统和场景下,如何通过命令行、配置文件、进程监控等方式验证PHP是否已启动。
通过命令行直接检查PHP进程(最常用)
使用 ps
命令查看进程列表
ps
命令是Linux/Unix系统中查看进程状态的利器,通过过滤进程名可以快速判断PHP是否启动。
-
查看所有PHP相关进程:
ps aux | grep php
执行后,如果看到包含
php-fpm
、php-cgi
或php-cli
的进程行,说明PHP已启动。# 示例输出(PHP-FPM已启动) www-data 1234 0.0 1.2 40M 5M S 10:00 0:00 php-fpm: pool www www-data 1235 0.0 1.1 40M 5M S 10:00 0:00 php-fpm: pool www root 4567 0.0 0.1 9640 800 pts/0 S+ 10:05 0:00 grep --color=auto php
注意:最后一行是
grep
命令自身的进程,可忽略。 -
关键进程名说明:
php-fpm
:PHP-FPM(FastCGI Process Manager),常用于Web服务器(如Nginx、Apache)的PHP进程管理;php-cgi
:传统CGI模式的PHP进程,较少使用;php-cli
:PHP命令行接口进程,仅用于执行脚本,不涉及Web服务。
使用 pgrep
命令精确匹配进程
pgrep
可更简洁地查找进程ID(PID),适合脚本自动化判断:
pgrep -f "php-fpm" # 查找PHP-FPM进程
- 如果返回数字(如
1234
),说明PHP-FPM已启动; - 无输出则表示进程未运行。
通过PHP内置命令验证功能(需进程支持)
如果PHP进程已启动(尤其是CLI或FPM模式),可通过执行PHP命令直接验证其功能是否正常。
使用 php -v
查看PHP版本
php -v
- 成功输出(显示PHP版本及编译信息):
PHP 7.4.33 (cli) (built: Dec 10 2023 15:30:45) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
- 失败情况:提示
command not found
(PHP未安装或未加入环境变量)或无输出(进程未启动)。
使用 php -m
检查已加载模块
php -m
- 成功输出:列出PHP已加载的扩展模块(如
pdo_mysql
opcache
等),证明PHP进程可正常执行命令; - 无输出或报错:可能进程未响应或配置异常。
通过 php-fpm
状态页(需配置)
如果使用PHP-FPM,可通过配置状态页查看进程池信息,需先在 php-fpm.conf
中启用:
- 编辑PHP-FPM配置文件(如
/etc/php/7.4/fpm/pool.d/www.conf
):[www] pm.status_path = /php-fpm-status # 状态页路径 ping.path = /php-fpm-ping # 健康检查路径
- 重启PHP-FPM后,通过
curl
或浏览器访问:curl http://localhost/php-fpm-status
- 成功输出:显示进程池状态、进程数、平均请求耗时等信息;
- 失败提示(如
404 Not Found
):说明状态页未配置或服务未启动。
通过Web服务器关联检查(适用于PHP-FPM/CGI)
PHP通常作为Web服务器的模块或FastCGI进程运行,可通过检查Web服务器与PHP的联动状态间接验证PHP是否启动。
检查Nginx与PHP-FPM联动
Nginx需通过 fastcgi_pass
将PHP请求转发给PHP-FPM,可通过以下方式验证:
-
方法1:访问PHP测试文件
在Web根目录创建info.php
文件,内容为:<?php phpinfo(); ?>
访问
http://yourdomain.com/info.php
,若看到PHP配置信息页面,说明PHP-FPM正常启动并与Nginx联动成功。 -
方法2:检查Nginx错误日志
如果访问PHP文件返回502 Bad Gateway
,可能是PHP-FPM未启动,查看Nginx错误日志(如/var/log/nginx/error.log
):tail -f /var/log/nginx/error.log
若看到
connect() failed (111: Connection refused)
等错误,说明PHP-FPM进程未监听对应端口。
检查Apache与PHP联动
Apache通过 mod_php
(模块模式)或 mod_proxy_fcgi
(FastCGI模式)运行PHP,可通过以下方式验证:
- 模块模式(
mod_php
):
执行apache2ctl -M
查看已加载模块,若包含php7_module
,说明PHP已集成到Apache中:apache2ctl -M | grep php
- FastCGI模式:
与Nginx类似,可通过访问PHP测试文件或检查Apache错误日志(/var/log/apache2/error.log
)排查PHP-FPM状态。
通过端口监听状态检查(适用于PHP-FPM)
PHP-FPM默认监听特定端口(如 9000
)或Unix套接字(如 /var/run/php/php7.4-fpm.sock
),可通过 netstat
或 ss
命令检查端口是否被监听。
使用 netstat
查看端口
netstat -tuln | grep php # 或指定端口(如9000) netstat -tuln | grep 9000
- 成功输出:显示
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
(表示PHP-FPM正在监听9000端口); - 无输出:说明端口未被监听,PHP-FPM未启动或配置错误。
使用 ss
命令(推荐,更高效)
ss -tuln | grep php # 或查看Unix套接字 ss -tuln | grep /var/run/php/php7.4-fpm.sock
- Unix套接字成功输出:显示
LISTEN 0 128 /var/run/php/php7.4-fpm.sock:*
。
通过系统服务管理工具检查
如果PHP是通过系统服务(如 systemd
或 init.d
)启动的,可直接通过服务管理工具查看状态。
使用 systemctl
(CentOS 7+/Ubuntu 16.04+)
systemctl status php7.4-fpm # 服务名可能为php-fpm、php8.1-fpm等
- 成功输出:显示
active (running)
,说明PHP-FPM服务已启动; - 失败提示:显示
inactive (dead)
或failed
,需通过journalctl -u php7.4-fpm
查看日志排查错误。
使用 service
命令(旧版系统)
service php-fpm status
- 输出
running
表示已启动,stopped
表示未启动。
常见问题排查
如果以上方法均显示PHP未启动,可按以下步骤排查:
- 确认PHP是否安装:执行
which php
或php -v
,若提示command not found
,需先安装PHP;
还没有评论,来说两句吧...