What the difference between the php5 module (libapache2-mod-php5) and the php5 filter module (libapache2-mod-php5filter) for apache2? Which one should I use in which environment?
libapache2-mod-php5filter doesn't pass all http request methods through to your PHP application - for example, PUT and OPTIONS requests are answered directly by Apache, rather than your PHP application.
I assume that it's limiting the methods that get processed by PHP as a security measure.
libapache2-mod-php5, on the other hand, passes all requests through for processing by PHP.
From https://launchpad.net/ubuntu/+source/php5/5.3.3-7ubuntu1, this message:
"Unless you specifically need filter-module support, you most likely should instead install libapache2-mod-php5"
For ease of deployment and configuration, use
It really is a lot easier, but causes higher memory usage (as PHP is loaded for each request)
For scalability, use
Because it runs a pool of PHP Listeners, then uses FastCGI protocol to communicate between Apache and the Pool of PHPs.
libapache2-mod-php5filter is used for internal apache php filters. I suppose you could run apps this way, but it's far from recommended as this is not its intention. mod-php5 on the other hand is a content module that generates content (from your php app) and that is what should be used.