Apache mengaktifkan mpm pekerja

10

Saya telah mengkonfigurasi FastCGI dan PHP5-FPM untuk bekerja di ubuntu, yang berfungsi dengan baik.

Tetapi saya menginstal "apache2 pekerja mpm" modul dan ingin mengkonfigurasi dan mengganti "prefork mpm" yang merupakan default di apache2.

Semua yang saya temukan di CentOS /etc/sysconfig/httpdhanya dengan menempatkan HTTPD=/usr/sbin/httpd.workerakan membuat "mpm pekerja" diaktifkan.

  1. Bagaimana kita mengaktifkan "mpm pekerja" di Ubuntu?

  2. Juga ketika saya daftar modul yang dikompilasi dari apache "/usr/sbin/apachectl -l"itu tidak akan daftar "prefork.c"yang dikatakan daftar karena kita menggunakannya secara default. Tetapi ketika saya melakukannya "/usr/sbin/apache2 -V | grep MPM"menunjukkan "Server MPM: prefork" dapatkah seseorang menjelaskan hal ini?

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

Server MPM:     prefork

phpinfo ();

Server API :    FPM/FastCGI
sravis
sumber

Jawaban:

29

Setelah beberapa waktu bekerja saya melakukannya sendiri. Anda dapat menemukan langkah-langkah di bawah ini.

Periksa apache MPM mana yang sedang berjalan:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

Daftar Modul MPM yang Tersedia (Pastikan mpm_worker terdaftar)

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

Daftar Diaktifkan Modul MPM (Jika mpm_worker tidak diaktifkan, kita harus mengaktifkannya dan menonaktifkan modul 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

Nonaktifkan modul MPM_PREFORK

a2dismod mpm_prefork

Aktifkan modul MPM_WORKER

a2enmod mpm_worker

Untuk memeriksa apakah Apache berjalan pada MPM WORKER

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

Jika Anda mendapatkan kesalahan ini setelah menjalankan perintah ini:

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

Cobalah untuk menghapus paket libapache2:

apt-get remove libapache2-mod-php5
sravis
sumber
2
Ikuti instruksi tetapi dapatkan ini: * Restart apache2 server web [gagal] * Configtest apache2 gagal. Output dari tes konfigurasi adalah: AH00534: apache2: Kesalahan konfigurasi: Lebih dari satu MPM dimuat. Tindakan 'configtest' gagal. Log kesalahan Apache mungkin memiliki informasi lebih lanjut.
neobie
sempurna :) ini bekerja untuk saya.
chirag jagani
Itu memberikan kesalahan "Apache menjalankan MPM berulir, tetapi Modul PHP Anda tidak dikompilasi untuk menjadi threadsafe. Anda perlu mengkompilasi ulang PHP" dan menghapus libapache2-mod-php5 juga tidak membantu.
iCyborg
2

Apache menjalankan MPM berulir, tetapi Modul PHP Anda tidak dikompilasi untuk menjadi threadsafe. Anda perlu mengkompilasi ulang PHP.

twixi
sumber
0

Jika Anda mendapatkan kesalahan ini setelah menjalankan perintah ini:

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

Cobalah untuk menghapus paket libapache2:

apt-get remove libapache2-mod-php7.0
David Van De Meer
sumber