ApplikationMitNginx: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= Links =“) |
|||
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
* [[Kategorie:Tutorial]] | |||
* [[Kategorie:Serverapplikation]] | |||
= Links = | = 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: | |||
<pre> | |||
127.0.0.2 notes.test | |||
</pre> | |||
* '''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 = | |||
<syntaxhighlight lang="bash"> | |||
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 | |||
</syntaxhighlight> | |||
== 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 <code>systemctl reload nginx</code> wird die Konfiguration von NGINX eingelesen, ab da steht die Seite zur Verfügung. |
Aktuelle Version vom 10. Oktober 2023, 20:17 Uhr
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.