HOWTO: Contao (ehem. TypoLight) mit nginx und MySQL

Das folgende Howto wurde auf einem Server mit Debian Betriebsystem erstellt, solltest du also ein anderes Betriebssystem verwenden kann essein 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 dieSSH-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 Installationkann 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.






Proudly powered by Microsoft IIS, Visual Basic .NET and DHTML. NOT.
Copyright © MKzero 2013
License Info