Saya memutakhirkan ke Ubuntu Server 14.04 mengharapkan instalasi apache default akan menggunakan MPM acara baru, tetapi sebaliknya saya menemukan prefork pemakan memori lama.
Saya telah berhasil mengatur acara MPM di Arch Linux, tetapi saya gagal melakukannya di Ubuntu. Saya terus mendapatkan:
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP
Saya sudah menginstal php-fpm
, dan mengkonfigurasi apache2 untuk menggunakannya, tetapi karena file konfigurasi untuk apache2 berbeda di Ubuntu, saya tidak yakin apakah saya melakukannya di tempat yang tepat.
Adakah ide tentang cara membuat thread PHP aman sehingga saya dapat menggunakan apache2 event-mpm? (tanpa harus secara manual mengkompilasi ulang php, tentu saja)
sudo service apache2 restart
Ini berhasil untuk saya.
Pertama periksa apakah Anda memiliki paket ini diinstal:
Jika Anda memilikinya, hapus saja:
sumber
Anda dapat menginstal berbagai cara agar Apache berkomunikasi dengan PHP secara paralel. Mungkin Anda telah (masih) menginstal mod_php lama, juga fastcgi / php-fpm.
Anda dapat melihat modul mana yang telah dimuat oleh Apache Anda saat runtime
Jika perlu, gunakan
sudo
untuk mendapatkan hak akses root. Jika Anda melihat diphp5_module (shared)
antara modul-modul yang saat ini digunakan Apache Anda, mod_php lama masih terpasang dan memblokir Anda untuk menggunakanmpm_worker
ataumpm_event
.sumber
sudo a2dismod
lalu tekan karakter tab dua kali untuk melihat daftar jika mod yang dapat dinonaktifkan. Jika Anda melihatphp5
itu diable.Bagi saya mengikuti sepenuhnya bekerja pada debian:
a2dismod mpm_prefork && a2enmod mpm_event
aptitude remove libapache2-mod-php5
php_
Opsi dalam VHost Anda enkapsulasi<IfModule mod_php5.c></IfModule>
, jika tidak apache tidak akan dimulai ulangservice apache2 restart
sumber
Cari yang berikut ini di bagian Load Module dari file konfigurasi apache Anda:
Dan ganti dengan modul berikut:
sumber
a2dismod mpm_prefork && a2enmod mpm_event
. Kemudian restart apache Anda, dan Anda selesai.modul php5 membutuhkan prefork mpm, dan untuk menonaktifkan prefork, kita harus menonaktifkan php5.
di bawah debian, saya melakukan hal berikut, sebagai root:
nonaktifkan prefork mpm
aktifkan mpm acara, atau mpm apa pun yang Anda inginkan. perhatikan saya menemukan acara mpm tidak direkomendasikan untuk apache 2.2 atau sebelumnya
untuk menonaktifkan memuat modul php5, tetapi tanpa uninstall.
untuk menguji kebenaran keseluruhan dari konfigurasi apache yang dihasilkan. kesalahan perlu diatasi sesuai dengan jawaban dari @sulther di atas.
restart apache
jika php masih diperlukan, versi threadsafe harus diinstal. lihat: https://www.digitalocean.com/community/tutorials/how-to-configure-apache-http-with-mpm-event-and-php-fpm-on-freebsd-12-0-0
semoga berhasil
sumber