Apache & mod_php? • What is php-fpm? What does it look like? • How does it help Apache be better? • What kind of extra features are in php-fpm? • What is "Opcode caching"? • What is Nginix? • But not exactly - How do I set it up?
All $VARIABLEs are taken from the current environment. ; Default Value: clean env env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp
• Wordpress is big • Drupal is big • 100+ php scripts need to be compiled per requests • php's compiler is still FREAKY FAST • But still, that's a lot of compiling
built into PHP 5.5 • APC ◦ LOTS of years of production use. ◦ Additional software ◦ APC can also act like a generic cache much like mcached...but that's a whole other talk
OS's package manager Can use a .php script to see statistics LOTS of blog posts on helping configure with your setup http://www.electrictoolbox.com/apc-php-cache-information/
server Now we get to ask the questions: • Do we need or even use what it offers? • Can we squeeze out more performance with something else? • Is there something easier to configure?
speed May take less memory (so more for php and mysql) Supports fastcgi natively Allows precise control with a simpler syntax Is not Apache -- so no .htaccess files Still "new" compared to Apache's maturity, but this doesn't mean experimental
^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php. ini fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params;
• route all non-matching requests through an index.php script (Wordpress, Drupal, etc) • block access to config files, etc. • configure extra modules to add functionality