Im dritten Teil des Tutorials erzeugen wir die VHost-Konfiguration für den Apache. Ich achte dabei auf Security by obscurity indem ich beispielsweise die Version unseres Webservers nicht preisgebe. Zudem bekommt jeder VHost eine eigene Logdatei, die in der Standard-Konfiguration schnell zu einer großen Datei anwächst. Wir werden Access- und Error-Datei täglich automatisiert neu anlegen um dies zu vermeiden. Zur Übersicht bekommt jede Log-Datei das aktuelle Datum in umgekehrter Reihenfolge an den Dateinamen angehangen.
Wir wechseln zunächst in das Config-Verzeichnis indem sich die VHost-Dateien befinden (“vhost” bitte ersetzen):
# cd /etc/apache2/sites-available/
# mcedit vhost
Diese Datei bitte mit folgendem von dir abgeändertem Inhalt befüllen :
<VirtualHost *>
ServerAdmin info@example.com
ServerName example.com
ServerAlias www.example.com
ServerSignature Off
LogLevel warn
ErrorLog “|/usr/sbin/rotatelogs /var/www/vhost/log/error.%Y-%m-%d.log 86400″
CustomLog “|/usr/sbin/rotatelogs /var/www/vhost/log/access.%Y-%m-%d.log 86400″ common
DocumentRoot /var/www/vhost/web
DirectoryIndex Default.php Default.html Default.htm index.php index.html index.htm
#FCGI-Settings
PHP_Fix_Pathinfo_Enable 1
SuexecUserGroup vhost vhost
AddHandler fcgid-script .php
<Directory /var/www/vhost/web>
Options FollowSymLinks +ExecCGI
AllowOverride AuthConfig FileInfo
Order allow,deny
allow from all
#FCGID-PHP-Teil
FCGIWrapper /var/www/vhost/php-fcgi/php-fcgi-starter .php
</Directory>
</VirtualHost>
- Zu Beginn werden ein paar obligatorische Angaben gemacht.
- Wichtig ist die Domain über die der VHost erreichbar ist.
- “ServerSignature Off” verbietet die Anzeige der Webserver-Version (z.B. auf einer Fehlerseite).
- Mit “logLevel” wird eingestellt, ab welchem Nachrichten-Status gelogt werden soll (“error” wäre z.B. auch möglich, wenn man nicht schon Warnungen gelogt haben möchte).
- Danach folgen die zwei Zeilen für unser Logrotate. “86400″ steht für die Sekunden eines Tages.
- “DocumentRoot” ist der Pfad, der öffentlich über den Browser erreichbar ist, wenn er nicht durch eine .htaccess-Datei verboten wurde.
- Um die Startseite eines Verzeichnisses zu definieren, wird “DirectoryIndex” benutzt. Dort kann man eine Rangfolge angeben. Ich nutze grundsätzlich die “index.php” für meine Startseiten. Mit Default.php lässt sich allerdings immer noch eine Hinweis-Seite für den Fall der Fälle davor schalten.
- Es folgt eine Eigenschaft um die Superglobale $_SERVER['PATH_INFO'] in PHP korrekt zu setzen.
- Innerhalb der Directory-Tags muss dann noch der Pfad zum PHP-Wrapper gesetzt werden.
Datei nun mit F2 Speichern und MC verlassen. Nun aktivieren wir die Konfigurations-Datei für den VHost indem wir unter “sites-enabled” einen Link anlegen. Nun aktivieren wir die Seite mit (deaktivieren mit # a2dissite vhost):
# a2ensite vhost
Vielen Dank für diesen Befehl Daniel (Kommentar #1)
Wir starten den Apache neu um unsere Änderungen mit einem PHP-Skript zu testen:
# apache2 -k restart
PHP-Datei zum Testen anlegen:
# cd /var/www/vhost/web/
# mcedit info.php
Folgender Inhalt muss in die PHP-Datei:
<?php
phpinfo();
Die schließende PHP-Klammer am Ende Datei habe ich bewusst weggelassen, da die Datei bis zum Ende PHP-Code enthält – Programmierer sind Faul
Im nächsten Teil des Tutorials werden wir PHP mit dem eAccelerator und dem Zend Optimizer noch ein wenig Feuer unter dem Hintern machen.

2008/10/07