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 cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.