Aufruf von Systemtools aus Webapplikationen schlägt fehl

Es kann vorkommen, dass Webapplikationen ohne erkennbare Änderung plötzlich Probleme damit haben, irgendwelche Systemtools aufzurufen. Beispielsweise funktioniert der Aufruf von ImageMagick-convert aus mediawiki heraus gut, nach dem Reboot der Maschine aber nicht mehr. Weiteres Symptom: Nach dem manuellen restart von Apache via /usr/local/etc/rc.d/apache22 restart tut es auch wieder.

Die Erklärung ist einfach: Startet man als root (oder als User mit sudo) /usr/local/etc/rc.d/apache22, so wird das Environment der eingeloggten Shell an Apache vererbt, insbesondere auch PATH. Hier steht bei FreeBSD typischerweise auch /usr/local/bin mit drin, was im Environment direkt beim Boot (oder Start des Jails) fehlt.

Testen (für PHP): echo ‘<pre><php echo $_SERVER["PATH"]; ?></pre>’ > path.php

Ergibt beim Aufruf (direkt nach dem Boot): /sbin:/bin:/usr/sbin:/usr/bin
und nach dem manuellen restart von Apache: /sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin

Have fun
Raphael



Leave a Reply

You must be logged in to post a comment.