Chapter 18. PHP and httpd Configuration
Web server (httpd) and PHP configurations are often overlooked or trivialized. Many Drupal deployments make only small changes to the httpd or PHP configuration (raise your hand if your biggest change to php.ini has been to increase PHP’s memory limit), and otherwise blindly accept most default configuration values. This is sometimes with good reason: using a default httpd.conf file will work fine in some cases, and generally sites can perform pretty well with little to no tweaking of the httpd configuration. On the flip side, it is very possible for a default httpd configuration to grind your server to a halt should you experience a large traffic spike. Not only that, but there are configuration options that can help improve performance, sometimes drastically.
This chapter will focus mainly on changes that can be made to improve performance in PHP and Apache’s httpd daemon. We give Apache 2.2 more attention than other web servers because it is the most widely used web server; however, the chapter also contains a section on alternative web servers and PHP configurations (e.g., CGI versus running as an Apache module).
APC: PHP Opcode Cache
To understand what an opcode cache is and why it’s important, you first need to understand how PHP works server-side. When a PHP script is run on your web server, the PHP source file is read and then compiled into byte code before being executed. If you add an opcode cache, the intermediary executable code gets ...