Da meine Zahlreichen Blogs immer größer werden und auch die Besucherzahlen steigen, musste ich mich nach Alternativen umsehen und bin so auf Nginx gestoßen. Nginx ist ein quelloffener Hochleistungs-HTTP-Server der für seine Stabilität und geringen Ressourcenverbrauch bekannt ist.

Dies machte sich bereits nach der Umstellung massiv bemerkbar. Die Auslastung der Server ging insgesamt um fast 60% zurück. Es hat sich also bereits gelohnt.
Die Installation ist recht simpel und möchte ich euch in diesem kleinen Tutorial beschreiben.

Wir bringen unseren Server erst mal auf den neusten Stand.

aptitude update
aptitude full-upgrade

Da PHP7.1 nicht in den offiziellen Quellen vorhanden ist, laden wir uns die entsprechenden erst mal. Dazu führen wir folgende Befehle aus und fügen packages.sury.org als Quellserver hinzu.

aptitude install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
aptitude update

Wenn dies fehlerfrei durchgelaufen ist, installieren wir nginx, php7.1-fpm und MariaDB

aptitude install nginx mariadb-server mariadb-client php7.1-cli php7.1-curl php7.1-dev php7.1-zip php7.1-fpm php7.1-gd php7.1-xml php7.1-mysql php7.1-mcrypt php7.1-mbstring php7.1-opcache -y

Das war es auch schon mit der eigentlichen Installation. Der Webserver sollte nun bereits laufen.
Anders als bei Apache, gibt es für Nginx kein fertiges PHP-Modul da der Webserver zu sehr auf Leistung ausgelegt ist. Wir können aber über den Webserver PHP im Hintergrund als Hilfsprozess ausführen lassen.

Konfiguration von nginx unf PHP7.1-FPM

Wir machen nun dem Webserver klar das er PHP7.1-FPM nutzen soll. Wie beim Apache gibt es auch hier Konfigurationsdateien. In der Datei /etc/nginx/nginx.conf können allgemeine Einstellungen vorgenommen werden, ähnlich wie beim Apache. Auch können wie für jede Seite eine eigene Datei anlegen. Darauf gehen wir nun ein.

Lege eine Datei namens example im Ordner /etc/nginx/sites-available/ ab.
Diese füllen wir mit folgendem Inhalt wobei wir auch gleich PHP mit einbinden. Ersetze bitte example.de durch deine Domain.

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	# SSL configuration
	#
	# listen 443 ssl default_server;
	# listen [::]:443 ssl default_server;
	#
	# Self signed certs generated by the ssl-cert package
	# Don't use them in a production server!
	#
	# include snippets/snakeoil.conf;

	root /var/www/;

	# Add index.php to the list if you are using PHP
	index index.html index.htm index.nginx-debian.html;

	server_name www.example.de example.de;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
	}

	location ~ \.php$ {
		try_files $uri =404;
		include fastcgi_params;
		fastcgi_pass unix:/run/php/php7.1-fpm.sock;
		fastcgi_split_path_info ^(.+\.php)(.*)$;
		fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
	}  
}

Im letzten Block, location haben wir PHP-FP eingebunden. Zum Schluss erstellen wir noch einen Link im site_enable Verzeichnis

ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example

Die ganze Konfiguration können wir mit

nginx -t

testen. Wenn keine Fehler aufgetaucht sind, starten wir nginx und php-fpm neu.

service nginx restart
service php7.1-fpm restart

Bei Fehlern oder Unklarheiten, benutzt bitte die Kommentarfunktion. Wir starten nun nginx und PHP neu. Wer doch lieber auf Apache setzen will, findet auf meinem Blog ebenfalls ein Tutorial

Quelle: https://www.fragz.de