Apache abilita worker mpm


10

Ho configurato FastCGI e PHP5-FPM per funzionare su Ubuntu, che funziona bene.

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

Tutto quello che ho trovato è stato in CentOS a /etc/sysconfig/httpdmettere solo HTTPD=/usr/sbin/httpd.workerrenderà "lavoratore mpm" abilitato.

  1. Come abilitiamo "worker mpm" in Ubuntu?

  2. Inoltre, quando elencherò i moduli compilati di apache "/usr/sbin/apachectl -l", non elencherò quelli "prefork.c"che si dice siano elencati poiché lo stiamo usando per impostazione predefinita. Ma quando lo 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

Risposte:


29

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

Controlla quale MPM Apache è attualmente in esecuzione:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

Elenco dei moduli MPM disponibili (assicurarsi che sia elencato 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

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 il 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 viene visualizzato 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

2
Seguito le istruzioni ma ottenendo questo: * Riavvio del server Web apache2 [fail] * La configurazione di apache2 non è riuscita. L'output del test di configurazione è stato: AH00534: apache2: errore di configurazione: più di un MPM caricato. Azione "configtest" non riuscita. Il registro degli errori di Apache potrebbe contenere ulteriori informazioni.
Neobie,

perfetto :) funziona per me.
Chirag Jagani,

Sta dando l'errore "Apache sta eseguendo un MPM threaded, ma il tuo modulo PHP non è compilato per essere thread-safe. Devi ricompilare PHP" e rimuovere libapache2-mod-php5 non aiuta neanche.
iCyborg

2

Apache esegue un MPM con thread, ma il tuo modulo PHP non è compilato per essere thread-safe. Devi ricompilare PHP.


0

Se viene visualizzato 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.