• Blog
  • Raspberry Pi
  • Über mich
  • Projekte
  • devowl.io

Raspberry Pi: Webserver Nginx installieren

08. August 2012
Raspberry Pi
114 Kommentare

Auf dem kleinen Wunderwerk, alias Raspberry Pi, läuft auch ein Webserver. Ich probierte den klassischen Apache 2 aus, wobei die Performance für mich nicht zufriedenstellend war. Somit entschied ich mich den Nginx Webserver zu installieren, welcher wesentlich runder läuft. Im Folgenden beschreibe ich, wie ihr diesen auf eurem Raspberry Pi installiert und einrichtet. Möchte man Ngnix mit Ruby on Rails installieren, so muss man erst bei Step 9 beginnen!

Voraussetzung: Raspbian oder vergleichbare Distribution installiert

Step 1

Die Installation geht dank dem Paketmanager APT denkbar einfach.

sudo apt-get install nginx

Step 2

Nun passen wir noch ein paar Werte bzgl. max. Prozesse an, so dass Nginx den Raspberry Pi nicht überlastet.

sudo sed -i "s/worker_processes 4;/worker_processes 1;/g" /etc/nginx/nginx.conf
sudo sed -i "s/worker_connections 768;/worker_connections 128;/g" /etc/nginx/nginx.conf

Step 3

Jetzt noch Ngix starten, damit er auch einen Nutzen hat 😉

sudo /etc/init.d/nginx start

Und das war’s schon. Fertig ist der Nginx installiert. Nun kann PHP (ich empfehle php5-fpm zu verwenden) und eine MySQL Datenbank wie unter jedem gewöhnlichen Debian Server nachinstalliert werden. Ebenfalls ist es möglich (siehe weiter unten) Ruby on Rails zu installieren.

PHP installieren

Step 4

Zuerst installieren wir PHP mit ein paar Standard-Erweiterungen mittels des Paketmanagers APT.

sudo apt-get install php5 php5-fpm php-pear php5-common php5-mcrypt php5-mysql php5-cli php5-gd

Step 5

Nun müssen wir PHP in nginx aktivieren. Dies machen wir, indem wir mittels eines Editors die folgende, erste Passage durch die zweite ersetzten. In nano speichert man mittels STRG + X und darauffolgend Y.

sudo nano /etc/nginx/sites-available/default

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#	fastcgi_split_path_info ^(.+\.php)(/.+)$;
#	# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
#	# With php5-cgi alone:
#	fastcgi_pass 127.0.0.1:9000;
#	# With php5-fpm:
#	fastcgi_pass unix:/var/run/php5-fpm.sock;
#	fastcgi_index index.php;
#	include fastcgi.conf;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#	deny all;
#}
# pass the PHP scripts to PHP-FPM server listening on unix socket
location ~ \.php$ {
	try_files $uri =404;
	fastcgi_split_path_info ^(.+\.php)(/.+)$;
	fastcgi_pass unix:/var/run/php5-fpm.sock;
	fastcgi_index index.php;
	include fastcgi.conf;
}

# deny access to .htaccess files
location ~ /\.ht {
	deny all;
}
Step 7

Damit die index.php direkt geladen wird, müssen wir in derselben Datei wie in Step 3 wieder die erste durch die zweite, folgende Passage ersetzten.

sudo nano /etc/nginx/sites-available/default

index index.html index.htm;

ersetzen durch

index index.html index.htm index.php;

Step 8

Jetzt müssen wir nginx und PHP starten.

sudo /etc/init.d/nginx restart
sudo /etc/init.d/php5-fpm restart

Nun läuft nginx mit PHP auf unserem Raspberry Pi. An dieser Stelle möchte ich noch darauf hinweisen das der Raspberry Pi bekanntlicherweise nicht der Leistungsstärkste ist und daher große Systeme, trotz des schlanken Webservers nginx, wie WordPress nur bedingt gut laufen werden.

Wie man Ruby on Rails zu Nginx installiert erkläre ich im Folgenden:

Ruby on Rails installieren

Step 9

Zunächst muss wir Ruby und Rails an sich installieren. Wie das geht erkläre ich im Tutorial Ruby on Rails installieren.

Step 10

Nun müssen wir noch ein paar benötigte Pakete installieren.

sudo apt-get install libcurl3-gnutls-dev libcurl3-openssl-dev

Step 11

Um die weiteren Schnitte ausführen zu können benötigen wir etwas mehr RAM als der Raspberry Pi bietet. Daher müssen wir unseren SWAP auf mind. 512 MB erweiteten. Wie das geht habe ich Artikel SWAP erweitern erklärt.

Step 12

Jetzt installieren wir das passenger-Modul für nginx, welches das benötigte Rack-Interface bereitstellt.

gem install passenger

Step 13

Mittels folgendem Befehl können wir nun das Installatios-Interface des passenger-Moduls für nginx starten. In diesem müssen wir zunächst mittels Enter einem Systemcheck zustimmen, daraufhin wählen wir Variante 1, wodurch wir nginx gleich korrekt kompilieren lassen. Alle weiteren Eingabeaufforderungen können wir mittels Enter bestätigen. Da nginx nun kompiliert wird dauert dies ein wenig (bei mir waren es ca. 50 min.).

rvmsudo passenger-install-nginx-module

Step 14

Nun müssen wir noch ein Startscript für nginx anlegen und dieses in den Autostart legen. Der Einfachheit halber könnt ihr dieses von meinem Server herunterladen.

wget https://jankarres.de/wp-content/uploads/2013/06/ngnix-startscript.gz
gunzip ngnix-startscript.gz
sudo mv ngnix-startscript /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo /usr/sbin/update-rc.d -f nginx defaults

Step 13

Zuletzt müssen wir nginx noch neustarten.

/etc/init.d/nginx restart

Nun läuft auch Nginx mit Ruby on Rails. Entsprechend wünsche ich gutes Coden 😉

Zugriff außerhalb des eigenen Netzwerks
Portfreigabe im Router

Soll der soeben installierte Dienst auch außerhalb des eigenen Netzwerkes verfügbar sein, so müssen folgende Ports im Router freigegeben werden. Wie man freigibt, beschrieb ich in dem Artikel Portforwarding bei Fritz!Box und Speedport.

80
443 (wenn SSL verwendet wird)
Quellen: Ruby on Rails Jalogisch.de, Startscript Ruby on Rails von Linode.com

