Die Installation von OSCommerce ist erstaunlich unkompliziert, auch
wenn keinerlei Pakete im DEB- oder RPM- Format angeboten werden. Unter
einem beliebigen LAMP- oder WAMP- System kopiert man einfach die Dateien
im Verzeichnis catalog in htdocs, ruft im Browser
http://localhost/catalog/install/index.php auf, klickt sich durch
ein paar Konfigurationsseiten und hat sofort ein zwar zunächst
noch recht unsicheres, aber komplett funktionierendes Shopsystem zu
laufen.

Weitere Screenshots von der
Installation von OsCommerce.
OSCommerce macht auf Probleme in der Konfiguration aufmerksam,
beispielsweise wenn die Konfigurationsdatei noch beschreibbar ist.
Natürlich können damit nicht alle potentiellen Risiken und
Fehlkonfigurationen abgefangen werden, aber der Einsteiger erhält
genügend Hinweise, zumindest die grundlegendsten Sciherheitsprobleme zu
beseitigen.
Geradezu zwangsläufig stellt sich dabei die Frage, warum man bei
anderen skriptbasierten Systemen manchmal tagelang basteln muss, bevor
man auch nur Bruckstücke einer Funktionalität sieht. Vielleicht ist das
einfach der Unterschied zwischen gefixten Bastellösungen und einem
ausgereiften Produkt -- wie OSCommerce.
Übrigens: Voraussetzung für die Installation von OsCommerce ist ein
Shell- oder Root- Account:

Weitere Screenshots von der
Installation von OsCommerce.
Die hier genannten Zugriffsberechtigungen (chmod 706)
können zu folgender Fehlermeldung führen:
Fatal error: Failed opening required
'includes/configure.php' (include_path='.:/usr/share/pear') in
/var/www/catalog/includes/application_top.php on line 29
Stattdessen kann man die Zugriffsrechte setzen mittels chmod
777, das behebt zwar den Fehler, führt jedoch auf der OsCommerce-
Site zu dem Warnhinweis:
Warnung: osC kann in die Konfigurationsdatei schreiben:
/var/www/catalog/includes/configure.php. Das stellt ein mögliches
Sicherheitsrisiko dar - bitte korrigieren Sie die
Benutzerberechtigungen zu dieser Datei!
(? Fixen?)
Wir nutzen ein
Debian
GNU/Linux in der Variante
Testing (»Sarge«) mit Apache 2. Für Debian existiert kein natives
Paket im
DEB-
Format; OsCommerce kann daher natürlich auch nicht über
apt-get installiert oder über die Mechanismen der
Debian-Paketverwaltung aktualisiert werden.
Der Apache 2 ist unter Debian aus mir unverständlichen Gründen
vollkommen hirntot vorkonfiguriert; beispielsweise sind die Dateitypen
für PHP-Dateien nicht korrekt eingestellt und werden per default nicht
ausgeführt. Das führt standardmässig zu folgendem Fehlverhalten:
Aufruf von http://deb/catalog/:

Aufruf von http://deb/catalog/install/index.php:

Das ist vollkommen unsinnig, da das PHP4- Modul in der
httpd.conf aktiviert ist, warum werden dann die Dateitypen nicht
gleich mit unterstützt?
Mit ein wenig Handarbeit kann man hier nachhelfen:
Sicherheitshalber noch einmal /usr/sbin/apacheconfig
manuell aufrufen; das sollte zwar das Skript bei
Konfigurationsänderungen am Apache automatisch machen, aber sicher ist
sicher.
Für den alten Apache 1.x in den Konfigurationsdateien
/etc/apache/httpd.conf bzw. /etc/apache-ssl/httpd.conf
überprüfen, was was der Apache mit Dateien machen soll, die auf
.php enden. Dazu gibt es bereits die nötigen Direktiven, die jedoch
möglicherweise noch mit einem "#" auskommentiert sind:
AddType application/x-httpd-php .php.
Bei Apache 2 heisst die entsprechende Konfigurationsdatei
/etc/apache2/apache2.conf.
Damit beim Aufrufen einer Domain oder eines Unterverzeichnisses auch
php- Dateien als Indexseite geladen werden können (z.B. index.php),
sollte diese noch der DirectoryIndex Direktive hinzugefügt werden:
DirectoryIndex index.html index.htm index.php
Danach die httpd.conf speichern und den Apache mit
apachectl restart neu starten.
Um zu testen, ob auch alles einwandfrei funktioniert, kann die Datei
/var/www/phpinfo.php mit folgendem Inhalt angelegt werden:
<?php phpinfo(); ?>
Beim Apache 2 dürfte das Server- Rootverzeichnis allerdings
/var/www/apache2-default sein.
Ruft man das Skript auf (http://localhost/phpinfo.php),
dann bekommt man jede Menge Informationen zu PHP und zum Webserver
angezeigt. Klappt das nicht, läuft vermutlich der falsche Webserver,
beispielsweise der alte Apache, oder man hat die falschen
Konfigurationsdateien editiert
500 Internal Server Error
The server encountered an internal error or misconfiguration and was
unable to complete your request.
Please contact the server administrator, webmaster@deb.kefk.local and
inform them of the time the error occurred, and anything you might have
done that may have caused the error.
More information about this error may be available in the server error
log.
Apache/1.3.26 Server at deb.kefk.local Port 443

deb:~# tail /var/log/apache/error.log
[Sun Oct 12 00:53:55 2003] [crit] [client 192.168.101.169]
configuration error: couldn't perform authentication. AuthType not set!:
/catalog/create_account.php