Slugdebug

Aus MySlug
Wechseln zu: Navigation, Suche


Fehler beim eaccelerator

Wichtig: Schaut bitte einmal Eure Apache Error-Log Datei an:

/opt/var/apache2/log/error_log

Es kann sein, dass die mittlerweile sehr groß geworden ist und förmlich von eaccelerator Meldungen ( could not lock ) ist. Der eaccereator cacht im php-Bereich und sorgt für etwas mehr Performance beim Laden. Solltet Ihr die error_log vol von eaccelerator Meldungen haben (die kommen im Sekundentakt wenn eine php Seite geladen wird), dann müssen wir die Build-Tools der Slug installieren (falls noch nicht geschehen):


ipkg install optware-devel


Dann brauchen wir noch die dev- Files der php Installation:


ipkg install php-dev


Zuerst modifizieren wir die /etc/profile, damit wir einen sauberen Kompile hinbekommen:


vi /etc/profile


Ergänzt dann folgende Zeilen und speichert die Datei ab:


export PATH=$PATH:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin:. 
export LD_LIBRARY_PATH=/opt/lib


Meldet Euch erstmal aus Eurer Slug ab und dann wieder an, damit die Suchpfade übernommen werden.

Nun entfernen wir den Beschleuniger:


ipkg remove eaccelerator


Und starten den Indianer neu:


/opt/etc/init.d/S80apache


Jetzt legen wir ein Arbeitsverzeichnis an:


mkdir work


und wechseln gleich dort hin:


cd work


Nun holen wir uns den Quellcode des aktuellen eaccelrator:


wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2

(auf der Projektseite [1] des eaccelerator könnt Ihr Euch über die aktuelle Versionsnummer informieren)

Das Paket entpacken wir locker aus der Hüfte:


tar vxf eaccelerator-0.9.5.3.tar.bz2


Ab in das Buildverzeichnis:


cd eaccelerator-0.9.5.3


Nun keine Zeit verschwenden und sofort


phpize


eingeben. Danach konfigurieren wir den php Beschleuniger mit folgendem einfachen Befehl:


./configure --prefix=/opt --with-eaccelerator-userid=nobody


Das kann einwenig dauern. Wenn alles fehlerfrei durch ist, kann das Programm gebacken werden:


make


Danach der obligatorische install:


make install


Da wir die Scriptfiles nicht manuell anlegen wollen tun wir jetzt das, was keiner erwartet: Wir installieren das Paket nochmal aus dem repository:


ipkg install eaccelerator


Das legt uns alle benötigten Pakete an


Aber wir löschen wieder das File, damit wir unser eigenes verwenden können:


rm /opt/lib/php/extensions/eaccelerator.so


Und sofort unsere neue Datei rein:


cp /work/eaccelerator-0.9.5.3/modules/eaccelerator.so /opt/lib/php/extensions/eaccelerator.so


Alte Apache Logdatei tillen:


rm /opt/var/apache2/log/error_log


Frische Apache Logdatei erzeugen:


touch /opt/var/apache2/log/error_log


Jetzt startet den Apache nochmal neu:


/opt/etc/init.d/S80apache


Und schaut Euch die Error-Log an:


tail -f /opt/var/apache2/log/error_log


Nun ruft Eure Internetseite auf. Sollte natürlich php-Code sein. Die Fehlermeldungen sollten nun nichtmehr auftauchen. Zudem schaut Euch mal Eure phpinfo.php Datei an, ob der eaccelerator tatsächlich cached. Das seht Ihr in der Sektion EACCELERATOR

Slug10.jpg

Bei dem fehlerhaften eaccelerator sind bei den Memory und cached File Bereich die "0" drin. Wenn es läuft, dann stehen hier entsprechende Werte.


Fehler bei Midnight Commander

Wer bei einer neuen Installation den Fehler beim Start des MC bekommen sollte, dass ein libext2fs.so nicht gefunden werden kann, der muss das Paket e2fsprogs nachinstallieren:


ipkg install e2fsprogs


Sollte allerdings mittlerweile nicht mehr auftreten


Zeitverschiebung des Servers korrigieren

Je länger nun die Slug läuft, desto weiter wird auf dem Gerät die korrekte Zeit von der Slug-Zeit abweichen. Eine Geschichte, die einwenig ärgerlich ist, aber sehr einfach zu beheben. Hierzu werden wir einen NTP Clienten einrichten, der von einem Zeitserver im Internet die aktuelle und genaue Zeit mit der NSLU2 synchronisiert. Nichts ist schlimmer, als z.B. ein falsches Empfangsdatum einer E-Mail angezeigt zu bekommen, gerade wenn es um geschäftliche Dinge geht. Installiert den NTP Client mit folgenden Befehl:


ipkg install ntpclient


Dann müssen wir einmal die Zeit manuell synchronisieren und dem Timer der Slug übergeben. Führt dazu folgenden Befehl als root aus:


/opt/bin/ntpclient -s -l -h 0.pool.ntp.org && hwclock --systohc --utc

Wenn der Befehl hängen bleibt und Ihr nicht wieder zurück zur Eingabeaufforderung kommt, dann beendet dies mit STRG+C . Dieser Effekt kann durchaus mit der neueren 6.10er Firmware auftauchen. In diesem Fall lasst die -l Option weg:


/opt/bin/ntpclient -s -h 0.pool.ntp.org && hwclock --systohc --utc

Legt ein Logfile an in dem das letzte Update dokumentiert wird:


touch /var/log/ntp.log


Editiert /etc/crontab und fügt folgende Zeile ein:


1 * * * * root /opt/bin/ntpclient -s -l -h 0.pool.ntp.org -p123 > /var/log/ntp.log && hwclock --systohc --utc

Bei obigen Fehler auch hier ohne der -l Option:


1 * * * * root /opt/bin/ntpclient -s -h 0.pool.ntp.org -p123 > /var/log/ntp.log && hwclock --systohc --utc

Dann entfernt die Zeile (oder kommentiert sie mit einem # aus):


1 * * * * root /usr/sbin/hwclock -s &>/dev/null


Startet nun die NSLU2 neu. Ab jetzt wird jede Stunde die Zeit neu mit der Slug synchronisiert.


vsftpd Fehler in Version 2.1.0

Mit der Version 2.1.0 kommt es leider zu folgenden Fehler beim Verbinden:

500 OOPS: could not bind listening IPv4 socket

Vermutlich wurden beim Codieren einige default Einstellungen nicht einkompiliert. Um die Geschichte nun wieder zu reparieren editiert die vsftpd.conf:

vi /opt/etc/vsftpd.conf

Fügt folgende Zeilen bitte ein:

listen=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES

Speichert die Änderung ab und beendet den inetd:

killall inetd

Jetzt startet den inetd neu:

/etc/rc.d/rc.xinetd

Jetzt sollte der Connect zu Eurem ftp wieder funktionieren.