114 Kommentare. Hinterlasse eine Antwort

  • Raspberry Pi: Web Control Centre Raspcontrol installieren » Jan Karres
    Mai 17, 2013 11:51 am

    […] Jetzt installieren wir noch einen Webserver. Ich empfehle hier ngnix auf Grund dessen, dass dieser Webserver ressourcensparend ist. Wie man diesen installiert, beschrieb ich in meinem Tutorial Raspberry Pi: Webserver Nginx installieren […]

    Antworten
  • Jan Karres
    Juni 15, 2013 9:15 pm

    Dieser Beitrag wurde am 15. Juni überarbeitet.

    Antworten
    • Dominic
      November 16, 2015 8:57 pm

      Hallo Jan,

      Vielen Dank für dieses und all die anderen tutorials. Leider scheiterts bei mir an Schritt 10. Und ich weiß nicht ganz, was ich mit dieser Fehlermeldung anfangen soll.

      Reading package lists… Done
      Building dependency tree
      Reading state information… Done
      Some packages could not be installed. This may mean that you have
      requested an impossible situation or if you are using the unstable
      distribution that some required packages have not yet been created
      or been moved out of Incoming.
      The following information may help to resolve the situation:

      The following packages have unmet dependencies:
      libcurl4-gnutls-dev : Conflicts: libcurl4-openssl-dev but 7.38.0-4+deb8u2 is to be installed
      libcurl4-openssl-dev : Conflicts: libcurl4-gnutls-dev but 7.38.0-4+deb8u2 is to be installed
      E: Unable to correct problems, you have held broken packages.

      Vielleicht kannst du mir sagen, was das zu bedeuten hat? Danke und viele Grüße!

      Antworten
    • Christian S
      Oktober 27, 2016 1:21 am

      Hallo Jan,

      Vielen Dank für die vielen Anleitungen, die haben schon mächtig geholfen…!! Trotzdem bin ich definitiv noch Newbee auf dem RasPi und habe sicherlich irgendeinen blöden Fehler gemacht. Folgende Situation:
      – nginx installiert (Step 3), alles wunderbar.
      – PHP installiert bis in Step 8 beim restart von nginx folgende Fehlermeldung kam:

      Reloading nginx configuration: nginx: [emerg] open() „/etc/nginx/fastcgi.conf“ failed (2: No such file or directory) in /etc/nginx/sites-enabled/default:66
      nginx: configuration file /etc/nginx/nginx.conf test failed

      Ich habe daraufhin beides nochmals deinstalliert und neu installiert (allerdings ist offensichtlich die „…sites-available/default“ Datei nicht ersetzt worden. Die Fehlermeldung ist ebenfalls geblieben…

      Hast Du eine Idee?
      Danke!
      Christian

      Antworten
      • Andreas
        Oktober 23, 2018 12:59 pm

        Da ich hier beim überfliegen nichts gesehen habe was den Fehler korrigiert, hier mal meine Lösung: mit „sudo nano /etc/nginx/fastcgi.conf“ die beanstandete Datei geöffnet und einfach ein „#“ eingefügt, Datei gespeichert, alles wieder gut 😉
        Ich vermute das hat die Datei überhaupt erst angelegt, sicher bin ich mir da aber nicht, da ich vorher nicht überprüft hatte ob sie existiert.

        Ich weiss, das kommt reichlich spät, aber ab und zu nutzt vllt noch jemand das Tutorial, so wie ich auch immer wieder mal das ein oder andere hier nutze.

        Danke für die vielen tollen Anleitungen,

        Gruß,
        Andreas

        Antworten
    • David
      Januar 8, 2017 1:47 pm

      Hallo Jan,

      hoffentlich liest du hier noch drüber .
      Ich bin blutiger Anfänger doch das Tut ging bis Punkt 7 locker durch.

      Hier wusste ich nicht welche Zeilen genau zu verändern waren da bei mir zwei sehr ähnliche vorkamen. Bei der einen stand allerdings noch mehr dabei mit nginx.html aber ohne php.

      Ich habe dann beide wie hier beschrieben verändert.

      sudo nano /etc/nginx/sites-available/default

      1
      index index.html index.htm;
      ersetzen durch

      1
      index index.html index.htm index.php;

      Bei Punkt 8 bekomme ich dann folgende Fehlermeldung:

      David@raspberry_cloud:~ $ sudo /etc/init.d/nginx restart
      [….] Restarting nginx (via systemctl): nginx.serviceJob for nginx.service failed. See ’systemctl status nginx.service‘ and ‚journalctl -xn‘ for details.
      failed!
      David@raspberry_cloud:~ $ sudo /etc/init.d/php5-fpm restart
      [ ok ] Restarting php5-fpm (via systemctl): php5-fpm.service.
      David@raspberry_cloud:~ $

      Kannst du mir weiterhelfen ?

      Gruß David

      Antworten
  • Jan Karres
    Juni 29, 2013 12:55 pm

    Und am 29. Juni wurde er erneut überarbeitet.

    Antworten
  • Ulv
    Juli 3, 2013 8:31 pm

    Hallo Jan, kannst Du bitte unter Step 5.) deutlich(er) machen, welches genau die erste und welches die zweite Passage sein soll?! Danke.
    P.S. Wo ist eigentlich Step 6.)? 🙂

    Antworten
    • Ice
      August 1, 2015 1:28 pm

      Hallo, ich hätte ebenfalls dieselbe Frage. Kannst du den punkt deutlicher beschreiben, denn ich bekomme es nicht zu laufen 🙁

      Antworten
      • Stefan
        November 12, 2015 10:22 am

        Hab bei Step 5 auch so meine Probleme, welche Passage wird durch welche ersetzt?

        Antworten
  • Henry
    August 13, 2013 5:16 pm

    Hey Jan, wäere cool wenn du noch beschreiben könntest wie mann einen SVN-Server mit ngnix zum laufen bringt =)
    Gruß Henry

    Antworten
    • Jan Karres
      August 13, 2013 8:04 pm

      SVN ich zwar net so wissend, da ich zu den Freunden von Git gehöre, aber ich habs mal auf die Todo-Liste geschrieben 🙂

      Antworten
  • Darian
    Dezember 4, 2013 11:49 am

    pi@raspberrypi ~ $ sudo apt-get install nginx
    sudo: apt-get install: command not found

    ????????

    damit ist der anfang ja schon mal klasse

    Antworten
    • Jan Karres
      Dezember 4, 2013 6:29 pm

      Unter Raspbian oder vergleichbaren Distribution? Falls ja, hast du dein System vorab schon mal irgendwie zerschossen 😀

      Antworten
  • Marcus Moeller
    Dezember 16, 2013 1:38 pm

    Mit sed -i kannst du Dateien direkt inline bearbeiten. Dann kannst du dir den Umweg sparen.

    Antworten
    • Jan Karres
      Dezember 17, 2013 7:42 pm

      Dankend vernommen und verbessert (ich sollte mehr Doku lesen ;))

      Antworten
  • Markus
    Dezember 19, 2013 3:55 am

    Danke für die Anleitung. Aber mir fehlen Erklärungen, warum so viele PHP-Module statt nur fpm. Belegen die anderen nicht umsonst Speicher?

    Antworten
    • Jan Karres
      Dezember 19, 2013 7:08 pm

      Könnte man natürlich weglassen, jedoch sind dies Bibliotheken, die von vielen PHP Scripten benutzt werden und daher meist als Standard vorausgesetzt werden. Daher installiere ich sie in diesem Tutorial gleich mit.

      Antworten
  • Raspberry Pi: Kamera Stream Broadcast realisieren » Jan Karres
    Dezember 24, 2013 4:00 pm

    […] zunächst den Webserver nginx. Wie man dies bewerkstelligt erklärte ich bereits in der Anleitung Webserver Nginx installieren (bis einschließlich Step 3 zu bearbeiten). Step […]

    Antworten
  • Raspberry Pi: Owncloud Server installieren » Jan Karres
    Dezember 31, 2013 12:03 am

    […] mit PHP (genauer php5-fpm) auf dem Raspberry Pi. Wie dies funktioniert, habe ich in meinem Beitrag Webserver Nginx installieren erklärt. Wir setzten bewusst auf Nginx anstatt auf Apache2, da dieser Webserver wesentlich weniger […]

    Antworten
  • webRMS 0.1 bei Github veröffentlicht + Installationsanleitung | Tim Dau
    Januar 15, 2014 10:37 am

    […] https://jankarres.de/2012/08/raspberry-pi-webserver-nginx-installieren/ […]

    Antworten
  • Birger
    Januar 22, 2014 1:16 pm

    Hallo Jan,

    wie bekomme ich den Webserver und die PHP-Anwendungen in einen Autostart-Mechanismus? Muss die Dienste immer manuell starten.

    Bin noch ein Newbie..

    Hab noch eine andere Frage an dich, die hier allerdings nicht so ins Thema passt:

    Habe gestern zum testen folgendes Kommando eingegeben: sudo chmod 777 /media/Boxes (glaub ich)

    Seitdem sehe ich die externe Festplatte des Raspberrys nicht mehr in der grafischen Umgebung des Raspbian OS. Kann das an dem Kommando gelegen haben?

    Nur Owncloud und BittorrentSync sollen eigentlich auf die Platte schreiben.

    Über eine Antwort würde ich mich sehr freuen.

    P.S.: Die Installationen des Webservers sowie die von Owncloud haben nach deiner Antwort hervorragend geklappt. Nur die Verbindung von Owncloud mit BittorrentSync (Die du ja auch nicht beschreibst) bekomme ich als Linux-Newbie noch nicht so richtig hin. Die Verbindung soll auf der externen Platte stattfinden. BittorrentSync erstellt dabei nur Sicherheitskopien meiner Bilder und mit Owncloud wollte ich sie verwalten.

    Antworten
    • Jan Karres
      Januar 26, 2014 9:41 pm

      Zu Chmod: Nein, sollte nicht daran liegen können.

      Zu PHP: Solle automatisch im Autostart sein. Wenn nicht kannst dus mittels folgenden Kommandos in den Autostart legen.

      sudo update-rc.d mysql defaults

      Gegenfrage: Wieso ein Backup mit Bittorrent Sync machen? Gibt einfachere Methoden z.B. mit rsync.

      Antworten
      • Birger
        Januar 27, 2014 9:45 am

        von rsync habe ich noch nichts gehört, werde ich mir mal ansehen. Danke.

        Habe meine o.g. Probleme mehr oder weniger in den Griff bekomme, was mich allerdings noch nicht weitergebracht hat. Konnte mit Owncloud meine durch BittorrentSync gesicherten Daten „sehen“. Owncloud zeigt mir jedoch nur leere Ordner an, obwohl die Dateien da waren. Das habe ich auf der externen Platte kontrolliert. Keine Ahnung wieso.. Vllt waren es einfach zu viele Daten für Owncloud. (Also nur teilweise funktionsfähig)

        Dann habe ich es komplett neu mit Seafile (natürlich ohne Bittorrentsync und Owncloud) probiert, was an sich schon wesentlich schneller lief. Jedoch konnte Seafile keine Synchronisierung durchführen. Im Client stand immer nur „Indiziere Dateien“ und nix weiter passierte. Verstehe ich ebenfalls nicht, da die Synchronisierung mit Seafile bei kleinen Ordnern gut funktionierte. (Funktioniert also ebenfalls nicht).

        Nun bin ich mit meinem Latein am Ende.

        Vllt. beschreibe ich einfach mal mein Problem:

        Mein Mac ist ziemlich voll mit Daten die ich permanent brauche. Daher liegen meine Bilder und meine Musik (bisher ungesichert) auf meiner Timecapsule, die als NAS fungiert. Natürlich wird ein Backup meines Macs mit TimeMachine auf der Timecapsule erstellt, da ich jeodoch wie gesagt die Musik und meine Bilder auslagern musste, liegen diese nun ungesichert auf der Timecapsule. Nun wollte ich es so gestalten, dass sobald sich etwas verändert, der 24/7 Raspi meinen Musik- und Bilderordner als Sicherung auf einer externen Platte spiegelt. Darüber hinaus hatte ich es mir eben so vorgestellt, dass ich mit Owncloud auch von außen darauf zugreifen kann, was anscheinen aufgrund der Datenmengen nicht funktioniert.

        Vllt. hast du ja noch eine Idee wie man mein Problem lösen kann.

        Antworten
        • Jan Karres
          Februar 8, 2014 12:48 pm

          Bzgl. Seafile: Bei vielen Dateien dauert das Indizieren der Dateien sehr lang. Da heißt es einfach abwarten. Zum sichern wie gesagt rsync verwenden.

          Antworten
  • Markus
    Januar 24, 2014 7:47 pm

    Hallo Jan ich hoffe du kannst mir helfen. Ich habe nun auf dem cubietruck ein gateway eingerichtet. Nun möchte ich owncloud darauf noch installieren und folglich auch nginx.
    Wenn ich bei Step 3 nginx zu starten möchte kommt das hier.

    nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

    Kannst du damit was anfangen?

    Antworten
    • Markus
      Januar 24, 2014 9:37 pm

      läuft wohl noch apache ohne das ich es installiert habe

      sudo nano /etc/nginx/sites-available/default
      hier hab ich den port von nginx geändert und läuft jetzt

      Antworten
      • Stellios
        Juni 6, 2014 3:48 pm

        Ich bekomme denselben Fehler, wenn auch ohne Apache. Der einzige Wechsel, den ich hatte, war, dass ich jetzt hinter einer F!Box mit Freigaben für 8001 etc. hänge und vorher hinter einem ddwrt-Router war. Ich bin streng nach deinem Post vorgegangen. Installiert sind nginx, Seafile und Baikal mit php5.
        Mit netstat -ntpl bekomme ich folgendes:
        tcp 0 0 0.0.0.0:12001 0.0.0.0:* LISTEN 2344/seaf-server
        tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN 2307/ccnet-server
        tcp 0 0 0.0.0.0:5002 0.0.0.0:* LISTEN 2424/perl
        tcp 0 0 127.0.0.1:13418 0.0.0.0:* LISTEN 2307/ccnet-server
        tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2446/smbd
        tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 2345/httpserver
        tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2486/sshd
        tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 2385/perl
        tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 2446/smbd

        Auf Port 80 ist nichts besetzt. Selbst wenn ich versuche, mit sudo fuser -k 80/tcp die app, die auf Port 80 sitzt, zu killen, geht es nicht.

        Kann es sein, dass die F!Box dazwischenfunkt?

        Antworten
        • Stelios
          Juni 6, 2014 4:10 pm

          Ich korrigiere. Bei mir schlägt der bind auf 8001 fehl:
          nginx: [emerg] bind() to 0.0.0.0:8001 failed (98: Address already in use)

          Auf 8001 ist der ccnet-server (PID 2307). Wie sähe hier die Lösung aus? Wieso will nginx auf 8001 statt 80 binden?

          Antworten
          • Jan Karres
            Juni 8, 2014 12:47 pm

            Du hast da wohl einige Ports nach eigenen Wünschen konfiguriert. Pro Port kann nur ein Service laufen.

  • Reiter
    Januar 24, 2014 10:45 pm

    Schönes tut… Hat mir sehr geholfen
    Eine Frage
    Über apt-get installiert er die nginx-1.2.1
    Hab mir dies nginx-1.4.4.tar.gz runter geladen

    Wie kann ich diese den nun installieren? Und nginx aktualisieren?
    Wäre super wenn du mir da helfen könntest
    Danke

    Antworten
    • Jan Karres
      Januar 26, 2014 10:27 pm

      Klingt nach Sourcecode und folglich müsstest du es händisch kompilieren und installieren. Dazu solltest du zuvor alle Installationen von nginx über den Paketmanager APT zuvor entfernen. Folglich wäre das ein eigenes Tutorial. Wenn du nicht zwingend eine neue Funktion, die es erst ab einer neueren Version als 1.2.1 gibt, benötigst ist diese Version völlig in Ordnung.

      Antworten
      • reiter
        Januar 27, 2014 8:30 am

        hallo jan..
        danke für deine antwort.. wäre schön wenn du dafür eventuell mal noch ein tut machen würdest wie man sowas macht..
        mir gehts eigentlich darum .. er zeigt mir in der owncloud folgenden fehler…

        Einrichtungswarnung
        Ihr Web-Server ist noch nicht für eine Datei-Synchronisation konfiguriert, weil die WebDAV-Schnittstelle vermutlich defekt ist. Bitte überprüfen Sie die Instalationsanleitungen.

        darum wollte ich ne neue version von nginx installieren bzw updaten

        vielleicht kannst eventuell mal noch wenn du etwas zeit findest das tut von der owncloud ergänzen wie man diese auf einen usb stick/festplatte auslagert.. das würde mich brennend interessieren und andere user mit sicherheit auch..
        danke

        Antworten
        • Reiter
          Februar 2, 2014 8:44 pm

          Hallo Jan.. Kannst mir bei meiner letzten Frage nicht helfen?
          Noch ne frage…
          Wie bekomm ich den die owncloud ausgelagert auf einen USB Stick/Festplatte?

          Kannst mir da eventuell helfen?
          Danke

          Antworten
          • Jan Karres
            Februar 8, 2014 4:45 pm

            Doch, nur an Zeit zum Antworte hats gemangelt 😉 Wie man die Dateien nach der Installation auslagern kann, wird im Owncloud Forum ausführlich beschrieben.

        • Jan Karres
          Februar 8, 2014 12:41 pm

          Owncloud funktioniert mit der, über APT verfügbaren Nginx Version. Ich denke du hast Step 8 der Owncloud Anleitung nicht ordentlich ausgeführt.

          Antworten
  • JBL
    Februar 24, 2014 8:48 pm

    Hallo,

    bekomme nach „sudo apt-get install nginx“ folgende Meldungen angezeigt:

    update-rc.d: error: insserv rejected the script header
    dpkg: Fehler beim Bearbeiten von nginx-common (–configure):
    Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück
    dpkg: Abhängigkeitsprobleme verhindern Konfiguration von nginx-full:
    nginx-full hängt ab von nginx-common (= 1.2.1-2.2+wheezy2); aber:
    Paket nginx-common ist noch nicht konfiguriert.

    dpkg: Fehler beim Bearbeiten von nginx-full (–configure):
    Abhängigkeitsprobleme – verbleibt unkonfiguriert
    dpkg: Abhängigkeitsprobleme verhindern Konfiguration von nginx:
    nginx hängt ab von nginx-full | nginx-light; aber:
    Paket nginx-full ist noch nicht konfiguriert.
    Paket nginx-light ist nicht installiert.

    dpkg: Fehler beim Bearbeiten von nginx (–configure):
    Abhängigkeitsprobleme – verbleibt unkonfiguriert
    Fehler traten auf beim Bearbeiten von:
    E: Sub-process /usr/bin/dpkg returned an error code (1).

    Gibt es hierfür Lösungsmöglichkeiten?

    Danke und Gruss JBL

    Antworten
    • Jan Karres
      Februar 25, 2014 10:18 am

      Ui, das sieht nach einem argen hund aus. Schau mal ob folgendes hilft.

      sudo apt-get -f install
      sudo apt-get purge nginx
      sudo apt-get update
      sudo apt-get install nginx

      Antworten
    • JBL
      Februar 25, 2014 8:54 pm

      sudo apt-get -f install
      sudo-get purge nginx und
      sudo apt-get install ngingx liefern folgende Ergebnisse:

      Paketlisten werden gelesen…
      Abhängigkeitsbaum wird aufgebaut….
      Statusinformationen werden eingelesen….
      0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
      3 nicht vollständig installiert oder entfernt.
      Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
      nginx-common (1.2.1-2.2+wheezy2) wird eingerichtet …
      insserv: warning: script ‚mathkernel‘ missing LSB tags and overrides
      insserv: There is a loop between service pyload and mathkernel if stopped
      insserv: loop involving service mathkernel at depth 2
      insserv: loop involving service pyload at depth 1
      insserv: Stopping mathkernel depends on pyload and therefore on system facility `$all‘ which can not be true!
      insserv: exiting now without changing boot order!
      update-rc.d: error: insserv rejected the script header
      dpkg: Fehler beim Bearbeiten von nginx-common (–configure):
      Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück
      dpkg: Abhängigkeitsprobleme verhindern Konfiguration von nginx-full:
      nginx-full hängt ab von nginx-common (= 1.2.1-2.2+wheezy2); aber:
      Paket nginx-common ist noch nicht konfiguriert.

      dpkg: Fehler beim Bearbeiten von nginx-full (–configure):
      Abhängigkeitsprobleme – verbleibt unkonfiguriert
      dpkg: Abhängigkeitsprobleme verhindern Konfiguration von nginx:
      nginx hängt ab von nginx-full | nginx-light; aber:
      Paket nginx-full ist noch nicht konfiguriert.
      Paket nginx-light ist nicht installiert.

      dpkg: Fehler beim Bearbeiten von nginx (–configure):
      Abhängigkeitsprobleme – verbleibt unkonfiguriert
      Fehler traten auf beim Bearbeiten von:
      nginx-common
      nginx-full
      nginx
      E: Sub-process /usr/bin/dpkg returned an error code (1)

      „Arger Hund“ heisst „neu installieren“?

      Antworten
      • Jan Karres
        Februar 25, 2014 10:41 pm

        Geht auf jeden Fall scheller als den Fehler zu jagen 😉

        Antworten
        • JBL
          März 2, 2014 4:12 pm

          Hab den Fehler gefunden, habe das Wolfram Package gelöscht, danachlief es ohne die Meldungen …

          Antworten
          • Jan Karres
            März 5, 2014 5:41 pm

            Klingt zwar strange, aber immerhin eine funktionierende Lösung 🙂

          • Egon
            Juni 13, 2014 2:06 pm

            sensationelles Problem, hat als Lösung aber funktioniert 🙂

      • Artur
        April 10, 2016 8:08 pm

        Bei mir hat es geholfen apache2 zu stoppen, danach konnte ich nginx installieren.

        Antworten
  • JBL
    März 2, 2014 4:12 pm

    Hallo Jan,

    verstehe ich das richtig, dass der NGINX-Server ohne ssl und nur für den Zugriff aus dem internen Netz (http, Port 80) eingerichtet worden ist?
    Ich möchte zusätzlich von außerhalb meines Netzes darauf zugreifen (z.B. für TTRSS). Kann ich bereits vorhandene SSL Zertifikate (aus meiner pyload) Installation dafür verwenden? Und wenn ja, wohin müssen diese kopiert werden und welche configs müssen wie angepasst werden?
    Danke.

    Antworten
    • Jan Karres
      März 5, 2014 5:47 pm

      Auf einen Webserver wie nginx kann man sowohl über das interne Netz als auch von Extern zugreifen (in letztem Fall muss Port 80 bzw. mit SSL auch Port 443 im Router freigegeben werden) – egal ob mit oder ohne SSL. Ein SSL Zertifikat, sofern es kein Wildcard Zertifikat ist, sollte nur an einer Stelle zum Einsatz kommen.

      Wie du ein SSL Zertifikat ausstellst und nginx entsprechend konfiguriertst ist leider nicht in zwei Sätzen erklärt. In dem Seafile Tutorial wird dies in Step 11 und 12 durchgeführt. Mit diesem Beispiel und/oder etwas googeln solltest du es aber recht schnell verstehen können 🙂

      Ein eigenes Tutorial in dem u.a. das erklärt wird steht bereits in meiner Todo-Liste.

      Antworten
  • Heinz-Rolf
    April 8, 2014 1:33 pm

    Ich bekomme eine Fehlermeldung beim Synchronisieren einer Datei mit ca. 800 MB.
    “ Gateway Time-Out“. Kann ich irgendwo eine Zeit einstellen, die dieses Problem behebt?

    mfg Heinz-Rolf

    Antworten
    • Jan Karres
      April 12, 2014 5:34 pm

      Du könntest in der php.ini (ich glaube in /etc/php5/php.in) den Parameter max_execution_time hochsetzen. Reload/Restart von php5-fpm nicht vergessen!

      Antworten
  • heinz-herbert
    April 16, 2014 2:30 pm

    Hi, ich bekomme den Fehler

    apt-get install php5-fpm
    E: Unable to locate package php5-fpm

    Auch mit dem Erweitern der sources.list um
    deb http://packages.dotdeb.org stable all
    deb-src http://packages.dotdeb.org stable all

    komme ich nicht weiter. Ideen?

    Antworten
    • Jan Karres
      April 21, 2014 8:17 pm

      Welches Betriebssystem verwendest du denn? Und bist du als root-User angemeldet, oder warum hast du das sudo entfernt?

      Antworten
  • Jörg Fuchs
    April 21, 2014 9:48 pm

    Hm, nach Step 5 bekomme ich eine Fehlermeldung:

    Starting nginx: nginx: [emerg] „location“ directive is not allowed here in /etc/nginx/sites-enabled/default:62
    nginx: configuration file /etc/nginx/nginx.conf test failed

    Antworten
    • Jan Karres
      April 27, 2014 7:24 pm

      Anhand der Fehlerbeschreibung würde ich darauf tippen, dass du den angegebenen Codeblock an der falschen Stelle eingefügt hast. Versuchs doch einfach noch mal 😉

      Antworten
  • Gabriel
    April 29, 2014 10:26 pm

    Hi, erstmal: Super Tutorials hier für den Pi! Vielen Dank dafür!

    Ich weiß nicht ob deine Anleitung veraltet ist oder nicht aber:

    Ich bin grad dabei nginx mit php und ruby on rails zum Laufen zu bringen. Ruby on Rails wurde nach deiner Anleitung richtig installiert (glaub ich zumindest, bin ins Bett gegangen nachdem die Installation gestartet war 🙂 ). Allerdings hatte ich Probleme mit Step 10.

    sudo apt-get install libcurl3-gnutls-dev libcurl3-openssl-dev

    wirft bei mir Fehler wegen unerfüllten Abhängigkeiten. Musste NUR das Paket libcurl4-openssl-dev installieren. Dann hat der passenger-installer allerdings immer noch rumgemeckert ihm würden die ruby-dev files fehlen. Um das zu reparieren musste ich noch das Paket ruby1.9.1-dev nachinstallieren. Auch wenn rvm die Version 1.9.3 installiert hat scheint das doch zu passen…

    Jetzt ist die Installation vom Passenger-Modul angelaufen… Mal schauen obs durchläuft…

    Trotzdem super Tutorial!

    Antworten
    • Martin Cz.
      Mai 13, 2014 12:34 am

      Hi,
      ich finde Deine Tutorials auch hervorragend! Herzlichen Dank dafür!

      Bei mr das gleiche Problem, da ich allerdings ein totaler Linux-Newbie bin, komme ich bei Step 10 nicht weiter.

      Antworten
  • derwegi
    August 13, 2014 6:34 pm

    Hallo Jan,
    ich habe nach Punk 8 folgende Fehlermeldung:

    sudo /etc/init.d/nginx restart

    Restarting nginx: nginx: [emerg] unexpected end of file, expecting „}“ in /etc/nginx/sites-enabled/default:114

    kann ich das ignorieren?

    Antworten
    • Jan Karres
      August 19, 2014 3:18 pm

      Solltest du nicht ignorieren, denn nginx startet damit nicht mehr. Du wirst beim Kopieren der Konfiguration aus Sept 5 einen Fehler gemacht haben. Versuchs einfach erneut 🙂

      Antworten
  • Paul Hein
    September 1, 2014 3:02 pm

    Wenn man nur nginx und php installiert braucht man dann noch punkt 13 – 15 mit dem Startscript oder läuft das auch so.
    War mir da etwas unsicher, da ich Ruby nicht brauche.

    Antworten
    • Jan Karres
      September 3, 2014 3:36 pm

      Wie beschrieben musst du für PHP nur bis einschließlich Step 8 das Tutorial beachten.

      Antworten
  • JanS
    September 4, 2014 10:19 am

    Hallo,
    wenn ich nun nginx mit php und ruby on rails installieren will. Wie muss ich da vorgehen?
    Deine Anleitung für Ruby on Rails kompiliert ja nginx neu. Heißt ich müsste php-fpm doch da auch mit reinbringen oder?

    Grüße

    Antworten
    • Jan Karres
      September 7, 2014 8:17 pm

      Ich erlaube mir von Anfang des Artikel zu zitieren: „Möchte man Ngnix mit Ruby on Rails installieren, so muss man erst bei Step 9 beginnen!“

      Antworten
      • JanS
        September 9, 2014 7:49 pm

        Hi,
        ich meinte wenn ich Nginx mit Ruby on Rails und PHP verwenden möchte. Wenn ich komplett erst bei Step 9 anfange dann habe ich ja kein PHP mit an Board.
        Kann sein das ich da brag etwas auf dem Schlauch stehe, wäre aber trotzdem nett wenn du mir das erläutern könntest wie ich vorgehen muss wenn ich beides benötige?

        Viele Grüße

        Antworten
        • Jan Karres
          September 10, 2014 12:17 pm

          Dann musst du natürlich auch php5-fpm installieren und dir zwei auf verschiedenen Ports laufende nginx virtual hosts anlegen. Das wäre aber schon wieder eine eigene Anleitung, weshalb ich dir empfehlen würde dich einfach mal via Suchmaschinen schlau zu machen wie man nginx virtual hosts konstruiert.

          Antworten
  • Fabe
    September 12, 2014 1:09 pm

    Hallo Jan,
    zunächst vielen Dank für Deine wunderbaren Anleitungen. Seit einigen Tagen besitze ich auch endlich einen Raspberry Pi und habe schon einige Deiner Infos umgesetzt. Leider ist die Linux-Welt für mich noch komplett neu, so dass die Lerneffekte groß aber die Fragen daher manchmal etwas komisch sind.

    Ich habe zunächst dein Tutorial zum Aufsetzen des nginx-Webservers inkl. PHP befolgt. Alles hat wunderbar geklappt. Anschließend habe ich Baikal zusätzlich installiert und die Synchronisation von Kalender und Adressbuch ebenfalls hinbekommen. In Verbindung mit Baikal habe ich mich für die SSL-Variante entschlossen. Seitdem öffenet meine Webseite allerdings auch immer als verschlüsselte Seite, was ich vermeiden möchte.

    Meine Frage lautet daher: Kann ich die Baikal-Komponente weiterhein verschlüsselt austauschen, während die Webseiten, die ich auf dem Pi hoste, unverschlüsselt übertragen werden? Falls ja, wie stelle ich das an?

    Beste Grüße
    Fabe

    Antworten
    • Fabe
      September 12, 2014 8:12 pm

      Hallo nochmal,

      wie es scheint, habe ich eine Lösung gefunden: In der Nginx-Default-Datei unter ../sites-available/ habe ich jetzt mehrere Server angelegt. Zuvor habe ich bei noip.com einen weiteren Host angelegt. Jetzt klappt die Unterscheidung zwischen normalen Aufrufen von Webseiten (ungesichert) und der Baikal-Synchronisation (gesichert), da ich unterschiedliche Noip-Hosts für die beiden Zwecke verwende.

      Vermutlich ist diese Lösung umständlicher als nötig, aber für den Moment zweckmäßig.

      Grüße
      Fabe

      Antworten
    • Jan Karres
      September 15, 2014 12:05 pm

      Dazu brauchst du verschiedene nginx virtual hosts. Folglich hast du das schon richtig angegangen, auch wenn es nicht verschiedene Domains benötigen würde. Das Thema ist aber nicht ganz easy, weshalb das einen eigenen Artikel wert wäre.

      Antworten
  • Michael
    September 12, 2014 1:44 pm

    Hallo Jan,

    Ich danke Dir für die super Doku.
    Jedoch habe ich folgendes Problem beim Ausführen von

    sudo /etc/init.d/nginx restart
    sudo /etc/init.d/php5-fpm restart

    Meldung:
    [emerg] unknown directive „pass“ in /etc/nginx/Sites-enabled/default:62
    Nginx: configuration file /etc/nginx/nginx.conf test failed

    Vielleicht kannst Du helfen.

    Vielen Dank!

    Servus

    Michael

    Antworten
    • Jan Karres
      September 15, 2014 12:06 pm

      Ich tippe, dass du beim Kopieren in Step 5 einen Fehler gemacht hast. Am besten einfach noch einmal versuchen 😉

      Antworten
  • auch Jan
    Oktober 7, 2014 2:07 pm

    nginx startet bei mir nicht mit dem Script. Ich muss nach dem Neustart manuel ’sudo nginx‘ eingeben (nicht /etc/init.d/nginx), damit es funktioniert. Hat das vielleicht etwas mit dem Pfad /opt/nginx zu tun, der bei mir nicht existiert?

    Antworten
    • Jan Karres
      Oktober 11, 2014 7:13 pm

      In /opt/nginx sollte es auf jeden Fall nicht ein, wobei mich auch keine konkrete Idee habe. Vielleicht versuchst du es einfach noch einmal.

      Antworten
      • Carlo
        November 3, 2014 6:42 pm

        Habe das gleiche wie oben beschrieben. Nach dem Herunterladen und kopieren des Startscripts reagiert nginx bei Befehlen mit /etc/init.d/nginx XYZ nicht mehr.
        Habe mich beim Installieren genau an die Anleitung gehalten.
        Zumindest reagierte nginx vor dem Eintrag des Startscripts noch.

        Best Regards,
        Carlo

        Antworten
        • Martin
          Dezember 29, 2014 4:42 pm

          Hallo Jan,

          habe ebenfalls das Problem, dass ich trotz penibler ausführung deiner Anleitung, nach einem Neustart des Pi’s mit deinem Startskript den nginx nicht zum laufen bekomme.

          ein „sudo nginx“ hilft zwar weiter, aber der cronjob ist damit quasi zwecklos…

          LG Martin

          Antworten
  • nzm.knn
    November 26, 2014 11:27 am

    Lieber Jan, vielen Dank für diesen tollen Blog, den ich regelmäßig und gerne lesen. Deine Beiträge sind wirklich eine Bereicherung und machen mir vieles einfacher. Ich habe eine kleine Frage. Ich habe so wie beschrieben den Raspberry Pi für Nginx und PHP fit gemacht, da ich gerne in Zukunft PHP lernen möchte. Meine Idee: den Raspberry Pi konfigurieren und ins LAN, dann Zugriff auf den usr/share/nginx/www/ um dort meine Dateien hochzuladen. Sicherlich könnte ich auf dem lokalen Rechner auch einen Server einrichten, aber waurm nicht den Raspberry nutzen?
    Ich habe nur folgendes Problem: Wenn ich per „nano index.html“ die Datei zu verändern versuche, wird mir angesagt, dass ich keine Berechtigung hätte. Und jedesmal als Root Dateien verändern möchte ich auch nicht. Was kann ich tun? Im Idealfall gebe ich dem www-Ordner die Eigenschaft, dass der User PI ihn beschreiben darf. Wie geht das?
    Ich danke dir vorab für deine Antwort.

    Antworten
    • Jan Karres
      Dezember 6, 2014 10:51 pm

      Das hängt am Rechtesystem. Mit chmod bzw. chmod -r für Ordner kannst du die Rechte setzen. Folglich am besten mal mit diesem Kommando auseinandersetzen.

      Antworten
  • Jan Karres
    Dezember 7, 2014 11:14 am

    Sollte kein Problem darstellen.

    Antworten
    • Jan Karres
      Dezember 7, 2014 2:58 pm

      Einfach machen. Das sollte nichts Spezielles zu beachten sein 🙂

      Antworten
      • Jan Karres
        Dezember 22, 2014 6:23 pm

        Versuchs doch mal mit einem Update

        sudo apt-get update && sudo apt-get upgrade

        Antworten
  • Markus
    Februar 22, 2015 8:38 pm

    Wie sieht es den mit Step 2 bezüglich des Pi2 aus?
    Ist dieser Schritt hier noch immer sinvoll oder nicht bzw. mit anderen Werten

    Antworten
    • Jan Karres
      März 31, 2015 4:19 pm

      Ich kann mich der Antwort von Karl Georg nur anschließen.

      Antworten
  • ianinsane
    Februar 28, 2015 1:36 pm

    Vielen Dank für die tollen Tutorials!
    Leider habe auch ich ein Problem mit Step 10:
    „Die folgenden Pakete haben unerfüllte Abhängigkeiten:
    libcurl4-gnutls-dev : Kollidiert mit: libcurl-dev
    Kollidiert mit: libcurl4-openssl-dev aber 7.26.0-1+wheezy12 soll installiert werden
    libcurl4-openssl-dev : Kollidiert mit: libcurl-dev
    Kollidiert mit: libcurl4-gnutls-dev aber 7.26.0-1+wheezy12 soll installiert werden
    E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.“

    Bin auch noch totaler Linux-Newbie und dementsprechend ratlos. Wie könnte ich hier vorgehen?

    Antworten
  • Matze
    März 5, 2015 8:57 pm

    Wieso erstellt er bei mir nicht das Verzeichnis um auf die Config in Step 2 zuzugreifen?

    Antworten
  • Gunnar
    April 8, 2015 5:37 pm

    Hallo Jan,
    im Step 4 werden (bei mir) Fehler ausgegeben. Da kommen dann so Meldungen wie:
    „Fehlschlag beim Holen von http://mirrordirector.raspbian.org/raspbian/pool/main/p/php5/php5_5.4.36-0+deb7u3_all.deb 404 Not Found“
    Das deutet m.E. auf geänderte Pfade an der Quelle hin.

    Der Tip am Ende hilft dann jedoch weiter:
    „E: Einige Archive konnten nicht heruntergeladen werden; vielleicht »apt-get update« ausführen oder mit »–fix-missing« probieren?“ Also:

    sudo apt-get update

    und

    sudo apt-get install php5 php5-fpm php-pear php5-common php5-mcrypt php5-mysql php5-cli php5-gd –fix-missing

    eingeben und die Fehler sind weg. Besser wäre natürlich ein repariertes Script.

    Wenn man diese Fehler übersieht, entstehen die hier beschriebenen Probleme u.U. als Folge daraus.

    btw: Heute in der neuen c’t 2015/9 gibt’s nette Raspi-Artikel zu lesen.

    Antworten
    • Jan Karres
      April 19, 2015 9:14 pm

      Das ist Linux Basiswissen. Wenn das für dich ein Problem darstellte setzte dich am besten mal mit dem Paketmanager Dpkg und APT auseinander.

      Antworten
  • Raspberry Pi: Funksteckdosen einrichten » Jan Karres
    Mai 12, 2015 5:19 pm

    […] den Webserver nginx mit php5-fpm. Wie man diese Software installiert erklärte ich in dem Artikel Webserver Nginx installieren. Step […]

    Antworten
  • Baccata
    Mai 22, 2015 10:36 pm

    Hallo Jan,

    danke für das (und andere) schöne Tut, aber irgendwie habe ich ein ungutes Gefühl einen Server aufzusetzen und zu betreiben, der versionsmäßig völlig überholt ist. Ich denke da gerade an Sicherheitslücken und evtl. Performanceverbesserungen in neueren Versionen. Weißst du mehr darüber?

    Antworten
    • Jan Karres
      Mai 29, 2015 1:49 pm

      Um Sicherheitslücken musst du dir keinen Kopf machen, denn die werden auch in den alten Versionen gepatcht. Jedoch stimmt es, dass du nicht die aktuellsten Hauptversionen der Software hast, was jedoch der Struktur von Debian geschuldet ist, was Chrsiopher in seinem Beitrag Debian oder Arch Linux? schon einmal schön erläutert hat.

      Antworten
  • Sascha Flach
    Juni 7, 2015 12:08 pm

    Wie deinstalliere ich das denn sauber? Möchte doch lieber Apache benutzen.

    Antworten
    • JanS
      Juni 7, 2015 4:41 pm

      Hi,
      wenn du ihn mit apt installiert hast geht das mittels apt-get remove
      https://wiki.ubuntuusers.de/apt/apt-get?redirect=no

      Grüße

      Antworten
  • Yorven
    Juli 18, 2015 9:48 am

    Hallo Jan,
    Ich hatte den Server nach deiner Anleitung installiert, alles lief ein halbes Jahr lang glatt.
    Jetzt wollte ich ein Kontosystem auf meiner Website einführen und damit fingen die Probleme an. Für das Kontosystem wollte ich das Nginxmodul ngx_http_auth_basic_module benutzen. Da ich aber nicht wusste/weiß, wie ich das auf den Raspi bringe, habe ich dann diese Anleitung benutzt https://der-linux-admin.de/2015/05/nginx-basic-authentication/. Password-datei erstellt. Dann wollte ich das Konfigurieren machen, wobei ich aber eine Datei für den Nginx-server gelöscht haben muss (Hatte einen Pfadfehler drin und habe dann mit Filezilla nachgeguckt, dabei muss es passiert sein:) ). Denn jetzt läuft der Server nicht mehr. Was soll ich jetzt machen? De- und wieder installieren funktioniert nicht, da er diese Datei nicht erneut installiert.
    Danke schonmal im Vorraus.

    Antworten
    • Jan Karres
      August 3, 2015 11:17 pm

      Damit ich dir helfen kann müsstest du mir genauer beschreiben was du alles gemacht hast.

      Antworten
    • Schrempf
      Dezember 7, 2015 9:04 pm

      Welche Datei meinst Du genau? Falls Du die Passwort-Datei meinst, dann kannst Du die einfach neu erstellen. Wie in Tutorial unter https://der-linux-admin.de/2015/05/nginx-basic-authentication/ beschrieben, geht das mit

      htpasswd -c /etc/nginx/nginxpw

      Den Pfad musst Du dann in der Konfiguration vom Nginx-vHost entsprechent anpassen.

      Antworten
  • Rapha
    August 4, 2015 8:24 pm

    Hey Jan,
    kannst du wohl mal einen Nginx Artikel bezüglich der IPv6 Unterstützung schreiben? Ich weiß nicht, wie groß die Nachfrage diesbezüglich ist, aber meinen Googlesuchen nach zu urteilen, wird es einige interessieren. Nachdem ich dank eines neuen Inet-Vertrages nun leider Gottes vor die Wand aka IPv6 gefahren bin, muss ich nun einen Weg finden, meinen Pi wieder ins Netz zu bekommen. Bzw. viel mehr von außen erreichbar zu machen.
    Da IPv6 noch komplettes Neuland für meine Wenigkeit darstellt, bin ich aktuell noch damit beschäftigt, überhaupt nen DynDNS vernünftig einzurichten. Beim Webserver bin ich noch gar nichtmal angelangt… 😀

    Naja wäre ne klasse Sache, so ein Artikel.

    Antworten
    • Joel
      August 6, 2015 9:47 am

      Hallo Rapha,
      hast du schonmal an einem anderen Computer IPv6 abgeschaltet? Wenn ja, kamst du danach nicht mehr ins Internet? Wenn ja, dann gebe ich dir mal folgenden Link für deinen RaspPi 🙂

      http://superuser.com/questions/546788/how-to-disable-ipv6-on-debian-wheezy

      Antworten
      • Rapha
        August 10, 2015 3:59 pm

        Hey Joel,

        eher das Gegenteil. Ich habe inzwischen IPv6 (angeblich) in nginx aktiviert, so dass es darauf lauscht. Soweit ich das sehe, muss man dafür aber auch nur eine Zeile in der servers-available/default hinzufügen (listen ::80). Allerdings habe ich es bisher noch nicht geschafft von außen auf den Webserver zuzugreifen. Hing das letzte mal bei nem DynDNS Betreiber fest. Meiner Vorstellung nach müsste IPv6 das über den Browser ja genauso problemlos laufen, wie IPv4. Dementsprechen hoffe ich, dass erstmal der Webserver normal ansprechbar wird und ich meine Pfütze wieder zu einer Cloud upgraden kann- Habe bisher allerdings aus Zeitmangel noch nicht weiter testen/werkeln können. Inzwischen kam von Jan auch ein Artikel bezüglich IPv6 raus, worin er eine Möglichkeit aufzeigt, seinen Pi hinter DS Lite erreichbar zu machen. Mal sehen, wie ich mich dabei anstelle 😀

        Allerdings las ich bereits, dass nur TCP unterstützt wird. Ich habe jetzt schon schiss, dass es einige Dienste ausm Konzept haut. Naja mal sehen.

        Antworten
        • Jan Karres
          August 12, 2015 12:01 am

          Die meisten Dienste, die man so verwendet, basieren auf dem TCP-Protokoll.

          Antworten
    • Jan Karres
      August 11, 2015 11:50 pm

      Der Artikel DynDNS trotz DS-Lite durch IPv6 Portmapper, der zufällig die Tage erschien, sollte dir eine Lösung bieten – nicht nur für nginx.

      Antworten
  • Ernst Neger
    August 22, 2015 9:32 pm

    Vielleicht sollte man in Step 7 erwähnen, um welche Zeile mit „index“ es sich handelt, die kommt in der Datei öfter vor. Außerdem ist der letzte Absatz sehr undeutlich formuliert:

    „Soll der soeben installierte Dienst auch außerhalb des eigenen Netzwerkes verfügbar sein, so müssen folgende Ports im Router freigegeben werden. Wie man freigibt, beschrieb ich in dem Artikel Portforwarding bei Fritz!Box und Speedport.“

    Auf was soll sich „der soeben installierte Dienst“ beziehen? Auf Ruby on Rails oder auf nginx?

    Antworten
    • Jan Karres
      August 25, 2015 6:44 pm

      Zu Step 7: Ich denke das sollte für die meisten Leser schon klar sein. Man kann es an allen Stellen ersetzen, und es würde auch funktionieren.
      Zur Portfreigabe: Ruby on Rails ist lediglich ein Framework, dass auf der Sprache Ruby aufsetzt. Davor steht der Webserver nginx. Dieses Konstrukt sollte jedem, der mit Ruby on Rails programmiert, klar sein. Ansonsten denke ich wird das mit dem programmieren auch schwer 😉

      Antworten
  • Nicolas
    September 27, 2015 6:56 pm

    Hallo Jan,
    deine Anleitungen sind klasse…

    Bin heute auf ein Problem gestoßen, dass PHP nach der Einrichtung mit deiner Anleitung nicht funktioniert und bloß weiße Seiten ausgestoßen hat. Habe das Problem mit Hilfe des Beitrags auf http://it-repo.net/2014/01/08/webmaster-server/nginx-webserver/weisse-seiten-unter-nginx-mit-php-fpm-die-variable-script_filename gelöst, vielleicht kannst du es für eine Ergänzung deines Tutorials brauchen. Mein System war ein Banana Pi mit dem 1508er Bananian 8 (Debian Jessie) Image.

    Gruß

    Antworten
  • W3bm45t3r
    Oktober 14, 2015 6:17 pm

    Hi Jan,
    ich habe nach dieser Anleitung schon mal einen Banana Pi unter ‚Raspbian for Banana Pi‘ komplett mit Baikal aufgesetzt.

    Kann es sein, dass sich bei Nginx was geändert hat?
    Bei Schritt 8 (nginx restart) bekomme ich eine Fehlermeldung:

    Restarting nginx: nginx: [emerg] „location“ directive is not allowed here in /etc/nginx/sites-enabled/default:82
    nginx: configuration file /etc/nginx/nginx.conf test failed

    Der Pi ist auf dem neuesten Stand und ich habe das Ganze schon zum zweiten Mal durchgespielt.

    Es scheint an diesem Syntax-Block zu liegen:
    location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    }

    Dieser findet sich allerding auch 1:1 bei Ubuntuusers.de.

    Vielen Dank für Deine tolle Arbeit

    Gruß

    p3t3r

    Antworten
    • eMeS
      Oktober 28, 2015 3:18 pm

      Ganz am Ende fehlt noch eine abschließende geschweifte Klammer.

      Antworten
      • W3bm45t3r
        Oktober 29, 2015 10:29 pm

        Stüüüümmt! Da hatte das damals auch geklemmt, aber ich hatte das nicht mehr auf’m Schirm.

        Allerherzlichsten Dank!

        Antworten
  • Mx2
    Dezember 3, 2015 10:57 pm

    Hallo,

    habe folgendes Problem, bei der Installation des „php-Blocks“:

    Fehler traten auf beim Bearbeiten von:
    php5-fpm
    E: Sub-process /usr/bin/dpkg returned an error code (1)

    Gruß
    Mx2

    Antworten
  • Andu
    Dezember 18, 2015 4:58 pm

    Danke für deine Anleitung!

    Leider ist uns bleibt Linux ein ständig wachsendes uferloses Meer an Möglichkeiten.
    Solche Tutorials haben deswegen leider eine recht geringe Halbwertszeit und müssten eigentlich ständig überarbeitet werden – das kann fast keiner leisten, wenn man bedenkt wie viele Komponenten eben andauernd erweitert und aktualisiert werden.

    Wenn man deiner Anleitung exakt folgt landet man beim Aufruf einer php-Datei auf einer leeren weißen Seite. Liegt daran dass PHP nicht mitmacht. Nirgends wird ein Fehler ausgegeben oder geloggt. Ich habe nun locker 4h mit der Fehlersuche und Behebung verbracht und möchte sie hier mitteilen da ja sicher noch andere Benutzer an diesen Punkt kommen.

    Die Ursache ist ein UPDATE von Nginx in welchem die Konfiguration verändert wird
    (wer nachlesen möchte, hier: http://stackoverflow.com/questions/15423500/nginx-showing-blank-php-pages und hier: http://blog.martinfjordvald.com/2013/04/nginx-config-history-fastcgi_params-versus-fastcgi-conf )

    Die Lösung für mich war eine zusätzliche Zeile in der default-Site-Konfiguration:

    # pass the PHP scripts to PHP-FPM server listening on unix socket
    location ~ \.php$ {
    include fastcgi_params;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    }

    Die letzte Zeile „fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;“ bringt PHP dann wieder zum laufen. Es gibt wohl auch noch andere Lösungen in der nginx.conf aber ich habe diese hier verwendet weil ich froh war dass es endlich lief.

    Antworten
  • Nemex auf dem Raspberry Pi | EE Webdesign | designeer.de
    Januar 28, 2016 1:27 pm

    […] im Web (Ich würde nginx gegenüber Apache vorziehen, da die Umgebung ressourchenschonender ist. Passende Anleitung gibt es zum Beispiel hier). PHP wird ebenfalls vorausgesetzt (mindestens Version […]

    Antworten
  • Chris
    März 1, 2016 12:22 am

    Erstmal Danke für deine mühevollen Tutorials 🙂 aber ich denke Du solltest mal die komplette nginx default Datei posten damit nicht so oft Fehler damit entstehen! Ich für meinen Teil habe mit meiner default Datei rumgepfuscht und jetzt startet nginx trotz neuinstallation nicht mehr 🙁 bei systemctl status nginx.service kommt immer nginx: [emerg] „worker_processes“ directive is not allowed here in /etc/nginx/sites-enabled/default:2
    Kannst Du mir helfen? Habe schon viel nachgelesen aber bringe es einfach nicht zum laufen

    Antworten
  • Bernd
    Mai 5, 2016 8:04 am

    Hallo Jan,
    könntest du auch einen kleinen Guide schreiben wie man nginx auf die neuste Version upgraded?

    Die repos gehen offenbar nur bis 1.6.2 aber die neuste Version ist schon 1.10.0

    Antworten
  • Ein Webserver mit “lighttpd” – raspblogpi
    Juni 29, 2016 7:09 pm

    […] nginx auf Raspberry Pi: https://jankarres.de/2012/08/raspberry-pi-webserver-nginx-installieren/ […]

    Antworten
  • Jannik
    März 20, 2017 3:05 pm

    Hallo Jan,

    vorab will ich erstmal sagen, dass deine Anleitung klasse sind und nicht schwer zu absolvieren sind.

    Nun habe ich folgendes Problem, wenn ich mir die startscript.gz Datei mit sudo wget…. von deinem Server herunterladen will gibt es eine Fehlermeldung.
    „HTTP request sent, awaiting response… 404 not found“

    Die Verbindung zum Server erfolgt vorher aber erfolgreich. Ich tippe mal darauf, dass dieser Pfad bei deinem Server nicht mehr vorhanden ist !?

    Ich hoffe du kannst mir weiterhelfen..

    Antworten
  • Christian
    April 12, 2017 10:23 am

    Hallo Jan,
    ich wollte mich nur mal für die Tutorials bedanken die du hier zur Verfügung stellst.
    Also Danke und liebe Grüße
    Christian

    Antworten
  • Bibo
    September 7, 2017 8:45 pm

    Hallo Jan!
    Musste meinen Raspi-Server gerade neu aufsetzen und habe dabei das neue Debian 9 Stretch installiert. Der obigen Anleitung folgend, gab es Probleme mit der Installation von PHP5 (insb. php5-mysql). Das wird wohl nicht mehr unterstützt.
    Es wäre toll, wenn Du eine aktualisierte Version des Tutorials erstellen könntest 🙂
    Bibo

    Antworten
  • Leto
    Januar 17, 2018 10:59 am

    Hallo, Step 4 scheint nicht mehr zu funktionieren. Es gibt Fehlermeldungen bezüglich php5.

    Im folgenden ein Beispiel:
    Paket php5 ist nicht verfügbar, wird aber von einem anderen Paket
    referenziert. Das kann heißen, dass das Paket fehlt, dass es abgelöst
    wurde oder nur aus einer anderen Quelle verfügbar ist.
    E: Für Paket »php5« existiert kein Installationskandidat.

    Gibt es eine Lösung?

    Antworten
    • Andinho
      September 13, 2018 11:23 am

      apt-get install php php-fpm php-pear php-common php-mcrypt php-mysql php-cli php-gd

      Antworten
      • Alex
        April 4, 2019 10:03 pm

        Danke, jetzt hat’s funktioniert

        Antworten
  • How-To: volumio2 und sonerezh auf dem Raspberry Pi1
    Februar 9, 2018 11:22 pm

    […] Ein Startscript für nginx bietet Jan Karres unter Step 14 auf seinem Blog […]

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Jan Karres
Jan Karres
Wirtschaftsinformatiker
Facebook
Twitter
YouTube
LinkedIn
Xing
GitHub

Themen

  • Blogging
  • Debian (Linux)
  • Eine Geschichte aus dem Leben des Jan
  • Fotos
  • Gaming
  • Gedanken
  • Linksammlungen
  • Privates
  • Projekte
  • Raspberry Pi
    • Einplatinencomputer (außer Raspberry Pi)
  • Schule und Studium
  • Tipps und Tricks
  • Videos
  • Vorgestellt
  • WordPress

Projekte

Dieser Blog ist meine kleine Base im Internet, in der ich über Themen schreibe, die mich persönlich beschäftigen. Abseits davon habe ich weitere Projekte im Netz, die teils aus Spaß entstanden, jedoch zum Teil auch meinen Kühlschrank füllen.

Alle Projekte

JanKarres.de © 2007-2022

Neueste Beiträge

  • Raspberry Pi: WLAN Access Point mit NordVPN (VPN Router) einrichten Dezember 5, 2020
  • Real Cookie Banner: Wie das Opt-in Cookie Banner für WordPress entstand November 18, 2020
  • Blog Setup erneut: Aufräumen einer kleinen Historie Oktober 13, 2020
  • devowl.io: Auf geht’s in das WordPress Business! März 10, 2020
  • Kuschelpartys: Nähe und Geborgenheit einfach erleben September 30, 2018

devowl.io

Meine Brötchen verdiene ich im Internet. Dazu habe ich gemeinsam mit meinem Kollegen Matze die devowl.io GmbH gegründet. Gemeinsam entwickeln und vertreiben wir in unser Plugins und Entwickler-Tools im WordPress Umfeld.

Mehr erfahren
  • Datenschutzerklärung
  • Impressum