Categories
Linux

PHP APC Caching (Centos)

Gerd hat auch schon darüber geschrieben. Da viele professionelle PHP-Anwendungen sowieso auf Caching setzen habe ich bisher keine Notwendigkeit gesehen den APC-Cache mal auszuprobieren. Da ein Server in letzter Zeit besonders hohe Load hat, habe ich den APC-Cache jetzt doch mal ausprobiert.

Nach einem ersten, subjektiven Test muss ich sagen, dass der Leistungssprung wirklich erstaunlich ist. Ich habe den Eindruck, dass auch Typo3-Seiten (trotz eingebautem Caching) spürbar schneller und flüssiger laufen. Beim Blick auf den Graphen für die CPU-Load würde ich vorsichtig mal von 1/3 weniger Load ausgehen. Letztendlich ist der Leistungssprung durchaus logisch: Es wird nicht nur (wie sonst) lediglich die Ausgabe gecached sondern auch der kompilierte PHP-Code.

apc-small

Categories
Linux

PDF als Download verlinken

PDF-Dateien zu verlinken ist so eine Sache. Je nach Client-Einstellung wird die Datei mal innerhalb des Browsers und mal im Reader (standalone) geöffnet. Manche lösen es so, dass sie der Verlinkung ein target=”_blank” mitgegeben. Dies ist aber im xhtml-Standard nicht erlaubt und führt zu einem nicht validen Dokument.

Lösung ist es, dem Apache per Konfig oder .htaccess mitzuteilen, dass bei PDF-Dateien ein Download-Header angefügt werden soll. Der Browser öffnet dann einen Download-Dialog. Dies funktioniert natürlich nicht nur mit PDF-Dateien –  auch nervige Media-Player kann man so (z.B. bei MP3-Dateien) aussperren.


ForceType application/octet-stream
Header add Content-Disposition "Attachment"

Categories
Linux

MySQL Replikation reset

Es gibt viele Gründe warum die MySQL-Replikation aus dem Tritt geraten kann. Folgende Schritte helfen mir meistens die Slaves wieder zu aktivieren bzw. einen weiteren Slave in die Replikation einzuhängen.

Categories
Linux Tools

Mumble: Neuer Client mit positional-audio

Mal etwas anderes: Seit der kürzlich erschienenen Version Mumble 1.1.8 unterstützt Mumble mehr Spiele mit Positional-Sound-Plugins (z.B. alle Titel aus dem aktuellen Half-Life Universum). Gestern haben wir es kurz mit Team-Fortress 2 getestet. Es ist schon genial wenn die Stimmen der Mitspieler abhängig von Entfernung und Position im Spiel aus den jeweiligen Lautsprechern kommen. Ich glaube ich brauche bald einen Surround-Kopfhörer ;).

Categories
Linux

PHP mail() überwachen

Update: take a look here.

Es ist nicht ungewöhnlich, dass Shared-Hosting-Systeme irgendwann zum Spamversand mißbraucht werden. Ist ein schlampig programmiertes PHP-Script Schuld, ist dies aber nur relativ schwer zu Identifizieren. In den versendeten Mails bzw. in der Mail-Queue finden sich meist keine Hinweise darauf welches Script verantwortlich ist.

Categories
Linux Tools

dnotify: Verzeichnisse auf Änderungen überwachen

Kürzlich kam die Frage auf, ob man nicht nach einem Upload per scp automatisch ein Script auf dem entfernten Rechner anstoßen kann. Prinzipiell gibt es mehrere Ansätze. Bevor es jedoch zu Scripting-Orgien kam, ist Gerd glücklicherweise das Tool dnotify eingefallen (sollte in vielen Distributionen vorhanden sein).

dnotify überwacht Verzeichnisse auf Änderungen. Folgender Befehl überwacht das Verzeichnis /var/www/htdocs und führt bei einer Änderung (-M “Modify”) das angegebene Script aus. Sehr nützlich um z.B. Scripte nach dem hochladen auf einen Cluster zu verteilen.

dnotify -M /var/www/htdocs -e /opt/deploy_scripts.sh > /dev/null &
Categories
Linux

SMTP Timeout wegen abgeschalteter Blackliste

Bei einem Server meldete Nagios seit ein paar Tagen lange Timeouts beim SMTP-Connect. Es stellte sich heraus, dass der Kunde noch eine dsbl.org Blackliste konfiguriert hatte. Diese Listen sind schon seit monaten abgeschaltet und Nutzer wurden auch bereits mehrfach aufgefordert, diese Listen nicht mehr zu benutzen.

Seit Anfang März haben die Betreiber die Keule herausgeholt: Anfragen lösen die IP 192.0.2.1 auf, was einen langen Timeout in Spamfiltern etc. verursacht. Weitere Infos hier.

Categories
Linux Tools

Konsolen-Nagios

Ob cnagios in der Praxis wirklich notwendig ist, wird sich zeigen – auf alle Fälle ist es ganz nützlich um sich “mal eben” auf der Konsole einen Überblick zu verschaffen. Voraussetzung zum Kompilieren sind die Pakete “ncurses” und “ncurses-devel”.

cnagios

Categories
Linux

Kernel testen

Jedesmal spannend: Einen neuen Kernel installieren und dann der erste Reboot. Vor allem wenn es eine Remote-Maschine ist. Grub bietet netterweise die Option “–once” um den default-Kernel nur einmal zu starten. Wenn etwas schief geht, reicht ein Reset (wenn man einen Remote-Resetter hat) um den alten Kernel wieder zu starten.

grub
savedefault --default=0 --once
quit
Categories
Linux

Screen: Tastenkürzel

screen ist ein Programm zum öffnen von virtuellen Konsolen in einer Terminal-session. Ein Screen-Prozess wird mit der Eingabe von “screen” gestartet. Das Screen verlassen (es aber nicht beenden) geht per “CTRL-a d” (CTRL und “a” gleichzeitig, danach ein “d” drücken). Danach kann man sich per “screen -r” wieder zum Screen zurückverbinden. Sehr nützlich z.B. innerhalb von ssh-Sessions. Auch sollte man z.B. kritische Operationen immer im Screen ausführen, da es z.B. bei einer unerwarteten Unterbrechung einer ssh-Session zu problematischen Effekten kommen kann.

Leider vergesse ich (ausser CTRL+a d) immer wieder viele der Tastenkombinationen:

CTRL-a ?        Hilfe
CTRL-a "        Listet aktive Screens
CTRL-a c        Erzeugt einen neuen Screen
CTRL-a d        Beendet den aktuellen Screen (er läuft aber im Hintergrund weiter)
CTRL-a   Wechselt zum nächsten Screen

Blättern

Zuerst aktiviert man per “CTRL-a ESC” den Ausgabepuffer, dann kann man per CTRL+f und CTRL+b blättern.

“Remoteunterstützung”

Mittels “screen” kann man auch mit mehreren Personen in einem Screen arbeiten: Einer startet mit “screen” einen neuen Prozess, ein weiterer Benutzer kann sich dann mit “screen -x” zu einer gemeinsamen Konsole verbinden.