Apache abilita worker mpm

8

Ho configurato FastCGI e PHP5-FPM per lavorare su ubuntu, che funziona bene.

Ma ho installato "apache2 worker mpm" e volevo configurare e sostituire "prefork mpm" che è predefinito in apache2.

Tutto quello che ho trovato era in CentOS a /etc/sysconfig/httpd solo mettendo HTTPD=/usr/sbin/httpd.worker renderà "worker mpm" abilitato.

  1. Come abilitare "worker mpm" in Ubuntu?

  2. Anche quando elencho i moduli compilati di apache "/usr/sbin/apachectl -l" , non elenco "prefork.c" che dice di essere elencato dal momento che lo stiamo usando per impostazione predefinita. Ma quando faccio "/usr/sbin/apache2 -V | grep MPM" mostra "Server MPM: prefork" qualcuno può spiegarlo per favore?

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

Server MPM:     prefork

phpinfo ();

Server API :    FPM/FastCGI
    
posta sravis 16.09.2014 - 17:13

3 risposte

23

Dopo un po 'di tempo di lavoro l'ho fatto da solo. Puoi trovare i passaggi di seguito.

Verifica quale apache MPM è attualmente in esecuzione:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

Elenca i moduli MPM disponibili (assicurati che mpm_worker sia elencato)

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

Elenco dei moduli MPM abilitati (se mpm_worker non è abilitato dovremmo abilitarlo e disabilitare il modulo 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

Disabilita il modulo MPM_PREFORK

a2dismod mpm_prefork

Abilita modulo MPM_WORKER

a2enmod mpm_worker

Per verificare se Apache è in esecuzione su MPM WORKER

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

Se ricevi questo errore dopo aver eseguito questi comandi:

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

Prova a rimuovere il pacchetto libapache2:

apt-get remove libapache2-mod-php5
    
risposta data sravis 17.09.2014 - 08:33
2

Apache esegue un MPM con thread, ma il tuo modulo PHP non è compilato per essere protetto da thread. Hai bisogno di ricompilare PHP.

    
risposta data twixi 14.10.2015 - 17:07
0

Se ricevi questo errore dopo aver eseguito questi comandi:

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

Prova a rimuovere il pacchetto libapache2:

apt-get remove libapache2-mod-php7.0
    
risposta data David Van De Meer 03.03.2017 - 03:43

Leggi altre domande sui tag