Wollt auch Ihr Eurer eigener Herr über einen Server sein? Scheut Euch aber einen dedizierten Root-Server zu mieten? Die Lösung sind kleine vServer, die Euch vollen Admin Zugriff erlauben. Ihr seid euer Herr.
Hat man ein „Low powered“ VPS mit wenig CPU & RAM, muss man genau hinschauen was man installiert. Eine Möglichkeit Ressourcen zu sparen ist, anstatt dem weit verbreiteten Indianer (Apache) auf den schlanken Nginx Webserver zu setzten.
Hier ein kleinen HowTo, wie Ihr Euren VPS mit Nginx & PHP einrichtet.
Als erstes sollte man die „Dotdeb“ Quellen zu seinem System hinzufügen.Hierzu bearbeitet man die Sources von apt (/etc/apt/sources.list)
nano /etc/apt/sources.list
und fügt am Ende einfach diese Zeilen ein:
# DotDeb deb http://packages.dotdeb.org wheezy all deb-src http://packages.dotdeb.org wheezy all
Um die Paketquellen nutzen zu können, müsst ihr den „Repository-Key“ noch hinzufügen, indem ihr folgende schritte ausführt:
wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg | apt-key add -
Der nächste Schritt ist optional. Ihr könnt dem System eine höhere Priorität für die DetDeb Paketquellen geben, müsst dies aber nicht. Einfach diese Datei anlegen „/etc/apt/preferences.d/dotdeb“
nano /etc/apt/preferences.d/dotdeb
folgenden Inhalt einfügen:
Package: * Pin: release o=packages.dotdeb.org Pin-Priority: 990
Um zu checken, aus welchem Repository nun die Pakete installiert werden einfach folgenden Befehl ausführen.
apt-cache policy nginx
Jetzt geht’s erst richtig los
Mit dem folgenden Befehl installiert Ihr Nginx & PHP
apt-get install nginx php5 php5-fpm php-pear php5-common php5-mcrypt php5-mysql php5-cli php5-gd
Jetzt schnell noch ein Root Verzeichnis für den Webserver anlegen
mkdir /var/www
Seit Nginx 1.4 werden die Seiten ähnlich wie bei Apache im Ordner /etc/nginx/sites-enables konfiguriert. Hier sollten Symlinks zu files im Verzeichnis /etc/nginx/sites-available erzeugt werden.
nano /etc/nginx/sites-available/server2.tschoerner.eu
und folgenden Inhalt einfügen:
server { listen 80; # Der zu lauschende Port server_name server2.tschoerner.eu; # Der Name für den virtuellen Host root /var/www; # Der zu verwendende Ordner location / { index index.php index.html; # Zuerst versuchen, bei einem / Aufruf die index.php zu laden, alternativ die index.html } location ~* \.php$ { # Ermöglicht die Verarbeitung von php Dateien try_files $uri /index.php; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } autoindex on; # Funktion, ob der Verzeichnisinhalt angezeigt werden soll, wenn keine index.php oder index.html existiert }
Jetzt besagten Symlink erzeugen:
ln -s /etc/nginx/sites-available/server2.tschoerner.eu /etc/nginx/sites-enabled/server2.tschoerner.e rm -rf /etc/nginx/sites-enabled/default
Und fertig … Neginx neu starten
service nginx restart
Legt nun eine Datei (phpinfo.php) in /var/www an und ruft diese im Browser auf.
Wenn Ihr jetzt einen Fehler bekommt „502 Bad Gateway“, dann müsst Ihr noch folgende Zeile in der Datei (/etc/php5/fpm/pool.d/www.conf) ändern:
#ALT listen = /var/run/php5-fpm.sock #Zu: listen = 127.0.0.1:9000
PHP durchstarten und fertig 🙂
/etc/init.d/php5-fpm restart
Alles zu Thema MySQL blogge ich demnächst.
Natürlich könnt Ihr auch hier die bereits geboggten Performance Enhancements eines PHP Caches nutzen.