Archiv für die Kategorie Anfänger

nginx und der 502 Bad Gateway/The page your are looking for….

Das oben genannte Problem tritt leider häufig auf und manche Leute sind einfach ratlos, wo denn das Problem liegt.

Sollte ein 502 Bad Gateway oder (wenn in der nginx.conf definiert) ein The page you are looking for is temporarily unavailable. kommen, hängt das damit zusammen, dass sich der Spawn-FCGI Prozess beendet hat. Nicht, weil er abgestürzt ist, sondern weil nginx einen zu großen Memory Leak vorraussieht.

Das Problem lässt sich sehr leicht fixxen, indem man die Anzahl der Spawn-FCGI Prozesse erhöht.

Dies kann man mit den Parametern -F und -C realisieren. Bei 2 Prozessen (das reicht vollkommen)
/usr/local/bin/spawn-fcgi -F 2 -C 2 -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
Eventuell musst ihr an dieser Stelle den Pfad anpassen!
Die Prozesse mit diesem Befehl starten und auch in die rc.local (Autostart) eintragen!

Advertisements

Hinterlasse einen Kommentar

nginx + PHP5 unter Debian

Die Wahl eines Webservers gestaltet sich oft als schwierig. Oftmals wird der Apache-Webserver genutzt, welcher allerdings große Hardwareanforderungen stellt. Für kleinere bzw schwächere Server eignet sich besonders der „nginx“ Webserver. Ein absolutes Leichtgewicht!
Wie ihr diesen plus PHP5 unter Debian/Ubuntu installieren könnt, werde ich in diesem Tutorial zeigen.

 

 

Zuerst einmal laden wir uns die aktuelle stable-Version von der Website runter.

wget http://nginx.org/download/nginx-0.8.52.tar.gz

und anschließend entpacken mit Hilfe von
tar xfvz nginx-0.8.52.tar.gz

Die Dateien welche im Archiv waren werden nun in das Verzeichnis nginx-0.8.52 entpackt.
Wechseln wir nun in das Verzeichnis indem wir folgenden Befehl eingeben
cd nginx-0.8.52

Anschließend bereiten wir die Installation vor
./configure
Sollte ein Fehler auftreten, dass eine Bibliothek fehlt, dann diese einfach nachinstallieren. Bei mir zum Beispiel kam der Fehler, dass die PCRE Library fehlt.

Die Installation nun mit
make
fortsetzen.
Anschließend noch
make install und alles ist erledigt 😉 nginx wurde nun in /usr/local/nginx installiert.

Jetzt wechseln wir wieder mit Hilfe des „cd“-Befehls in das Verzeichnis /usr/local/nginx/sbin/
cd /usr/local/nginx/sbin
Von hier aus können wir den Server starten
./nginx.

Ruft nun mal euren Server auf und es sollte folgendes kommen 😉
null

Das war der erste Schritt, machen wir uns nun an die Installation von php.
Um php auf nginx zum Laufen zu bekommen benötigen wir FastCGI.
Dazu installieren wir nun erstmal alle wichtigen PHP-Module, damit du später nichts mehr nachinstallieren musst 😉
apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Anschließend müssen wir die php.ini bearbeiten
nano /etc/php5/cgi/php.ini
und folgende Zeile am Ende hinzufügen.
cgi.fix_pathinfo = 1

Machen wir uns nun an das Paket spawn-fcgi. Dazu hätten wir nun zwei Möglichkeiten.
Die erste wäre, einfach Lighttpd zu installieren, weil dieser das spawn-fcgi Paket schon hat oder wir kompilieren uns es selber, was ich jetzt tun werde 😉

wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
tar xfvz spawn-fcgi-1.6.3.tar.gz
cd spawn-fcgi-1.6.3
./configure
make
make install
Und das wars ;D

Nun starten wir noch den Daemon
spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

Das ganze ist natürlich ein bisschen blöd, wenn man das jedes mal beim Start eingeben muss, deswegen tragen wir spawn-fcgi in den Autostart ein.
nano /etc/rc.local
und diese Zeile vor dem exit eintragen:
/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

Das einzige was wir jetzt noch machen müssen ist die nginx.conf anpassen.
nano /usr/local/nginx/conf/nginx.conf

Die # vor
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}

entfernen und diese Zeilen so anpassen, wie ich es gemacht habe.

Anschließend müssen wir nur noch einen restart durchführen.
/usr/local/nginx/sbin/nginx -s reload
Und php funktioniert 😉
Zum Test können wir ja eine test-Datei machen mit folgendem Inhalt.
<?php
phpinfo();
?>

Das Verzeichnis, wo alle Dateien reinkommen, die über das Web erreichbar sein sollen ist /usr/local/nginx/html.

Hinterlasse einen Kommentar

Der erste (v)Server

Glückwunsch, du hast es geschafft! – ein eigener Server, mit dem du alles machen kannst was du willst, zumindest fast.

Nunja, wie auch immer. Es gibt eine Menge zu beachten bei einem Server, vor allem im Punkto Sicherheit. – Dir ist sicherlich bewusst, dass ein Server oft eine Bandbreite von 100Mbit oder mehr hat. Dass das eine ganze Menge ist im Gegensatz du den üblichen DSL Leitungen muss man glaube ich nicht erwähnen. Eine solch schnelle Leitung ist gut für Besucher deiner Website, da sie dort keine Laggs bemerken werden, allerdings ist diese auch für Hacker interessant. Mit ihnen kann man Warez down- oder uploaden, den Server als schnellen Proxy nutzen oder sogar Websiten attackieren.

Damit sowas mit deinem Server nicht passiert ist es besonders wichtig, dass du ihn absicherst. Dabei gibt es grundlegende Dinge, die zu beachten sind:

  • Halte deine Betriebssystem immer aktuell
  • Benutze sichere Passwörter für SSH, FTP, etc
  • Installiere ausschließlich Software, von der du weißt, dass sie keine Backdoors o.ä. enthält
  • Gib deine Serverdaten nicht weiter
  • Limitiere die Anmeldungsversuche

Wie ihr das alles bewerkstelligen könnt und noch vieles mehr werde ich euch in diesem Blog zeigen 🙂

MfG

crashme

Hinterlasse einen Kommentar