Apache çalışan mpm'yi etkinleştir


10

FastCGI ve PHP5-FPM'yi ubuntu üzerinde çalışacak şekilde yapılandırdım.

Ama "apache2 worker mpm" modülünü kurdum ve apache2'de varsayılan olan "prefork mpm" yi yapılandırmak ve değiştirmek istedim .

Buldum tüm CentOS /etc/sysconfig/httpdsadece koyarak "işçi mpm" etkin HTTPD=/usr/sbin/httpd.workerhale getirecek oldu .

  1. Ubuntu'da "worker mpm" i nasıl etkinleştiririz?

  2. Ayrıca apache derlenmiş modülleri listelediğimizde, varsayılan olarak kullandığımızdan beri listelendiği söylenen "/usr/sbin/apachectl -l"liste alışkanlık "prefork.c". Ama ne zaman i "/usr/sbin/apache2 -V | grep MPM"gösterir "Sunucu MPM: prefork" bazıları bunu açıklayabilir misiniz?

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

Server MPM:     prefork

phpinfo ();

Server API :    FPM/FastCGI

Yanıtlar:


29

Bir süre çalıştıktan sonra kendim yaptım. Aşağıdaki adımları bulabilirsiniz.

Şu anda hangi MPM apache'nin çalıştığını kontrol edin:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

Kullanılabilir MPM Modüllerini Listele (mpm_worker öğesinin listelendiğinden emin olun)

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

Etkin MPM Modüllerini Listele (mpm_worker etkin değilse, onu etkinleştirmeli ve mpm_prefork modülünü devre dışı bırakmalıyız)

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 modülünü devre dışı bırak

a2dismod mpm_prefork

MPM_WORKER modülünü etkinleştir

a2enmod mpm_worker

Apache'nin MPM WORKER üzerinde çalışıp çalışmadığını kontrol etmek için

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

Bu komutları yürüttükten sonra bu hatayı alırsanız:

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

Libapache2 paketini kaldırmayı deneyin:

apt-get remove libapache2-mod-php5

2
Talimatı izledi ancak şunu aldı: * Web sunucusu yeniden başlatılıyor apache2 [başarısız] * Apache2 yapılandırma testi başarısız oldu. Yapılandırma testinin çıktısı: AH00534: apache2: Yapılandırma hatası: Birden fazla MPM yüklendi. 'Configtest' işlemi başarısız oldu. Apache hata günlüğünde daha fazla bilgi olabilir.
neobie

mükemmel :) benim için çalışıyor.
chirag jagani

"Apache dişli MPM çalıştırıyor, ancak PHP Modülünüzün iş parçacığı için güvenli olması için derlenmiyor. PHP'yi yeniden derlemeniz gerekiyor" hatası veriyor ve libapache2-mod-php5'i kaldırmak da yardımcı olmuyor.
iCyborg

2

Apache dişli bir MPM çalıştırıyor, ancak PHP Modülünüz iş parçacığı güvenliği için derlenmemiş. PHP'yi yeniden derlemeniz gerekir.


0

Bu komutları yürüttükten sonra bu hatayı alırsanız:

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

Libapache2 paketini kaldırmayı deneyin:

apt-get remove libapache2-mod-php7.0
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.