아파치가 프리 포크 또는 작업자로 실행 중인지 (또는 실행하도록 구성되어 있는지) 어떻게 알 수 있습니까?
아파치가 프리 포크 또는 작업자로 실행 중인지 (또는 실행하도록 구성되어 있는지) 어떻게 알 수 있습니까?
답변:
MPM은 컴파일 타임에 구성됩니다. 나중에 알아내는 한 가지 방법은 모듈로 컴파일 된 목록을 작성하는 것입니다. 이 목록에는 선택한 MPM이 포함됩니다. -l 플래그를 사용하여 아파치 바이너리를 실행하여 목록을 작성할 수 있습니다.
andreas@halleck:~$ apache2 -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
worker.c
http_core.c
mod_so.c
andreas@halleck:~$
여기서 worker.c 모듈을 찾게되므로 worker MPM을 실행하고 있습니다.
apache2ctl -M활성 모듈을 나열 하는 데 사용할 수 있습니다 .
Series8217과 Andol의 답변이 모두 틀립니다.
문제는 Apache가 prefork 또는 worker를 실행 중인지 확인하는 방법이었습니다 . 다른 답변에서 제공하는 조언 은 현재 기본 또는 다른 선택이 사용되는 경우가 아니라 기본 MPM이 무엇인지 알려줍니다 (컴파일 된 모듈 기반).
경우 httpd -V쇼 prefork의 그 단지 수단의 prefork의는 컴파일 된 기본 MPM입니다. 이 프로세스에 표시된대로 Apache 구성 파일 설정을 변경하여이를 대체 할 수 있습니다.
/etc/sysconfig/httpdCentOS / RedHat)HTTPD=/usr/sbin/httpd.worker이 프로세스를 사용하여 실제로 실행중인 MPM을 표시 할 수 있습니다.
curl localhost/server-infohttpd -V다시 실행 -작업자가 아닌 프리 포크가 계속 표시됩니다.결론 :
httpd -V 실제로 사용중인 옵션이 아닌 기본 옵션을 표시합니다.많은 웹 사이트에는 httpd -VApache가 prefork 또는 worker를 실행 중인지 확인 하는 데 사용되는 답변이 있습니다 . 그들은 모두 틀렸다. 위 절차를 시도하여 스스로 확인하십시오.
우분투 14.04에서
a2query -M
지시 event, prefork,worker
당신은에 대한 기호 링크 추가하여 변경할 수 있습니다 mpm_<chosen>에서 mods-available에 mods-enabled의를 /etc/apache2.
한 번에 하나만 허용됩니다.
eventMPM은 아파치의 사이트, "활성 처리와의 연결을 위해 스레드를 소비 목적으로 작업자 MPM의 변형"에 따르면,.
RHEL / Fedora / etc에서을 실행하십시오 httpd -V. 다음과 같은 출력이 제공됩니다.
Server version: Apache/2.2.21 (Unix)
...
Architecture: 64-bit
Server MPM: Prefork
...
여기서 'Server MPM'은 'Prefork'이므로 서버에서 prefork MPM을 실행하고 있습니다.
Chris Johnson의 답변이 옳습니다.
Apache Documentation ( http://httpd.apache.org/docs/2.2/mod/mod_info.html )에 설명 된대로 정보 모듈을 활성화 한 후이 하나의 라이너는 사용중인 MPM을 제공합니다.
links -dump http://localhost/server-info/?server | grep "MPM Name"