【发布时间】:2020-07-08 13:42:59
【问题描述】:
我遇到了在 HTOP 中可见的 apache 进程 (/usr/sbin/apache2 -k start) 的问题。 enter image description here 每次刷新或来自客户端的连接后,进程的数量都会增加而不会停止运行。 即使浏览器关闭,该过程也会继续。 在每个与数据库连接的 php 页面中,我都以:
$thread_id = $mysqli->thread_id;
$mysqli->kill($thread_id);
$mysqli->close();
过了一会儿,我的树莓派 3 运行非常缓慢,实际上太热了。 我使用默认设置默认安装了 apache。
Server version: Apache/2.4.38 (Raspbian)
Server built: 2019-10-15T19:53:42
Server's Module Magic Number: 20120211:84
Server loaded: APR 1.6.5, APR-UTIL 1.6.1
Compiled using: APR 1.6.5, APR-UTIL 1.6.1
Architecture: 32-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/apache2"
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="apache2.conf"
在我的 mpm_prefork.conf 文件中:
<IfModule mpm_prefork_module>
StartServers 4
MinSpareServers 1
MaxSpareServers 4
MaxRequestWorkers 50
MaxConnectionsPerChild 0
</IfModule>
在客户端离开页面或关闭浏览器后,我可以做什么或设置自动终止这些进程? 或者 apache 中是否有任何设置可以防止这种行为?
提前致谢!
【问题讨论】:
-
是否只针对PHP连接数据库的HTTP连接?
标签: php linux apache raspberry-pi