Apache cho phép worker mpm


10

Tôi đã cấu hình FastCGI và PHP5-FPM để hoạt động trên Ubuntu, hoạt động tốt.

Nhưng tôi đã cài đặt mô-đun "apache2 worker mpm" và muốn cấu hình và thay thế "prefork mpm" được mặc định trong apache2.

Tất cả những gì tôi tìm thấy là ở CentOS /etc/sysconfig/httpdchỉ cần đặt HTTPD=/usr/sbin/httpd.workersẽ làm cho "worker mpm" được bật.

  1. Làm cách nào để chúng tôi kích hoạt "worker mpm" trong Ubuntu?

  2. Ngoài ra khi tôi liệt kê các mô-đun đã biên dịch của apache, "/usr/sbin/apachectl -l"nó sẽ không liệt kê danh sách "prefork.c"được liệt kê vì chúng tôi đang sử dụng nó theo mặc định. Nhưng khi tôi làm "/usr/sbin/apache2 -V | grep MPM"nó hiển thị "Máy chủ MPM: prefork" ai đó có thể giải thích điều này không?

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

Server MPM:     prefork

phpinfo ();

Server API :    FPM/FastCGI

Câu trả lời:


29

Sau một thời gian làm việc tôi đã tự làm điều đó. Bạn có thể tìm thấy các bước dưới đây.

Kiểm tra apache MPM nào đang chạy:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

Liệt kê các mô-đun MPM có sẵn (Đảm bảo mpm_worker được liệt kê)

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

Liệt kê các Mô-đun MPM được bật (Nếu mpm_worker không được bật, chúng tôi nên bật nó và vô hiệu hóa mô-đun 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

Vô hiệu hóa mô-đun MPM_PREFORK

a2dismod mpm_prefork

Kích hoạt mô-đun MPM_WORKER

a2enmod mpm_worker

Để kiểm tra xem Apache có chạy trên MPM WORKER không

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

Nếu bạn gặp lỗi này sau khi thực hiện các lệnh này:

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

Cố gắng loại bỏ gói libapache2:

apt-get remove libapache2-mod-php5

2
Làm theo hướng dẫn nhưng nhận được điều này: * Khởi động lại máy chủ web apache2 [fail] * Apache2 configtest không thành công. Đầu ra của kiểm tra cấu hình là: AH00534: apache2: Lỗi cấu hình: Đã tải nhiều hơn một MPM. Hành động 'configtest' không thành công. Nhật ký lỗi Apache có thể có thêm thông tin.
— neobie 29/07/2015

hoàn hảo :) nó làm việc cho tôi
— chirag jagani

Nó đang báo lỗi "Apache đang chạy MPM luồng, nhưng Mô-đun PHP của bạn không được biên dịch thành luồng an toàn. Bạn cần biên dịch lại PHP" và loại bỏ libapache2-mod-php5 cũng không giúp được gì.
— iCyborg

2

Apache đang chạy MPM theo luồng, nhưng Mô-đun PHP của bạn không được biên dịch thành luồng an toàn. Bạn cần biên dịch lại PHP.


0

Nếu bạn gặp lỗi này sau khi thực hiện các lệnh này:

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

Cố gắng loại bỏ gói libapache2:

apt-get remove libapache2-mod-php7.0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.