Apache WebServer
« Vorherige BeiträgeApache: Address already in use: make_sock
Mittwoch, 13.07.2011Wenn Sie beim Start des Apache2 Webservers die folgende Fehlermeldung erhalten, dann hilft Ihnen dieser Artikel weiter:
(98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs
Stoppen Sie die blockierenden Programme, welche auf Port 80 (TCP) laufen (Zeile 1) und starten Sie den Apache WebServer erneut (Zeile 2):
1 2 | sudo fuser -k -n tcp 80 sudo /etc/init.d/apache2 start |
Auth_imp: Die benötigte IMAP-Erweiterung wurde nicht gefunden
Mittwoch, 29.09.2010Wenn Sie beim Einloggen in das WebMail Programm “Horde” plötzlich folgende Fehlermeldung erhalten, dann hilft Ihnen dieser Artikel weiter:
Ein schwerer Fehler ist aufgetreten: Auth_imp: Die benötigte IMAP-Erweiterung wurde nicht gefunden. Details wurden für den Administrator mitgeloggt.
Installieren Sie die IMAP Erweiterung für PHP (hier PHP V5) auf Ihrem Server:
apt-get install php5-imap
… und vergessen Sie den Neustart des Apache Webservers nicht:
/etc/init.d/apache2 restart
Anschließend können Sie die Anmeldung bei “Horde” erneut durchführen und werden Erfolg haben.
Einen Hinweis für die Fehlersuche bei Horde:
Über die folgende URL können Sie auf Ihrem Server die Konfiguration von Horde testen. Dadurch können Sie leicht fehlende Abhängigkeiten entdecken und beheben:
http://url-zu-ihrer-horde-installation/imp/test.php
Fatal error: Call to undefined function curl_init() in /home/…/ip-logger/…/class.ipdetails.php
Mittwoch, 29.09.2010Die folgende Meldung zeigt an, dass das Modul “php5-curl” nicht installiert wurde:
Fatal error: Call to undefined function curl_init() in /home/.../wp-content/plugins/.../class.ipdetails.php on line 29
Mithilfe des Befehles “apt-get install php5-curl” können Sie z.Bsp. unter Debian dieses Modul einfach nachinstallieren und nutzen.
WordPress: Deine PHP-Installation scheint nicht über die von WordPress benötigte MySQL-Erweiterung zu verfügen
Dienstag, 28.09.2010Beim Aufruf Ihrer Webseite erhalten Sie folgende Meldung ?
Deine PHP-Installation scheint nicht über die von WordPress benötigte MySQL-Erweiterung zu verfügen.
Prüfen Sie bitte, ob auf Ihrem Server die folgenden Programme (Module) richtig installiert sind:
- PHP
- mySQL
- php5-mysql
Sollte z.Bsp. “php5-mysql” fehlen, dann können Sie unter Debian mithilfe des Befehles “apt-get install php5-mysql” dieses Modul nachinstallieren. Anschließend sollte Ihre Webseite (wieder) richtig funktionieren.
VirtualMin: PHP Prozesse automatisch beenden (zu viele PHP Prozesse)
Samstag, 07.08.2010Wenn Sie mit VirtualMin Ihren Server (evtl. virtuellen Server = VServer) verwalten, dann stehen Sie manchmal vor dem einfachen (aber relativ gefährlichen) Problem, dass Ihnen die PHP Prozesse Ihren verfügbaren Arbeitsspeicher (RAM) füllen. Zwar ist die Speicherverwaltung von Debian Linux darauf ausgelegt, benutzten Speicher nicht sofort wieder freizugeben, sondern dieses erst bei Bedarf zu machen. Trotzdem kann dieses Verhalten Ihren Server in Performanceprobleme bringen oder Zugriffe scheitern lassen (Error 503 – “Service unavailable”).
Eine Lösung ist, in der VirtualMin Oberfläche die Einstellungen anzupassen:
- System Settings > Server Templates
- “Default Settings” anklicken
Nutzen Sie für Ihre Server ein eigenes Template, nutzen Sie jenes - Edit template section = “Apache website”
- Setzen Sie “Default FCGId PHP sub-processes” auf “None”
- Klicken Sie ganz unten auf “Save”
- Starten Sie den Apache Webserver einmal neu
- Wechseln Sie in den WebMin Bereich (oben links im Bildschirm)
- Servers > Apache Webserver
- Klicken Sie auf “Apply Changes” (oben rechts im Bildschirm)
- Fertig
Nun werden nicht mehr benötigte PHP Prozesse sofort nach Ihrem Ablauf auch entfernt und es steht wieder mehr Server-RAM zur Verfügung.
SVN: Nach einem Commit automatisch die Webseite aktualisieren (Post-Commit Hook)
Freitag, 23.07.2010Bei SVN Projekten werden die Änderungen der Entwickler & Programmierer regelmäßig von deren lokaler Kopie in das entsprechende SVN Repository committed (= gesichert / gespeichert).
Bei diesem “Committen” können Sie Ihren SVN Server anweisen, sofort die Änderungen auf einen WebServer zu kopieren und dadurch stets die aktuellste Version zum Testen vorzuhalten.
Zuerst müssen Sie die Grundlage für spätere Updates schaffen … einen grundlegenden Export des aktuelles Repositories:
svn export http://yourDomain.com/svn/YourProject /path/to/webserver/
Wenn das WebServer verzeichnis (hier: “/path/to/webserver/”) bereits existiert und jetzt für den Export überschrieben werden soll, dann müssen die die Option “–force” an den Befehl anhängen:
svn export http://yourDomain.com/svn/YourProject /path/to/webserver/ --force
Nun richten Sie die Update-Automatik ein:
- Dafür gehen Sie in das “hooks” Verzeichnis Ihres Projektes auf dem SVN Server
- Kopieren Sie sich die Vorlage für den “post-commit” Hook:
cp post-commit.tmpl post-commit
- Bearbeiten Sie die Datei “post-commit”
nano post-commit
- Fügen Sie folgende Befehle ein:
1 2
cd /path/to/webserver/ svnlook dirs-changed [REPOS] -r [REV] | xargs /usr/bin/svn up -N
Hinweis:
Dieses Vorgehen ist (meist) nur für lokale Produktions- und Test-Webserver zu empfehlen. Bei Live-Systemen können auch kleine Fehler in der Entwicklung zu fatalen Problemen führen, da diese sofort online für jeden Besucher sichtbar wären.
PHP: Apache2 Version in Variable auslesen
Mittwoch, 21.07.2010Damit Sie auf einem Unix (Linux) System einfach die aktuelle Version des Apache WebServers herausfinden können, zeigen wir Ihnen ein PHP-Beispiel.
In dem PHP Script wird die Apache-Funktion “apache2ctl” genutzt, die die aktuelle Apache-Version auszulesen. Dieser Befehl wird mithilfe des PHP Befehles “passthru()” direkt an das Linuxsystem weitergegeben.
Hinweis:
Häufig ist auf “öffentlichen” Webservern aus Sicherheitsgründen die Nutzung einiger Befehle gesperrt. Dazu zählt häufig auch der Befehl “passthru()”. Wenn das Script bei Ihnen lokal auf dem Computer also einwadnfrei läuft und auf Ihrem Internetserver keine Daten zurück gibt, liegt diese Befehlssperre vor. Eine Möglichkeit, diese Sperre aufzuheben hat nur Ihr Web-Administrator (oder Provider).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php // PHP Version auslesen ob_start(); passthru("apache2ctl -v"); $ver = ob_get_contents(); if empty($ver) echo "passthru() disabled ?"; ob_end_clean(); $a = explode("\n", $ver); preg_match('/(server version: ){1}(.*)/i', $a[0], $v); $data[0] = $v[2]; preg_match('/(server built: ){1}(.*)/i', $a[1], $v); $data[1] = date("d.m.Y H:i:s", strtotime($v[2])); print_r($data); ?> |
Apache: Verzeichnisse mit Passwort schützen (htpasswd)
Dienstag, 20.07.2010Mit dem Apache Webserver wird ein Hilfsprogramm ausgeliefert: htpasswd
Es ermöglicht Ihnen die einfache Erstellung von Passwortdateien. Am einfachsten ist es über die Kommandozeile zu bedienen. Mit dem Aufruf “htpasswd -h” erhalten Sie eine kurze Hilfe und Syntax.
Beispiel:
htpasswd -c .htusers peter
Durch diesen Befehl wird eine neue Passwortdatei angelegt. Dabei müssen Sie für den neuen Benutzer “peter” ein Passwort angeben und (durch eine wiederholte Eingabe) bestätigen.
Kopieren Sie die neu erstellte Datei in das vorgesehene, zu schützende Verzeichnis auf Ihrem Internetserver (WebServer).
Linux: Fatal error: Call to undefined function imap_open()
Freitag, 07.05.2010Wenn Sie beispielsweise nach der Installation des Webmailprogrammes “Horde” die folgende Meldung angezeigt bekommen, kann Ihnen dieser Artikel helfen:
Fatal error: Call to undefined function imap_open()
Grund für die Meldung ist die fehlende IMAP Unterstützung in PHP. In diesem Artikel erkläre ich die Lösung für Linux Debian lenny (V5). Andere Systeme benötigen teilweise einen kompletten Neubau von PHP (= Neucompilierung / Recompiling).
Zuerst muss das fehlende Paket instelliert werden:
apt-get install php5-imap
Ihnen werden Details angezeig und am Ende werden Sie gefragt:
Do you want to continue? [Y/n/?]
Hier antworten Sie bitte mit “y”.
Die automatische Installation beginnt und kann einen kurzen Moment brauchen.
Wichtig ist, dass Sie danach Ihren Apache Webserver mit einem der beiden folgenden Befehle neu starten:
apache2ctl graceful /usr/sbin/apache2ctl graceful
Fertig.
Beim Einsatz von Horde haben wir teilweise die Cookies im Browser löschen müssen. Außerdem half häufig auch das Umsetzen der Cookie-Verarbeitung. Weitere Details finden Sie in unserem Artikel “Horde: Nach dem erfolgreichen Login wird wieder der Login angezeigt“.
Horde: Trotz Sprache “Deutsch” wird alles in Englisch angezeigt
Mittwoch, 05.05.2010Auch wenn Sie beim Webmailer “Horde” als gewünschte Sprache “Deutsch” ausgewählt haben, wird Ihnen alles auf Englisch angezeigt. Das liegt an den fehlenden “locales” für die gewäschte Sprache.
Diese können Sie wie folgt installieren (am Beispiel von Linux Debian lenny).
Geben Sie auf der Shell (SSH / PuTTy) folgenden Befehl ein:
dpkg-reconfigure locales
Wählen Sie dann zusätzlich die beiden folgenden Einträge aus:
“de_DE ISO-8859-1″ (recht weit unten)
“de_DE”
Danach müssen Sie nurnoch Ihren Apache Webserver neu starten:
/etc/init.d/apache2 restart
Nun sollte Ihre Anzeige auch auf Deutsch erscheinen.
« Vorheriger Beitrag