[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Removing web server dependencies from web apps

Thomas Goirand wrote:
> The issue is that most PHP packages in Debian have dependencies on web
> servers, most of the time with something like this:
> Depends: apache2 | httpd, libapache2-mod-php5 | php5-cgi

Leaving aside use cases, workarounds (ugly hacks, I would call them), etc...

I personally believe those dependencies are incorrect. In the past, when I 
had the chance, I often explained to the corresponding maintainer why they 
were incorrect and what they should have been.

Code written in PHP shouldn't depend on a webserver. What the code really 
needs is *being interpreted*, which is done by PHP, not by the web server.
The PHP interpreter (in one of the multiple available flavours) is the 
interface to the server. Unless a PHP webapp has a specific requirement, at 
no time it actually talks to the server directly.
N.b. there's a difference between "code written in PHP" and a "PHP webapp."

There could be an argument that webapps usually don't consist on only 
interpreted code, but on images, js, css, and other stuff that is delivered 
by the web server directly.  Following that reasoning, one could argue that 
that kind of webapp _does_ require a web server to be functional.

Additionally, PHP webapps should not depend on different SAPIs (i.e. 
apache2, cgi, fpm, etc.). They should depend on $BEST_SAPI | php5.
Where BEST_SAPI is usually libapache2-mod-php5 since it works out of the 
box, while most of the other SAPIs require or are intended for special 
The php5 (binary) package has an ORed dependency on all the web SAPIs, so it 
will do the trick for whatever SAPI the user chooses.

Raphael Geissert - Debian Developer
www.debian.org - get.debian.net

Reply to: