Raspberry Pi als Webserver einsetzen: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
(Die Seite wurde neu angelegt: „Der Bastelrechner Raspberry Pi wurde u.a. konzipiert und Kindern das Erlernen des Programmierens anhand kleiner Projekte zu lehren. Er erfreut sich auch bei Ba…“)
 
K
 
(21 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Der Bastelrechner Raspberry Pi wurde u.a. konzipiert und Kindern das Erlernen des Programmierens anhand kleiner Projekte zu lehren. Er erfreut sich auch bei Bastlern großer Beliebtheit, wird als Entwicklungssystem, als Retro-Spielkonsole oder Mediacenter eingesetzt und hielt auch im Smarthome-Bereich Einzug.
+
Der Bastelrechner Raspberry Pi wurde u.a. konzipiert, um Kindern das Erlernen des Programmierens anhand kleiner Projekte zu lehren. Er erfreut sich auch bei Bastlern großer Beliebtheit, wird als Entwicklungssystem, als Retro-Spielkonsole oder Mediacenter eingesetzt und hielt auch im Smarthome-Bereich Einzug.
  
Auch zur Entwicklung oder dem (heimischen) Betrieb von Homepage-Projekten kann der "RasPi" gut Dienste leisten. nginx kann auch mit [[PHP]] und [[MySQL]] (MariaDB) umgehen, so dass wir auch Web-Projekte wie [https://www.mediawiki.de Wikis], [[CMS]]- oder Blog-Software (z.B. [https://www.wordpress.org/de Wordpress] oder Cloud-Software (z.B. [https://www.owncloud.de Owncloud] betreiben können.
+
Auch zur Entwicklung oder dem (heimischen) Betrieb von Homepage-Projekten kann der "RasPi" gut Dienste leisten. Für die Auslieferung von Webseiten wird mindestens ein Webserver benötigt. Neben Apache erlangt die Open Source Software '''[https://www.nginx.org nginx]''' immer mehr Bedeutung. Der Resourcen schonende '''nginx''' kann auch mit [[PHP]] und [[MySQL]] (MariaDB) umgehen, so dass wir auch Web-Projekte wie [http://www.mediawiki.de Wikis], [[CMS]]- oder Blog-Software (z.B. [https://de.wordpress.org/ Wordpress] oder Cloud-Software (z.B. [https://www.owncloud.de Owncloud] betreiben können.
  
Im Folgenden möchten wir erklären, wie man den leichtgewichtigen Webserver [https://www.nginx.org nginx] auf einem Raspberry Pi unter [[Rasbian]] installieren und betreiben kann.
+
Im Folgenden möchten wir erklären, wie man den leichtgewichtigen Webserver '''nginx''' auf einem Raspberry Pi unter [[Rasbian]] installieren und betreiben kann.
  
 
Die Kurzfassung:
 
Die Kurzfassung:
  
=NGinx installieren=
+
=nginx installieren=
 +
Wer einen Webserver auf einem Raspberry Pi nutzen möchte, kann verschiedene Software ausprobieren. Z.B. Apache Webserver, Lighttpd oder nginx. Jeder der eben genannten Webserver kann mit PHP umgehen und kann mit einem Datenbanksystem wie MySQL zusammenarbeiten. Wir haben uns für den leichtgewichtigen, schnellen Webserver nginx entschieden.
 +
 
 
  sudo apt-get update
 
  sudo apt-get update
 
  sudo apt-get install nginx
 
  sudo apt-get install nginx
Zeile 23: Zeile 25:
  
 
=MySQL (MariaDB) installieren=
 
=MySQL (MariaDB) installieren=
  sudo apt-get install mysql-server
+
  sudo apt-get install mariadb-server mariadb-client
 +
 
 +
==MariaDB-Server starten==
 +
sudo systemctl start mariadb
 +
 
 +
==MariaDB Autostart==
 +
sudo systemctl enable mariadb
  
==Sicherheits-Setup durchführen==
+
==MariaDB konfigurieren==
 +
Die Datenbank-Installation sichern wir mit einem Passwort.
 
  sudo mysql_secure_installation
 
  sudo mysql_secure_installation
  
=PHP 7.0 installieren=
+
=PHP 7.4 deinstallieren=
  sudo apt-get install php7.0 php7-fpm
+
sudo apt purge '^php7.4.*'
  
==PHP.ini anpassen==
+
=PHP installieren=
sudo nano /etc/php/7.0/fpm/php.ini
+
  sudo apt install php8.0-common php8.0-fpm php8.0-mysql php8.0-cli
Zeile <code>#cgi.fix_pathinfo=1</code> finden und ändern zu <code>cgi.fix_pathinfo=0</code> <br>
 
...und anschließend PHP neu starten.
 
sudo systemctl restart php7.0-fpm
 
  
 
=nginx für Nutzung von PHP konfigurieren=
 
=nginx für Nutzung von PHP konfigurieren=
 
  sudo nano /etc/nginx/sites-available/default
 
  sudo nano /etc/nginx/sites-available/default
<code=ini>
+
<syntaxhighlight lang="text">  
 
server {
 
server {
 
     listen 80 default_server;
 
     listen 80 default_server;
 
     listen [::]:80 default_server;
 
     listen [::]:80 default_server;
  
     root /var/www/html;
+
    #Wurzel-Verzeichnis für HTML-Dokumente festlegen!
 +
     root /var/www;
  
 +
    #Akzeptierte HTML-Dokumenttypen
 
     index index.php index.html index.htm index.nginx-debian.html;
 
     index index.php index.html index.htm index.nginx-debian.html;
  
 +
    #Server-IP
 
     server_name [your public IP];
 
     server_name [your public IP];
  
Zeile 56: Zeile 65:
 
     location ~ \.php$ {
 
     location ~ \.php$ {
 
         include snippets/fastcgi-php.conf;
 
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php7.0-fpm.sock;
+
         fastcgi_pass unix:/var/run/php8.0-fpm.sock;
 
     }
 
     }
  
Zeile 62: Zeile 71:
 
         deny all;
 
         deny all;
 
     }
 
     }
}</code=ini>
+
}
 +
</syntaxhighlight>
  
 
=nginx Konfiguration testen=
 
=nginx Konfiguration testen=
Zeile 75: Zeile 85:
 
=Nginx für phpMyAdmin konfigurieren=
 
=Nginx für phpMyAdmin konfigurieren=
 
Symlink für die Verbindung anlegen:
 
Symlink für die Verbindung anlegen:
  sudo ln -s /usr/share/phpmyadmin /var/www/html
+
  sudo ln -s /usr/share/phpmyadmin /var/www
  
 
=phpMyAdmin absichern=
 
=phpMyAdmin absichern=
 
Symlink umbenennen:
 
Symlink umbenennen:
 
  sudo mv phpmyadmin NichtsZuSehen
 
  sudo mv phpmyadmin NichtsZuSehen
 +
 +
=phpMyAdmin Anmeldung klappt nicht=
 +
Access denied for user 'root'@'localhost' (using password: YES)
 +
*[[Kein Zugang für phpMyAdmin für Benutzer root|Kein Zugang zu phpMyAdmin für Benutzer root]]
  
 
=Quellen=
 
=Quellen=

Aktuelle Version vom 27. März 2024, 13:35 Uhr

Der Bastelrechner Raspberry Pi wurde u.a. konzipiert, um Kindern das Erlernen des Programmierens anhand kleiner Projekte zu lehren. Er erfreut sich auch bei Bastlern großer Beliebtheit, wird als Entwicklungssystem, als Retro-Spielkonsole oder Mediacenter eingesetzt und hielt auch im Smarthome-Bereich Einzug.

Auch zur Entwicklung oder dem (heimischen) Betrieb von Homepage-Projekten kann der "RasPi" gut Dienste leisten. Für die Auslieferung von Webseiten wird mindestens ein Webserver benötigt. Neben Apache erlangt die Open Source Software nginx immer mehr Bedeutung. Der Resourcen schonende nginx kann auch mit PHP und MySQL (MariaDB) umgehen, so dass wir auch Web-Projekte wie Wikis, CMS- oder Blog-Software (z.B. Wordpress oder Cloud-Software (z.B. Owncloud betreiben können.

Im Folgenden möchten wir erklären, wie man den leichtgewichtigen Webserver nginx auf einem Raspberry Pi unter Rasbian installieren und betreiben kann.

Die Kurzfassung:

nginx installieren

Wer einen Webserver auf einem Raspberry Pi nutzen möchte, kann verschiedene Software ausprobieren. Z.B. Apache Webserver, Lighttpd oder nginx. Jeder der eben genannten Webserver kann mit PHP umgehen und kann mit einem Datenbanksystem wie MySQL zusammenarbeiten. Wir haben uns für den leichtgewichtigen, schnellen Webserver nginx entschieden.

sudo apt-get update
sudo apt-get install nginx

Benutzer- und Dateirechte auf dem System einstellen

Benutzergruppe anlegen

sudo groupadd www-data

Benutzer des Servers hinzufügen

sudo usermod -a -G www-data www-data

Dateirechte einstellen

sudo chown -R www-data:www-data /var/www

MySQL (MariaDB) installieren

sudo apt-get install mariadb-server mariadb-client

MariaDB-Server starten

sudo systemctl start mariadb

MariaDB Autostart

sudo systemctl enable mariadb

MariaDB konfigurieren

Die Datenbank-Installation sichern wir mit einem Passwort.

sudo mysql_secure_installation

PHP 7.4 deinstallieren

sudo apt purge '^php7.4.*'

PHP installieren

 sudo apt install php8.0-common php8.0-fpm php8.0-mysql php8.0-cli

nginx für Nutzung von PHP konfigurieren

sudo nano /etc/nginx/sites-available/default
 
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    #Wurzel-Verzeichnis für HTML-Dokumente festlegen!
    root /var/www;

    #Akzeptierte HTML-Dokumenttypen
    index index.php index.html index.htm index.nginx-debian.html;

    #Server-IP 
    server_name [your public IP];

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

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

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

nginx Konfiguration testen

sudo nginx -t
sudo systemctl reload nginx

phpMyAdmin installieren

sudo apt-get install phpmyadmin
  • Bei der Abfrage nach dem eingesetzten Server (Apache oder lighttpd) nichts ankreuzen und bestätigen
  • Datenbankpasswort eingeben

Nginx für phpMyAdmin konfigurieren

Symlink für die Verbindung anlegen:

sudo ln -s /usr/share/phpmyadmin /var/www

phpMyAdmin absichern

Symlink umbenennen:

sudo mv phpmyadmin NichtsZuSehen

phpMyAdmin Anmeldung klappt nicht

Access denied for user 'root'@'localhost' (using password: YES)

Quellen