XaraX: Self-O-Shop

Beitrag lesen

Hallo Pierre,

nehmen wir mal den weitverbreitesten Web-Server, den apachen, zur Basis unseres O-Shops. Günstig ist es immer den Server so schmal wie möglich zu halten und nach Möglichkeiten auch selbst zu kompilieren. Warum steht hier.
 Den apachen gibt es derzeit in zwei grundlegenden Versionen: 2.0.52 und 1.3.33. Der wesentliche Unterschied zwischen den beiden besteht in der frei wählbaren Handhabungen von Threads vs. Kindprozessen in der Version 2.x zu einem Prefroken in Prozessen in Version 1.x.

Da wir ja einen überaus populären O-Shop mit genialen Produkten haben werden, werden wir PHP als Modul einbinden. In der Ausgabe von ./configue --help der PHP-Sourcen heißt es dazu:

--with-apxs2[=FILE]  EXPERIMENTAL: Build shared Apache 2.0 module. FILE is the optional pathname to the Apache apxs tool; defaults to apxs.

Persönlich arbeite ich seit einem halben Jahr mit PHP 5.0.x und apache 2.0.x und konnte noch keine Probleme feststellen. Aber solang es noch als experimentell bezeichnet wird, sollten wir lieber die Hände davon lassen. Daher gehe ich mal vom apachen 1.3.x aus.
 Der apache bringt insgesamt 43 Module mit, die wir nie im Leben brauchen werden. Ein Modul brauchen wir neben PHP noch zusätzlich mod_ssl. Aber schauen wir uns mal an, welche module der apache ohne weitere Angaben mitbringt:

http_core.c
  mod_env.c
  mod_log_config.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_asis.c
  mod_imap.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_access.c
  mod_auth.c
  mod_setenvif.c

Neben PHP halte ich folgende Module für ausreichend:

http_core.c
     Um core kommen wir nun mal nicht herum ;)

mod_access.c
     Man sollte sich die Möglichkeit offen lassen IP-Adressen
     auszusperren, wenn von ihnen Gefahren (DoS) ausgehen.

mod_auth.c
     Ein Web, insbesondere ein O-Shop ist immer eine Baustell,
     die natürlich auch abgesperrt werden will ;)

mod_dir.c
     Da wir mit PHP arbeiten, wollen wir natürlich auch Da-
     tein, wie "index.php" als Verzeichnis haben.

mod_expires.c
     Dieses Modul werden wir einsetzen, um statische Inhalte
     nur einmalig servieren zu müssen.

mod_headers.c
     Dieses Modul werden wir einsetzen, um statische Inhalte
     nur einmalig servieren zu müssen.

mod_log_config.c
     (Nicht wirklich benötigt, aber interessant ;)

mod_mime.c
     Wird benötigt für Content Negatiation.

mod_negotiation.c
     Das macht den Inhalt felxibler nach den Browsereinstel-
     lungen des Accept.

mod_rewrite.c
     Dieses Modul bevorzuge ich gegenüber mod_alias.

mod_so.c
     Versorgt den Server mit der Fähigkeit Module zu akzep-
     tieren. (Genaugenommen aber auch entbehrlich.)

mod_ssl.c
     Sorgt für Verschlüsselung sensibler Daten.

Ob man diese Statisch einkompiliert oder nicht, ist Geschmackssache, persönlich baue ich essentielle Module immer statisch ein.

Gruß aus Berlin!
eddi