Apache MPMs and Prefork
Multi-Processing Modules (MPMs)
Multi-Processing Modules (MPMs) are responsible for binding to network ports on the machine, accepting requests, and dispatching children to handle the requests.
MPMs — These modules are only available with Apache 2.x. It is important to remember that only one of these modules can be enabled for Apache 2.0 and 2.2. MPMs allow you to fine-tune how resources are allocated when serving HTTP requests. EasyApache will automatically enable or disable Zend Thread Safe support in PHP, depending upon which MPM you select.
Prefork — This MPM is recommended by cPanel. It causes Apache to fork before requests are made.
Important: If you are using libphp4 or libphp5, you must select Prefork.
Event — Divides the task of serving a single HTTP request across multiple threads.
Worker — Apache forks several times to prevent a single crash from killing the entire Apache process, then each forked process creates numerous threads.
Once the server has been compiled, it is possible to determine which MPM was chosen by using ./httpd -l. This command will list every module that is compiled into the server, including the MPM.
Reference: http://httpd.apache.org/docs/2.0/mod/prefork.html
Cpanel Apache options related to PHP
Apache options that directly affect how PHP is served.
* CGI (mod_cgi) — This module is required for Apache to execute CGI scripts. Leave this option enabled. Disabling it will prevent mod_cgi from serving PHP pages.
* CGID (mod_cgid) — This module is only available for Apache 2.x and is required as a replacement for mod_cgi when using threaded MPMs. If you wish to use a threaded MPM, make sure this module is enabled.
* Mod FCGID — This module is only available with Apache 2.x and allows Apache to create and manage FastCGI server processes that remain in memory between HTTP requests. Because any binary capable of using the FastCGI protocol can be managed using this module, you can enable mod_fcgid independently of FastCGI support in PHP. This would, for instance, allow you to serve Ruby via FastCGI.
Referemce : FastCGI documentation - http://www.fastcgi.com/drupal/node/6
WHM News - The Apache security/version table
The News link at the top of the WHM screen provides up-to-date information about your server. The information is divided up into 3 sections:
This table shows selected Apache modules you have installed on your server.
The information is divided into 4 columns:
Module — The module to which the other information in the row pertains.
Apache Core — The Apache web server. For more information visit http://httpd.apache.org/.
mod_ssl — The module that provides SSL cryptography to the Apache web server. For more information visit http://www.modssl.org.
OpenSSL — A general purpose, open source, cryptographic library for SSL and TLS. Fore more information visit http://www.openssl.org.
Passthrough Authentication — Also seen as mod_auth_passthrough. A module that is installed with Apache to allow other programs to use their own authentication methods. cPanel uses it specifically to allow FrontPage® to use its own authentication system.
Bandwidth Limiter — Also seen as mod_bwlimited. The module that is installed with WHM and cPanel that allows you to limit your users’ bandwidth usage.
FrontPage® — The FrontPage extensions that are installed with WHM and cPanel.
Latest Version — The newest version of the corresponding module that is available.
Installed Version — The version of the module that is currently installed on your server.
Status — Shows whether or not the corresponding module is considered secure.
Reference: http://cpanel.net
Cpanel Apache build Summary
When Apache is rebuilt using EasyApache, the current configuration is processed and stored. After the build process is complete, the new Apache configuration file is processed to yield a new template and add any missing configuration values.
Finally, the previous data stores and the new template are used to generate the completed Apache configuration file.
Reference: http://cpanel.net
Processing the cPanel Apache Configuration
Processing Apache’s configuration file is completed in 2 routines.
1. The first routine attempts to extract VirtualHost domain information and combine it will other cPanel data, in effect creating “user data.” This information is used in mapping domains to user accounts. This particular task is carried out by the userdata_update utility (/usr/local/cpanel/bin/userdata_update).
If you wish to make custom alterations you would need to run /usr/local/cpanel/bin/userdata_update –update.
2. The second routine attempts to pull out the remaining information within each VirtualHost entry. Some of this information is version-specific and requires the Apache directive-aware tool /usr/local/cpanel/bin/apache_conf_distiller. This is the same tool that processes Apache’s main directives and generates the main Apache template.
Reference: http://cpanel.net/