Come abilitare l'evento MPM Apache 2.4 su Ubuntu 14.04 con thread safe PHP?

21

Ho effettuato l'aggiornamento a Ubuntu Server 14.04 prevedendo che l'installazione predefinita di apache avrebbe utilizzato il nuovo evento MPM, ma invece ho trovato il vecchio prefork che mangiava memoria.

Ho installato con successo l'evento MPM in Arch Linux, ma non riesco a farlo su Ubuntu. Continuo a ricevere:

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

Ho già installato php-fpm e configurato apache2 per usarlo, ma dal momento che i file di configurazione di apache2 sono diversi su Ubuntu, non sono sicuro se lo sto facendo nel posto giusto.

Qualche idea su come rendere il thread PHP sicuro così posso usare apache2 event-mpm? (senza dover ricompilare manualmente php, ovviamente)

    
posta Towerman 23.04.2014 - 07:32
fonte

5 risposte

33

Per disabilitare event MPM , puoi fare sudo a2dismod mpm_event e successivamente per abilitare prefork , dovresti fare sudo a2enmod mpm_prefork .

Infine riavvia apache:

sudo service apache2 restart
    
risposta data Mehraban 16.05.2016 - 10:55
fonte
12

Questo ha funzionato per me.

Prima controlla se hai installato questo pacchetto:

dpkg -l | grep libapache2-mod-php5

Se lo hai rimosso basta:

apt-get remove libapache2-mod-php5
    
risposta data Carlos Mafla 03.12.2015 - 03:24
fonte
6

È possibile installare più modi per Apache per comunicare con PHP in parallelo. Forse hai (ancora) il vecchio mod_php installato, in aggiunta a fastcgi / php-fpm.

Puoi vedere quali moduli Apache ha caricato in fase di runtime con

apache2ctl -M

Se necessario, utilizza sudo per ottenere i privilegi di root. Se vedi php5_module (shared) tra i moduli attualmente in uso su Apache, il vecchio mod_php è ancora installato e ti impedisce di utilizzare mpm_worker o mpm_event .

    
risposta data Henning Kockerbeck 25.05.2014 - 16:50
fonte
1

Cerca quanto segue nelle sezioni Load Modules del tuo file di configurazione di Apache:

LoadModule mpm_event_module modules/mod_mpm_event.so

E sostituirlo con il seguente modulo:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
    
risposta data Ajsti.pl - Maciej Szewczyk 16.05.2016 - 10:57
fonte
0

Per me seguire pienamente il lavoro su debian:

  1. Disattiva prefork, abilita evento: a2dismod mpm_prefork && a2enmod mpm_event
  2. rimuovi mod-php5: aptitude remove libapache2-mod-php5
  3. Tieni presente che ciascuna opzione php_ nel tuo incapsulamento VHost di <IfModule mod_php5.c></IfModule> , altrimenti l'apache non si riavvierà
  4. fai service apache2 restart
risposta data suther 10.10.2017 - 12:29
fonte

Leggi altre domande sui tag