Das folgende Howto wurde auf einem Server mit Debian Betriebsystem erstellt, solltest du also ein anderes Betriebssystem verwenden kann es sein das sich einige Pfade unterscheiden oder du einige Pakete selbst kompilieren musst.
Um alle Vorraussetzungen zu erfüllen benötigen wir zu aller erst den Web- und den MySQL-Server. Dafür gibt man folgende Zeilen in die SSH-Konsole ein:
aptitude install mysql-server mysql-client
Jetzt haben wir den MySQL-Server. Für ngnix benögte man noch vor ca. einem Jahr noch eine Änderung an der Paketverwaltung, mittlerweile ist dies jedoch überflüssig, da nginx genauso wie der Apache in die offiziellen Reposerverlisten mit aufgenommen wurde.
Zum installieren von nginx reicht also:
aptitude install nginx
Jetzt fehlt uns natürlich noch der Skriptinterpreter PHP. Diesen, und natürlich die zusätzlichen Module, installieren wir mit
aptitude install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear \
php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming \
php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Zuguterletzt braucht unsere nginx Konfigurationsdatei noch einige Anpassungen, um mit PHP zu laufen und Features wie URL-Rewriting zu ermöglichen. Ich persönlich bevorzuge, unter dem Pfad "/etc/nginx/sites-enabled/" für jeden vHost eine eigene Konfigurationsdatei anzulegen, damit man bei mehreren nicht den Überblick verliert.
In unserem Beispiel würden wir als mit
nano /etc/nginx/sites-enabled/example.com.conf
und dem folgenden Inhalt:
server {
server_name www.example.com;
access_log /var/www/www.example.com/log/nginx.access.log;
error_log /var/www/www.example.com/log/nginx_error.log error;
location / {
root /var/www/www.example.com/htdocs;
index index.php index.html index.htm;
if (-f $request_filename) {
expires 30d;
break;
}
if (!-e $request_filename) {
rewrite ^(.*)\.html$ /index.php ;
expires 7d;
}
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/www.example.com/htdocs$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
server {
server_name example.com;
rewrite ^(.*)$ http://www.example.com$1 permanent;
}
sowie einem restart von nginx über
/etc/init.d/nginx restart
der Seite example.com Platz auf unserem Server geben, welcher mit PHP genutzt werden kann( ausgelöst durch den "location \~ .php\$ { } " Abschnitt) und ein URL-Rewriting für alle nicht existierenden Dateien auf die index.php macht.
Jetzt muss nur noch Contao in das Webroot-Verzeichnis /var/www/www.example.com/htdocs/ entpackt werden und die Installation kann beginnen.
Wer übrigens mehrere Domains mit seinem Contao verwalten möchte, kann das ganze mit der Änderung des Servernamen machen:
server_name www.example.com www.example.de;
Es werden also alle Domains hintereinander weg geschrieben und der Rest wird durch die Backendfunktionen von Contao gemacht.