Raspberry Pi als Webserver
Ich zeige euch wie man den Raspberry Pi als Webserver einsetzen kann. Im letzten Artikel habe ich gezeigt wie man den Raspberry Pi mit Internet versorgt und ihn ans weltweite Netz anschließt. Der erste Einsatz ist als Webserver. Damit kann man günstig seine eigene Webseite hosten.
Raspberry Pi als Webserver
mein erstes Projekt ist den Raspberry als Webserver zu verwenden. Das erste Ziel sind folgende Dienste:
- Apache2 als Webserver
- PHP 5 als Skriptsprache
- MySQL als Datenbank
- FTP Server
Apache2
Apache ist schon seit mehreren Jahren der Standard Webserver im Internet. Obwohl immer mehr Hoster auf schnellere Dienste wie Nginx oder Lighttpd umsteigen bleibt der Apache wegen seiner Vielseitigkeit nach wie vor beliebte Alternative. Zuerst müssen wir sichergehen, dass es eine Benutzergruppe für den Webserver gibt:
sudo groupadd www-data sudo usermod -a -G www-data www-data
Normalerweise ist dies aber nicht notwendig.
Danach kann der Apache über den Paketmanager ganz einfach installiert werden:
sudo apt-get install apache2
Fertig. Die Eingabe von localhost im Browser am Raspberry Pi sollte zur Bestätigung noch eine Meldung ausgeben.
PHP 5
Php 5 kann auch ganz einfach über den Paketmanager installiert werden:
sudo apt-get install php5
Mehr ist hierfür eigentlich gar nicht notwendig. Für den Einsatz im Serverbereich kann man für PHP noch zahlreiche Pakete nachinstallieren:
sudo apt-get install libapache2-mod-php5 libapache2-mod-perl2 php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-imap php5-ldap php5-mhash php5-mysql php5-odbc
MySQL
MySQL ist quasi der Standard wenn es um Datenbanken für Webserver geht. Ich persönlich verwende lieber PostgreSQL.
apt-get install mysql-server
Während der Installation wird noch das root Passwort für die Datenbank abgefragt.
Um Probleme zu vermeiden sollte nun einmal neu gestartet werden. Ich wollte diesen Punkt übergehen und bekam ständig die Fehlermeldung: ‚paket mysql-server-5.5 ist noch nicht konfiguriert‘.
PHPMyAdmin
Wird folgendermaßen installiert:
apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
Im Dialog wählen wir hier Apache2 aus.
PhpMyAdmin benötigt selbst auch Tabellen in der Datenbank. In einem Dialog wird abgefragt, ob diese Tabellen angelegt werden dürfen. Das bestätigen wir mit ‚Yes‘ und geben das neue PhpMyAdmin Passwort ein.
FTP
Um unsere Programme am Server laufen zu lassen brauchen wir auch einen FTP Zugang. Dafür installieren wir ProFTP.
sudo apt-get install proftpd
Wir wählen bei der Installation den ‚Servermodus‚ aus.
Konfiguration
Für unseren FTP Server erstellen wir keine echten Unix User, sondern nur virtuelle. Dazu fügen wir in die Datei:
sudo nano /etc/proftpd/proftpd.conf
folgende Zeilen am Ende der Datei ein:
DefaultRoot ~ AuthOrder mod_auth_file.c mod_auth_unix.c AuthUserFile /etc/proftpd/ftpd.passwd AuthPAM off RequireValidShell off
Nun müssen wir nur noch einen virtuellen User erstellen (in diesem Fall mit Username hansi):
cd /etc/proftpd/ sudo ftpasswd --passwd --name hansi --uid 33 --gid 33 --home /var/www/ --shell /bin/false
Nun wirst du aufgefordert das Passwort für den FTP Benutzer einzugeben. Diese FTP Benutzer hat nun Lese- und Schreibrechte für das Wurzelverzeichnisses unseres Webservers.
Jetzt fehlen nur noch die korrekten Zugriffsrechte:
sudo chmod g+s /var/www sudo chmod 775 /var/www sudo chown -R www-data:www-data /var/www
Ein Neustart vom FTP Server noch, und wir können uns einloggen und Webseiten hochladen:
sudo /etc/init.d/proftpd restart
Fazit
In diesem sehr umfangreichen Artikel habe ich euch gezeigt wie man den Raspberry Pi als Webserver einsetzen kann. Die Installation und Konfiguration der notwendigen Software ist recht einfach. Der Raspberry Pi kann auch alleine als FTP Server verwendet werden, eine Anleitung dazu findet sich auch meinem Blog. Mit einem Webserver kann man Webapplikationen hosten. Beispiele dafür sind RaspControl oder Serposcope. Vor allem Applikationen die nicht sonderlich Ressourcenhungrig sind funktionieren am Raspberry Pi sehr gut.
Welche Webapplikation läuft bei euch?
Prima Tutorial, vielen Dank !
Vor der Konfiguration des FTP-Servers kam ich mit dem User und dem Passwort auf alle Verzeichnisse des Raspberry, hatte aber kein Schreibrecht auf dem Wurzelverzeichnis des Webservers
Nach der Konfiguration komme ich ich nur auf das Wurzelverzeichnis des Webservers und habe dort auch Schreibrechte, komme aber nicht mehr auf die anderen Verzeichnisse.
Ich kann mich auch nicht mehr wie oben einloggen.
Wie kann ich dies wieder ermöglichen ?
Hey,
ja es war auch der Sinn des neuen FTP Users, dass man nur noch auf das /var/www Verzeichnis Zugriff hat.
Mit dem User ‚pi‘ solltest du normal arbeiten können. Oder hast du vielleicht statt einen neuen User den Befehl ftpasswd für den Benutzer pi aufgerufen? Das wäre nicht gut, denn dort haben wir mit –shell /bin/false deaktiviert, dass der User eine Eingabeaufforderung bekommt.
Hallo,
habe noch einmal von vorne installiert und konfiguriert.
Nun läuft der FTP-Server wie gewünscht.
Danke !
Danke für die Tipps.
Aber noch einige Punkte, ohne die es sonst zu Fehlermeldungen kommt.
„Out of the box“ scheint die Maschine nicht sehr up to date zu sein.
Daher zuallererst:
sudo aptget update
sonst findet der z.B. keine PHP Pakete
Und bei der MySQL Installation muss ein sudo vor, also
sudo apt-get install mysql-server
ebenso bei phpMyAdmin
sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
Sonst scheint alles zu gehen
Jürgen
Hi,
ich bin richtig blutiger Anfänger und hab bis swudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin hat auch alles super geklappt. Nun bekomme ich dort aber die Fehlermeldung „E: Paket libapache2-mod-auth-mysql kann nicht gefunden werden.“
Woran liegt das? Kann ich das noch retten? 😉 Für Hilfe wäre ich dankbar!
Schöne Grüße
Hallo! das ist offenbar ein bekannter Fehler http://stackoverflow.com/questions/20458641/package-libapache2-mod-auth-mysql-is-not-available probiere einfach mal ohne dem libapache2-mod-auth-mysql weiter zu machen. Kommt dann noch ein Fehler?
Hi und Danek für die schnelle Hilfe!
Ich werde es mal probieren. Ist es normal, dass die Felder in dem folgenden Schritt leer sind? Ich werde es aber mal testen und berichten!
bei mir wird kein korrektes passwort in der oben genannten datei gezeigt????
Bei der Konfiguration von welchem Schritt suchst du ein Passwort?
Hallo,
Der Artikel ist ja schon einige Jahre alt. Ich bin gerade dabei einen Raspberry Pi zu kaufen. Ich möchte einen eigenen Webserver betreiben. Kann man das in dem Artikel beschrieben noch für aktuell ansehen oder hat sich da was geändert auf was man aufpassen sollte?
LG
Christoph
Ja, kann man so noch verwenden. Es sollte aber die aktuellste PHP Version installiert werden, also statt php5 nur php schreiben.