Apache! De sterke fundering van elke webserver. Natuurlijk moet deze goed geconfigureerd worden om veiligheid, stabiliteit en snelheid te verzekeren, zonder op flexibiliteit te besparen. Hier leggen we uit hoe we Apache gaan configureren. mephisto wordt normaal de webserver, maar de 512MB RAM die deze bezit is nogal aan de magere kant om al de verschillende webtech en databanken te laten draaien. Misschien eens kijken of we geen RAM uit cartman kunnen halen en in Mephisto steken.
SSL zouden we moeten proberen in gang krijgen zodat we met wat meer veiligheid gebruik kunnen maken van onze Zeus accounts over het WWW, bijvoorbeeld om in te loggen in de site, de wiki, …
PHP moet er natuurlijk zijn. Het probleem met PHP is veiligheid. We hebben basically 2 mogelijkheden: of we gebruiken mod_php, of CGI/FastCGI.
Mod_php heeft het voordeel dat er een persistent proces is die niet bij elke request moet herstart worden, maar als nadeel dat deze PHP instantie runt als dezelfde gebruiker als Apache (www-data), en dus toegang heeft tot iedereen zijn bestanden. Een veiligheidsmeasure is open_basedir gebruiken, die geconfigureerd kan worden zodat het voor elke gebruiker gaat checken of het php-bestand wel in de bijhorende user-dir staat.
Een andere oplossing is misschien suPHP, die module start php-scripts met de permissions van de eigenaar van het script. http://www.suphp.org/
http://blog.stuartherbert.com/php/2007/11/27/phps-built-in-solutions-for-shared-hosting/
CGI kan gecombineerd worden met suExec om zo elk php-proces als de gebruiker bij wie de site behoort uit te voeren. Hierdoor kan dit php-proces enkel aan de bestanden die tot die gebruiker behoren. Nadeel is dat voor elk request een nieuw php-proces wordt uitgevoerd. Dit wordt gedeeltelijk opgelost als gebruik wordt gemaakt van FastCGI, maar dan nog moet voor elke gebruiker apart een php-proces runnen. HTTP auth werkt ook niet met CGI.
http://blog.stuartherbert.com/php/2007/12/18/using-suexec-to-secure-a-shared-server/
We willen onze gebruiker natuurlijk de mogelijkheid bieden om ook php6 te gebruiken. Je kan echter met mod_php niet 2 verschillende PHP's instellen. Eén ervan zal dus wel moéten runnen als CGI/FastCGI.
Ziet er op het eerste gezicht niet echt een probleem uit: http://www.howtoforge.com/ruby_on_rails_debian_etch