PHP - NGINX #3

Sep 3, 2021

Einleitung

PHP (Akronym für Hypertext Preprocessor) ist eine Programmiersprache für das dynamische anzeigen von Inhalt.
Um diese unter NGINX verwenden zu können, benötigt man das Paket php-fpm.

Installation

sudo apt-get install php-fpm

Wenn wir ebenso mit MySQL interagieren möchten, z.B. mit phpMyAdmin benötigen wir ebenso dieses Modul:

sudo apt-get install php-mysql

CHANGE LATER WENN LEON-ELIAS FERTIG HAT

Wie man MySQL unter Linux aufsetzt, zeig dir mein Kollege Leon hier.

Konfiguration

nano /etc/nginx/site-enabled/default

Diese Konfiguration müssen wir so anpassen, dass PHP Dateien interpretiert werden können. Hier muss folgendes hinzugefügt/editiert werden.

    index index.php index.html index.htm index.nginx-debian.html;

    server_name <deine Domain>;
    root /var/www/html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Hier wäre eine Beispielkonfiguration von mir:

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

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name robinschleser.de;

    root /var/www/html;

    index index.php index.html index.htm index.nginx-debian.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }

    ssl_certificate /etc/letsencrypt/live/robinschleser.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/robinschleser.de/privkey.pem;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

Sollte dies bearbeitet sein, testen wir schnell, ob es funktioniert hat mit:
nginx -t

Output:

root@blog:/etc/nginx/sites-enabled# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nun können wir NGINX das Signal geben, die Konfigurationen neu zu laden.
nginx -s reload

Testen

Wir haben PHP nun erfolgreich konfiguriert. Jedoch sollte man seine Ergebnisse immer testen.

Hierfür gehen wir zu cd /var/www/html und erstellen die Datei info.php.
nano info.php

Hier schreiben wir simples PHP:

<?php
    phpinfo();
?>

Wenn wir nun die Webseite (http(s)://deine_domain/info.php) aufrufen kommen wir auf jene Seite.
php

Glückwunsch

Du hast soeben PHP unter Linux und NGINX installiert und konfiguriert.
Jetzt kannst du dir jegliche Webprogramme wie phpMyAdmin oder Nextcloud ohne großen Aufwand installieren.


Danke für das Lesen dieses Artikels, ich hoffe er hat dir gefallen oder auch weiter geholfen.

In den kommenden Tagen wird ein Artikel zur Verwendung von NGINX als reverse Proxy kommen.



Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.