ich habe in einer Virtual Box ein Xubuntu 10.04 LTS laufen mit einem xampp für Linux 1.7.3a. Es sind verschiedene Virtual-Hosts konfiguriert.
in xampp ist ja ein php-cli bei, und zwar:
/opt/lampp/bin/php
Nun habe ich folgendes Problem.
Ich habe /etc/environment den Pfad /opt/lampp/bin/ hinzugefügt, damit ich in von php aus (wie auf meinem Online-Server) den php-cli ohne Pfad aufrufen kann:
shell_exec('php script.php');
...das funktioniert jedoch nicht.
Ich muss immer den kompletten Pfad zu php mit eingeben, damit mein script läuft, also:
shell_exec('/opt/lampp/bin/php script.php');
Nun habe ich etwas nachgeforscht:
alle User (inkl. root) haben in der shell /opt/lampp/bin/ im Pfad.
Wenn ich jedoch in php schaue, ist beim ausführenden user (nobody) /opt/lampp/bin/ nicht im Pfad. Überhaupt sieht der Pfad von nobody etwas anders aus:
root & andere user: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/lampp/bin
nobody: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
Wird die Variable Pfad irgendwo noch überschrieben?
Komische Sache. Ich habe mal direkt nach "/usr/X11R6/bin" gesucht:
grep -r -l /usr/X11R6/bin /opt/* 2>/dev/null
Ergebnis:
/opt/lampp/tidy/config.log
/opt/lampp/tidy/console/tidy
/opt/lampp/tidy/console/tab2space
in /opt/lampp/tidy/console/tidy ist eine Zeile drin:
- Code: Select all
relink_command="(cd /opt/lampp/tidy/console; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin; export PATH; gcc -O2 -Wall -O2 -o \$progdir/\$file tidy.o ../src/.libs/libtidy.so -Wl,-rpath -Wl,/opt/lampp/tidy/src/.libs)"
... und in In tab2space:
- Code: Select all
relink_command="(cd /opt/lampp/tidy/console; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin; export PATH; gcc -O2 -Wall -O2 -o \$progdir/\$file tab2space.o ../src/.libs/libtidy.so -Wl,-rpath -Wl,/opt/lampp/tidy/src/.libs)"
In beiden Files wird PATH gesetzt. Komisch. Werden die Files überhaupt ausgeführt? Ich werde aus dem ganzen nicht schlau. Warum sollte tidy PATH überschreiben? und warum relink_command?
Ich habe tidy, wenn ich mich recht entsinne, mal nachinstalliert, weil es in xampp nicht drin war.
Das scheint mir auch kein File zu sein, das zur manuellen Konfiguration gedacht ist - ob es so schlau ist darin rumzupfuschen? Oder ob das nicht doch noch an anderer Stelle gesetzt wird?
Ich hoffe Ihr könnt mir helfen,
ich habe schon im phpforum.de (http://phpforum.de/forum/showthread.php?p=1487961#post1487961) gepostet, aber leider scheint das ein xampp-spezifisches Problem zu sein?
Bye, Mojo