ApplikationMitNginx
Zur Navigation springen
Zur Suche springen
Links
Zielsetzung
Dieses Tutorial dient dazu, die lokale Web-Applikation Notes (genauer eine Laravel-Applikation) für den NGINX-Webserver zu konfigurieren.
Laravel-spezifisch ist das DocumentRoot-Verzeichnis DOMAIN/public.
Kenndaten
- Domäne: notes.test (lokal)
- Hinweis: Um die Domäne ohne Probleme im Firefox mit http statt https aufrufen zu können, muss die Domäne mit .test enden.
- Verzeichnis mit dem PHP-Quelltext der Applikation: /home/ws/php/notes
Einrichten der Domäne (lokal)
Eintrag in die Datei /etc/hosts:
127.0.0.2 notes.test
- Hinweis; statt 127.0.0.2 kann auch statt 2 jede andere Zahl zwischen 1 und 255 genommen werden, z.B. 127.0.0.137
Einrichten der NGINX-Konfiguration
DOMAIN=notes.test
ROOT_DIR=/home/ws/php/notes
PHP_VERS=8.2
cd /etc/nginx/sites-available
cat >$DOMAIN <<EOS
server {
listen 80;
listen [::]:80;
server_name $DOMAIN;
root $ROOT_DIR/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
location / {
try_files \$uri \$uri/ /index.php?\$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php\$ {
fastcgi_pass unix:/var/run/php/php$PHP_VERS-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
EOS
cd /etc/nginx/sites-enabled
ln -s ../sites-available/$DOMAIN .
systemctl reload nginx
Erklärungen
- Für jede Applikation wird im Verzeichnis /etc/nginx/sites-available eine Konfigurationsdatei angelegt, die den Namen der Domäne hat.
- Im Verzeichnis /etc/nginx/sites-enabled wird ein symbolischer Link auf diese Konfigurationsdatei angelegt.
- Mit
systemctl reload nginx
wird die Konfiguration von NGINX eingelesen, ab da steht die Seite zur Verfügung.