Nginx & Ubuntu (+PHP-FPM)

NGINX ist ein sehr populärer Web-Server. Dafür gibt es einige Gründe:

  1. Leistung: NGINX ist bekannt für seine hohe Leistung und Skalierbarkeit, insbesondere im Vergleich zu anderen Web-Servern wie Apache.
  2. Stabilität: NGINX ist sehr stabil und robust, was bedeutet, dass es weniger anfällig für Ausfälle und Störungen ist.
  3. Anpassbarkeit: NGINX bietet eine Vielzahl von Modulen und Erweiterungen, die es Anwendern ermöglichen, den Server an ihre spezifischen Bedürfnisse anzupassen.
  4. Sicherheit: NGINX bietet eine Reihe von Sicherheitsfunktionen, wie z.B. SSL/TLS-Verschlüsselung, um die Übertragung sensibler Daten zu schützen.
  5. Ressourceneffizienz: NGINX ist ressourceneffizient und verwendet weniger Speicher und CPU-Ressourcen als andere Web-Server.

Ich mag Nginx auch, da es längst nicht so schwer zu konfigurieren ist wie Apache bzw. Apach2.

Nginx installieren

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nginx
sudo systemctl status nginx # läuft der Server?

Bei Erfolg sollte man folgende (oder ähnlich) Ausgabe sehen:

Man kann überprüfen, ob die Nginx-Landingpage auf http://localhost:80 in einem Webbrowser angezeigt wird.

PHP-FPM installieren

NGINX und PHP-FPM werden oft zusammen verwendet, weil sie eine leistungsstarke und skalierbare Lösung für die Ausführung von PHP-basierten Web-Anwendungen bieten.

sudo apt-get install php8.1-fpm
sudo systemctl status php8.1-fpm # läuft der PHP-Service?
sudo nano /etc/nginx/sites-available/default

Folgendes muss angepasst werden:

  • index.php zur Indexliste hinzufügen (Zeile 8)
  • Entkommentieren der Zeilen 17, 18, 21, 24, 28, 29 und 30

Die Datei sollte dann so aussehen (sofern wir noch von einer unveränderten Grund-Installation ausgehen.):

server {
  # Example PHP Nginx FPM config file
  listen 80 default_server;
  listen [::]:80 default_server;
  root /var/www/html;

  # Add index.php to setup Nginx, PHP & PHP-FPM config
  index index.php index.html index.htm index.nginx-debian.html;

  server_name _;

  location / {
    try_files $uri $uri/ =404;
  }

  # pass PHP scripts on Nginx to FastCGI (PHP-FPM) server
  location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # Nginx php-fpm sock config:
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    # Nginx php-cgi config :
    # Nginx PHP fastcgi_pass 127.0.0.1:9000;
  }

  # deny access to Apache .htaccess on Nginx with PHP, 
  # if Apache and Nginx document roots concur
  location ~ /\.ht {
    deny all;
  }
} # End of PHP FPM Nginx config example
sudo nginx -t # um die Änderungen an der Konfiguration zu testen
sudo systemctl restart nginx # Neustart des Servers

PHPINFO() aufrufen

sudo echo "<?php phpinfo(); ?>" >> /var/www/html/info.php

Unter http://<hostname>/info.php erreichen wir dann die bekannte Übersicht mit allen wichtigen Angaben.

Weitere nützliche Informationen zum Finetuning findet man unter https://techexpert.tips/nginx/nginx-php-installation-ubuntu-linux/, https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-20-04

Ein Gedanke zu „Nginx & Ubuntu (+PHP-FPM)

  1. Pingback: Stack: Ubuntu, Webmin, nginx, PostgreSQL, Samba, Symfony - 1manfactory.com - Blog of Jürgen Schulze

Kommentare sind geschlossen.