NGINX Webserver aufsetzen
| Linux
Als Ausgangsbasis gehe ich von meinem neuen Raspberry Pi 4B aus, den ich mit dem neuen 64Bit Raspberry Pi OS installiert habe. (Die 64Bit am RPI sind ziemlich geil wegen den 8GB RAM die er hat!) Wir werden in diesem Post nur die Grundlegenden Dinge durchgehen, sodass der Webserver läuft. Details für einzelne CMS oder Datenbank aufsetzen wird hier nicht aufgelistet.
Im ersten Schritt installieren wir NGINX und PHP8.1 und verknüpfen die Zwei miteinander. Das erste und leichtere ist wir installieren nginx:
sudo apt update
sudo apt install nginx
Da die Standardbibliothek im RPI von PHP noch die Version 7.4 ist, müssen wir eine zusätzliche Repository Quelle angeben um die 8.1er herunterzuladen. Doch das hinzufügen der Quelle unterscheidet sich je Distribution daher splitte ich dies auf:
Ubuntu + Raspberry 32Bit
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
Debian + Raspberry 64Bit
sudo apt install apt-transport-https lsb-release ca-certificates wget -y
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg packages.sury.org/php/apt.gpg
echo "deb packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
Danach können wir PHP ganz bequem installieren.
sudo apt install php8.1-common php8.1-cli -y
Alle Pakete haben das selbe Muster, deshalb heißen die PHPErweiterungen z.B. so: php8.1-fpm, php8.1-gd, php8.1-mbstring
Nachdem wir nun NGINX und PHP installiert haben, müssen wir noch nginx konfigurieren. Dazu legen wir unter /etc/nginx/sites-available eine neue datei an und fügen folgendes ein:
server {
listen 80 default_server;
server_name<hostname>;
}
server {
listen 443;
root /var/www/html;
index index.html index.php;
server_name <hostname>;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_buffer_size 32k;
fastcgi_buffers 8 16k;
fastcgi_connect_timeout 240s;
fastcgi_read_timeout 240s;
fastcgi_send_timeout 240s;
# this is the PHP-FPM upstream - see also: www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/
#connecting-nginx-to-php-fpm
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}
Nun starten wir nginx einmal neu mit sudo service nginx restart und unsere Webseite ist erreichbar und PHP ist implementiert. Zum Abschluss integrieren wir noch ein Let's Encrypt Zertifikat und lassen unser Zertifikat automatisch erneuern. Dafür führen wir folgende Befehle aus:
sudo apt-get install certbot
sudo apt-get install python3-certbot-nginx
sudo certbot --nginx -d <hostname>
Mit diesen Befehlen haben wir certbot installiert und die Vorlage für nginx. Der letzte Befehl durchsucht im nginx Folder alle Seiten und implementiert automatisch das SSL Zertifikat. Für die Erneuerung fehlt nur noch ein Cronjob:
sudo crontab -e
0 12 * * * /usr/bin/certbot renew --quiet
Die zweite Zeile mit dem Cronjob einfach ans Ende des Files hängen und fertig. Nun haben wir einen voll funktionstüchtigen Server der bereit ist mit Inhalt zu befüllen. Sei es ein Wordpress oder Typo3 oder ein statisches HTML, der Kreativität sind keine Grenzen gesetzt!
OPTIONAL:
Composer installation
Composer ist ein Paketmanager zum Installieren von verschiedensten Paketen aus dem Netz und wird generell zur Installation von verschiedensten CMS verwendet (TYPO3/Laravel) daher hier eine kurze Beschreibung wie dieser global installiert wird:
sudo apt install wget php-cli php-zip unzip
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
HASH="$(wget -q -O - composer.github.io/installer.sig)"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
composer -v
Gib mir Feedback!
Hab ich Blödsinn geschrieben oder etwas vergessen? Dann zögere nicht weiter und lass es mich sofort wissen indem du hier einen Kommentar hinterlässt!