Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Apache: Docs

[Httpd Wiki] Update of "PHP-FPM" by msporleder

 

 

Apache docs RSS feed   Index | Next | Previous | View Threaded


wikidiffs at apache

Jun 26, 2013, 5:38 AM

Post #1 of 1 (83 views)
Permalink
[Httpd Wiki] Update of "PHP-FPM" by msporleder

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 [at] httpd
For additional commands, e-mail: docs-help [at] httpd

Apache docs RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.