아파치 인 에이블 작업자 mpm


10

우분투에서 작동하도록 FastCGI 및 PHP5-FPM을 구성했습니다.

그러나 "apache2 worker mpm" 모듈을 설치 하고 apache2의 기본값 인 "prefork mpm" 을 구성하고 바꾸고 싶었습니다 .

내가 찾은 모든이에 CentOS는 있었다 /etc/sysconfig/httpd단지 퍼팅 HTTPD=/usr/sbin/httpd.worker할 것 "작업자 MPM은" 사용 가능.

  1. 우분투에서 "worker mpm"을 어떻게 활성화합니까?

  2. 또한 아파치의 컴파일 된 모듈을 나열 할 때 기본적으로 사용하기 때문에 "/usr/sbin/apachectl -l"나열 "prefork.c"된 목록 을 표시하지 않습니다 . 그러나 내가 "/usr/sbin/apache2 -V | grep MPM"그것을 할 때 "Server MPM : prefork"라고 표시 하면 누군가가 이것을 설명 할 수 있습니까?

$ / usr / sbin / apache2 -V | grep MPM

Server MPM:     prefork

phpinfo ();

Server API :    FPM/FastCGI

답변:


29

일한 후 나는 그것을 스스로했다. 아래 단계를 찾을 수 있습니다.

현재 실행중인 MPM Apache를 확인하십시오.

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

사용 가능한 MPM 모듈 나열 (mpm_worker가 나열되어 있는지 확인)

ls /etc/apache2/mods-available/mpm*

Result:
/etc/apache2/mods-available/mpm_event.conf  /etc/apache2/mods-available/mpm_prefork.conf  /etc/apache2/mods-available/mpm_worker.conf
/etc/apache2/mods-available/mpm_event.load  /etc/apache2/mods-available/mpm_prefork.load  /etc/apache2/mods-available/mpm_worker.load

활성화 된 MPM 모듈 나열 (mpm_worker가 활성화되지 않은 경우 활성화하고 mpm_prefork 모듈을 비활성화해야 함)

ls -l /etc/apache2/mods-enabled/mpm*

Result:
/etc/apache2/mods-enabled/mpm_prefork.conf -> ../mods-available/mpm_prefork.conf
/etc/apache2/mods-enabled/mpm_prefork.load -> ../mods-available/mpm_prefork.load

MPM_PREFORK 모듈 비활성화

a2dismod mpm_prefork

MPM_WORKER 모듈 활성화

a2enmod mpm_worker

Apache가 MPM WORKER에서 실행 중인지 확인하려면

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

이 명령을 실행 한 후이 오류가 발생하면 다음을 수행하십시오.

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP

libapache2 패키지를 제거하십시오 :

apt-get remove libapache2-mod-php5

2
지침을 따르지만 다음과 같은 결과를 얻습니다. * 웹 서버 apache2 다시 시작 [실패] * apache2 구성 테스트에 실패했습니다. 구성 테스트 결과는 다음과 같습니다. AH00534 : apache2 : 구성 오류 : 둘 이상의 MPM이로드되었습니다. 'configtest'조치가 실패했습니다. Apache 오류 로그에 자세한 정보가있을 수 있습니다.
neobie

완벽 :) 그것은 나를 위해 일하고 있습니다.
chirag jagani

"Apache에서 스레드 MPM을 실행 중이지만 PHP 모듈이 스레드 안전하도록 컴파일되지 않았습니다. PHP를 다시 컴파일해야합니다"라는 오류가 발생하고 libapache2-mod-php5를 제거해도 도움이되지 않습니다.
iCyborg

2

Apache는 스레드 MPM을 실행하고 있지만 PHP 모듈은 스레드 안전하도록 컴파일되지 않았습니다. PHP를 다시 컴파일해야합니다.


0

이 명령을 실행 한 후이 오류가 발생하면 다음을 수행하십시오.

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP

libapache2 패키지를 제거하십시오 :

apt-get remove libapache2-mod-php7.0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.