Iplik güvenli PHP ile Ubuntu 14.04 üzerinde olay MPM Apache 2.4 nasıl etkinleştirilir?

21

Ubuntu Sunucusu 14.04'e yükseltildim, varsayılan apache kurulumunun yeni etkinlik MPM'sini kullanmasını bekledim, ancak bunun yerine eski bellek yiyen prefork'u buldum.

Arch Linux'ta etkinlik MPM'yi başarıyla kurdum, ancak Ubuntu'da bunu yapamıyorum. Devam ediyorum:

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

Zaten php-fpm yükledim ve bunu kullanmak için apache2'yi yapılandırdım, fakat apache2'nin yapılandırma dosyaları Ubuntu'da farklı olduğundan, doğru yerde yapıp yapmadığımı pek emin değilim.

PHP iş parçacığı güvenli hale getirmek için herhangi bir fikir, bu yüzden apache2 olayı-mpm kullanabilirim? (php'yi elle yeniden derlemeden, tabii ki)

    
sordu Towerman 23.04.2014 07:32

5 cevap

33

event MPM 'yi devre dışı bırakmak için sudo a2dismod mpm_event yapabilir ve prefork öğesini etkinleştirmek için bundan sonra sudo a2enmod mpm_prefork yapmalısınız.

Son olarak apache'yi yeniden başlatın:

sudo service apache2 restart
    
verilen cevap Mehraban 16.05.2016 10:55
12

Bu benim için çalıştı.

İlk önce bu paketin kurulu olup olmadığını kontrol edin:

dpkg -l | grep libapache2-mod-php5

Eğer varsa, onu kaldırın:

apt-get remove libapache2-mod-php5
    
verilen cevap Carlos Mafla 03.12.2015 03:24
6

Apache'nin PHP ile paralel olarak iletişim kurması için birden fazla yol kurabilirsiniz. Belki de (hala) eski mod_php yüklü, ek olarak fastcgi / php-fpm.

Apache'nizin çalışma zamanında hangi modüllere yüklendiğini görebilirsiniz

apache2ctl -M

Gerekirse, root ayrıcalıklarını almak için sudo kullanın. Apache'nizin şu anda kullandığı modüller arasında php5_module (shared) görüyorsanız, eski mod_php hala yüklenir ve mpm_worker veya mpm_event 'i kullanarak sizi engeller.

    
verilen cevap Henning Kockerbeck 25.05.2014 16:50
1

Apache yapılandırma dosyanızın Yük Modülleri bölümlerinde aşağıdakini arayın:

LoadModule mpm_event_module modules/mod_mpm_event.so

Ve aşağıdaki modülle değiştirin:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
    
verilen cevap Ajsti.pl - Maciej Szewczyk 16.05.2016 10:57
0

Benim için debian üzerinde tamamen çalıştıktan sonra:

  1. Prefork'u devre dışı bırak, etkinliği etkinleştir: a2dismod mpm_prefork && a2enmod mpm_event
  2. mod-php5'i kaldır: aptitude remove libapache2-mod-php5
  3. VHost şifrelerinizde php_ oranında <IfModule mod_php5.c></IfModule> seçeneğiniz olduğunu unutmayın, aksi halde apache yeniden başlatılamayacaktır
  4. service apache2 restart yap
verilen cevap suther 10.10.2017 12:29

Etiketlerdeki diğer soruları oku