我已在 Ubuntu 服务器上将 Apache 2.4 配置为 mpm_prefork。
碰巧的是,通过htop
我看到的,有一些进程使用了大量CPU。
我如何才能准确找出这个 Apache 进程正在我的网站上运行的 url/php 脚本?例如:
PID | 中央处理器 | 时间 | 用户 | 命令 | 脚本(我没有相关信息) |
---|---|---|---|---|---|
123 | 80% | 0:01:30 | www-数据 | /usr/bin/apache2 -k 启动 | /站点文件夹/index.php/controller/function_abc |
123 | 5% | 0:02:30 | www-数据 | /usr/bin/apache2 -k 启动 | /站点文件夹/index.php/controller_2/function_123 |
我无法激活mod_status
激活独联体不建议使用该模块。
答案1
建议不要启用 mod_status 是因为如果启用了 mod_status,那么它将在整个服务器范围内可用。
当您还允许.htaccess
文件(这是默认设置或大多数 Apache httpd 部署)时,每个可以编辑/创建.htaccess
文件的用户都可以启用状态 URL。与大多数可以从文件启用/配置的指令不同,.htaccess
状态 URL 的范围不仅限于放置 .htaccess 文件的目录路径,而是公开整个服务器和托管在那里的所有站点的状态。这可能会对共享服务器造成严重的安全风险/信息泄露。
这种安全风险根本就没有必要存在。
当服务器未被许多不同的网站管理员使用时,.htaccess
服务器管理员可以将所有指令加载到静态配置中,而不是依赖文件httpd.conf
(和/或从 sites-enabled 和/或 conf.d 等子目录中包含的代码片段中)。
然后禁用所有.htaccess
(通过设置AllowOverride none
)。这也提高性能顺便说一下。这样
只有管理员才能启用状态 URL,并且当在该 URL 上设置了适当的访问控制时,使用 mod_status 就没有风险了。