httpd-docs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Httpd Wiki] Update of "PHP-FPM" by msporleder
Date Wed, 26 Jun 2013 12:38:11 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Httpd Wiki" for change notification.

The "PHP-FPM" page has been changed by msporleder:
https://wiki.apache.org/httpd/PHP-FPM?action=diff&rev1=2&rev2=3

Comment:
add performance and pitfalls section.  remove some over-familiar tone

   IMPORTANT! __Read the above again__
   $1:: expands to the entire request-URI from the original request, minus the leading slash
(because we already added that above.)
  ----
- An example, you say ? Very well, have an
+ 
  ==== example ====
  Say you want to be able to conjure up the standard php info page listing all compiled-in
and loaded extensions, and all runtime configuration options and script info.
  
@@ -95, +95 @@

    
  This is a very simple example, mapping one unique URL to a single PHP file.
  
- Aha, I hear you say - so what about something that's actually useful ?
- 
  In case you want to proxy '''all''' `.php` files in your vhost to the fcgi server using
their real php file locations, you can use a more flexible match:
   `ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/$1`
  Again, assuming `/var/www` is the documentroot of the vhost in question.
  
  __Don't forget to reload apache after making any changes to a vhost or other configuration
file.__
+ 
+ ==== Performance and Pitfalls ====
+ mod_proxy_fcgi only supports network sockets ( [[https://issues.apache.org/bugzilla/show_bug.cgi?id=54101|Unix
socket support for mod_proxy_fcgi]] )
+ 
+ It is easy to overwhelm your system's available sockets, pass over ulimits, etc.  Some tips
to avoid this:
+ 
+ Using too many sockets will cause apache to give a `(99)Cannot assign requested address:`
error.  This means your operating system is not allowing new sockets to be created.
+ 
+ On linux you can use /proc/sys/net/ipv4/tcp_tw_reuse to not build up as many sockets, but
there are warnings associated with using this behind a NAT.
+ 
+ Be sure to modify ulimit and allow for enough open files and processes for both the apache
user and the php-fpm user.
+ `ulimit -n` and `ulimit -u`  (nofile and nproc)
+ 
+ If php-fpm does not have a large enough nproc it will exit (`code 255`, no additional information
as of php 5.3) in a loop without additional messages.
+ 
+ If php-fpm does not have a large enough nofile you will probably not be able to get logging
per child, as shown above.  It will give this in the general error log.
+ 
+ If apache and php-fpm run as the same user (not necessary or recommended) and nproc is too
small, apache will not startup with the following message `(11)Resource temporarily unavailable:
AH02162: setuid: unable to change to uid: 600`
  
  ==== Caveat ====
  One might be tempted to point out that a greedy ProxyPassMatch directive might allow some
malicious content uploaded by a HTTP client to be served.

---------------------------------------------------------------------
To unsubscribe, e-mail: docs-unsubscribe@httpd.apache.org
For additional commands, e-mail: docs-help@httpd.apache.org


Mime
View raw message