Apache Server – How to Enable Worker MPM on Ubuntu 14.04

14.04Apache2server

I have configured FastCGI and PHP5-FPM to work on ubuntu, Which is working fine.

But i installed "apache2 worker mpm" module and wanted to configure and replace "prefork mpm" which is default in apache2.

All i found was in CentOS at /etc/sysconfig/httpd just putting HTTPD=/usr/sbin/httpd.worker will make "worker mpm" enabled.

  1. How do we enable "worker mpm" in Ubuntu?

  2. Also when i list the compiled modules of apache "/usr/sbin/apachectl -l" it wont list "prefork.c" which said to be listing since we are using it by default. But when i do "/usr/sbin/apache2 -V | grep MPM" it shows "Server MPM: prefork" can some one explain this please?

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

Server MPM:     prefork

phpinfo();

Server API :    FPM/FastCGI

Best Answer

After some time of working i did it myself. You can find the steps below.

Check which MPM apache is currently running:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

List Available MPM Modules (Make sure mpm_worker is listed)

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

List Enabled MPM Modules (If mpm_worker is not enabled we should enable it and disable the mpm_prefork module)

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

Disable MPM_PREFORK module

a2dismod mpm_prefork

Enable MPM_WORKER module

a2enmod mpm_worker

To check if Apache is running on MPM WORKER

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

If you get this error after executing these commands:

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

Try to remove libapache2 package:

apt-get remove libapache2-mod-php5