Nginx php Rocky: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 19: Zeile 19:
 
== NGINX-Konfiguration anpassen ==
 
== NGINX-Konfiguration anpassen ==
 
Unter Rocky Linux gibt es kein sites-available/sites-enabled-System. Eigene Konfigurationen kommen nach:
 
Unter Rocky Linux gibt es kein sites-available/sites-enabled-System. Eigene Konfigurationen kommen nach:
* /etc/nginx/conf.d/
+
/etc/nginx/conf.d/
  
 
Datei: /etc/nginx/conf.d/default.conf
 
Datei: /etc/nginx/conf.d/default.conf

Version vom 29. Mai 2026, 07:08 Uhr

NGINX Rocky Linux mit PHP-FPM betreiben

Diese Anleitung zeigt, wie man eine einfache PHP-Webanwendung mit NGINX und PHP-FPM unter Rocky Linux betreibt.

Voraussetzungen

  • Rocky Linux mit root-Rechten
  • Paketverwaltung via dnf
  • Standardwebverzeichnis: /var/www/html
  • PHP 8.2 als Beispiel

Installation

  • dnf install nginx php-fpm

PHP-FPM prüfen

  • systemctl status php-fpm

Die Socket-Datei für FastCGI-Kommunikation liegt standardmäßig hier:

/run/php-fpm/www.sock

NGINX-Konfiguration anpassen

Unter Rocky Linux gibt es kein sites-available/sites-enabled-System. Eigene Konfigurationen kommen nach:

/etc/nginx/conf.d/

Datei: /etc/nginx/conf.d/default.conf

server {
    listen 80;
    server_name localhost;
    root /var/www/html;
    index index.php index.html;

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

    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
  • nginx -t
  • systemctl reload nginx

Testseite anlegen

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

Dienste aktivieren und starten

  • systemctl enable --now php-fpm
  • systemctl enable --now nginx

SELinux

Rocky Linux läuft standardmäßig mit SELinux im Enforcing-Modus. Ohne Anpassungen blockiert SELinux den Zugriff von NGINX auf die PHP-FPM-Socket-Datei sowie auf das Webverzeichnis.

  • setsebool -P httpd_can_network_connect 1
  • restorecon -Rv /var/www/html
  • ls -Z /var/www/html/info.php

Erwarteter Kontext:

  • system_u:object_r:httpd_sys_content_t:s0

Kontext manuell setzen falls abweichend:

  • chcon -t httpd_sys_content_t /var/www/html/info.php

Firewalld

  • firewall-cmd --permanent --add-service=http
  • firewall-cmd --reload
  • firewall-cmd --list-all

Funktion prüfen

Hinweise

  • .htaccess-Dateien werden von NGINX nicht unterstützt – Rewrite-Regeln müssen direkt in der NGINX-Konfiguration erfolgen.
  • Unter Rocky Linux heißt der PHP-FPM-Dienst schlicht php-fpm, nicht php8.2-fpm.
  • Der Socket-Pfad ist /run/php-fpm/www.sock statt /var/run/php/php8.2-fpm.sock.
  • Bei TCP statt Socket lautet der fastcgi_pass: fastcgi_pass 127.0.0.1:9000; – dann muss das SELinux-Boolean httpd_can_network_connect gesetzt sein.