我在 Ubuntu 伺服器上將 Apache 2.4 配置為 mpm_prefork。
碰巧透過htop
我看到有一些進程使用了大量的CPU。
我如何準確地找出此 Apache 進程在我的網站上運行的 url/php 腳本?例如。
PID | 中央處理器 | 時間 | 使用者 | 命令 | 腳本(我沒有訊息) |
---|---|---|---|---|---|
123 | 80% | 0:01:30 | www-數據 | /usr/bin/apache2 -k 啟動 | /site-folder/index.php/controller/function_abc |
123 | 5% | 0:02:30 | www-數據 | /usr/bin/apache2 -k 啟動 | /site-folder/index.php/controller_2/function_123 |
我無法啟動mod_status
為CIS不建議使用該模組。
答案1
建議不要啟用 mod_status 的原因是,如果它可用,那麼它將在伺服器範圍內可用。
當您也允許.htaccess
檔案(這是預設的或大多數 Apache httpd 部署)時,每個可以編輯/建立.htaccess
檔案的使用者都可以啟用狀態 URL。與大多數可以從.htaccess
檔案啟用/配置的指令不同,狀態 URL 的範圍不限於放置 .htaccess 檔案的目錄路徑,而是公開整個伺服器和託管在其中的所有網站的狀態。這可能會在共享伺服器上造成嚴重的安全風險/資訊外洩。
這種安全風險不需要存在。
當許多不同的網站管理員不使用伺服器而不是依賴.htaccess
檔案時,伺服器管理員可以將所有指令載入到靜態配置中httpd.conf
(和/或從啟用網站和/或conf.d等包含的片段中) . 子目錄。
然後禁用所有.htaccess
(透過設定AllowOverride none
)。那也提高性能順便一提。
然後,只有管理員可以啟用狀態 URL,並且在該 URL 上設定適當的存取控制時,使用 mod_status 沒有風險。