php - 显示 Apache 当前正在运行的 php 脚本

标签 php linux apache

当我从 Linux 命令行运行 ps -ef 时,我没有看到 Apache 网络用户当前正在运行的 php 脚本,我只看到进程为:

/usr/bin/php5-cgi -q -b 127.0.0.1:9000 -c /etc/php5/cgi/php.ini

是否有命令行显示正在运行的脚本,而不仅仅是 Apache 用户正在使用 php 的事实?

最佳答案

您可以使用 lsof 获取当前工作目录和打开的文件。 遗憾的是,这不包括正在运行的脚本,但如果脚本在 不同的目录,或者打开不同的文件,可以区分 他们。例如,下面显示/var/www/stuff/php 中的脚本正在运行:

sudo lsof -c http | grep cwd
httpd   24475  id  cwd DIR 8,3     4096 1123403 /var/www/stuff/php

您可以配置apache 让您拥有这些信息。添加一个条目,例如

<Location /server-status>
    SetHandler server-status
    ...
</Location>

在你的 conf 中确保它只对受限的远程可用。 然后浏览到 http://localhost/server-status 你会得到一个“ps” 运行作业。例如,此输出显示 gg.php 正在运行(我已经 删除了一些列):

Srv PID     Acc     M CPU     SS Slot Client  VHost  Request
0-0 23688   0/0/262 W 0.50    2  4.48 ::1     xxx:80 GET /php/gg.php HTTP/1.1
1-0 23743   0/0/187 W 0.00    0  3.30 ::1     xxx:80 GET /server-status HTTP/1.1

关于php - 显示 Apache 当前正在运行的 php 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32006559/

相关文章:

php - Docker-PHP不使用分配的资源

php - 代码点火器输入

php - Ping 服务器 + 进度条然后显示不同的 div

linux - 将结构体实例重新声明为相同的变量名将返回 golang 中的旧对象

linux - 通过代理服务器 ssh 到远程机器以运行带参数的脚本

Apache 服务器上的 Python CGI

apache - 将子域名重定向到相同子域名但不同域名

javascript - php mysql 分页和序列号

django - 如何调试从计算机到服务器的连接,服务器端