Ich hatte mich vor einigen Tagen aus aktuellem Anlass damit beschäftigt, wie ich PEAR unter der Confixx-Oberfläche nutzen kann, da es nicht standartmäßig aktiviert ist.
Das Problem ist dabei, dass alle vhosteinträge von Confixx regelmäßig überschrieben werden, weshalb ein einfaches Ersetzen nicht ausreicht.
Meine Annahmen:
- Debian 3.1 Sarge Stable auf dem neuesten Packetstand
- Confixx 3.1.2
- PEAR ist in
/usr/share/php/
installiert - Zugriff auf die Kommandozeile
- Zugriff auf Confixx-Administrationsoberfläche
Werbung
Zunächst muss man also PEAR installieren, was unter Debian recht einfach mit:
apt-get install php4-pear
zu bewerkstelligen ist. Weitere Pear-Klassen lassen sich dann einfach mit einem Kommandozeilenbefehl nach installieren. (Probieren sie doch einfach mal „pear help“ in der Kommandozeile). Evtl blogge ich mal noch dazu 😉
Doch wenn man nun versucht eine Klasse von PEAR einzubinden, wenn man Confixx an hat, dann wird man erstmal kräftig auf den Bauch fallen. Confixx erlaubt (mit Hilfe von open_basedir) leider nur bestimmte Pfade unter denen Dateien überhaupt inkludiert werden können. Das PEAR-Verzeichnis (in Debian normlerweise /usr/share/php/
muss also nun verfügbar gemacht werden, was direkt über „httpd Spezial“ im Adminmenü von Confixx heraus geschehen kann.
Diese Möglichkeit ist relativ einfach, man öffnet einfach die gewünschte Domain oder Benutzer (Menüpunkt „httpd Spezial“ im Confixx Administrationspanel und fügt folgendes ein:
[code]php_admin_value open_basedir /var/www/##user##/html/:/var/www/##user##/phptmp/:/var/www/##user##/files/:/var/www/##user##/atd/:/usr/share/php
php_admin_value include_path .:/usr/share/php
php_admin_value safe_mode_include_dir /usr/share/php
[/code]
Hierbei ist /var/www/ das Standartverzeichnis, was bei einer Confixx-Installation vergeben wird, der genaue Wert steht in der confixx_main.conf oder settings.inc.php von Confixx unter der Variable $user_homeDir
Erklärung: Die Open_Basedir Einstellung wird auf das PEAR-Verzeichnis erweitert, sodass von dort Dateien zu inkludieren sind. Damit php diese auch findet muss in der zweiten Zeile der PEAR-Path zu den Include-Paths hinzugefügt werden. Die dritte Zeite wird nur benötigt, wenn der Safe-Mode AN ist, da die PEAR-Files normalerweise einem anderen Benützer gehören.
Bei mir hats so funktioniert 😉 Wie kann man das jedoch testen?
Ganz einfach. Browsen sie doch ein bisschen in dem Klassen-Repository von PEAR und nehmen sie eine beliebige Klasse heraus. Ich habe mir z.b. DB (normalerweise immer installiert) ausgewählt. Nun muss man nach dem Klick auf das Package einfach auf „Documentation“ und dann „End-user Documentation“ klicken. Nun kann man eine Einführung in das Package lesen, viele Beispiele erläutern wie es funktioniert. Nach einem Klick auf „Introduction – Connect“ kommt man z.b. zu einer einfachen Datenbank verbindung. Alles eben gut dokumentiert.
Greetz
Uli
Supi!
Genau das habe ich für die Installation von eGroupware benötigt!
Danke!!
Grüße,
Webmaster GOSNET
Super Tipp!
Auch bei mir hilft es, dass egroupware pear erkennt. Lediglich folgende Fehlermeldung macht jetzt noch zu schafen:
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/.pearrc) is not within the allowed path(s): (/var/www/web1/html/:/var/www/web1/phptmp/:/var/www/web1/files/:/var/www/web1/atd/:/usr/share/php) in /usr/share/php/PEAR/Config.php on line 616
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/usr/etc/pear.conf) is not within the allowed path(s): (/var/www/web1/html/:/var/www/web1/phptmp/:/var/www/web1/files/:/var/www/web1/atd/:/usr/share/php) in /usr/share/php/PEAR/Config.php on line 625
eGroupware benötigt ausser dem PEAR-Paket, welches bei eGroupware mit angeboten wird, keine weiteren Pakete 🙂 Damit ist auch dieses Problem ganz easy gelöst 🙂 Ansonsten kannst du ja mal die Einstellungen von PEAR konsultieren 🙂
Hallo zusammen,
ich habe jetzt auch vor kurzen egroupware installiert.
und bei mir wird pear ebenfalls nciht erkannt.
ich habe jedoch bereits egw-pear installiert und einige pearfunktionen werden auch akzeptiert, doch die entscheidenden punkte werden nciht angenommen:
vielleicht hat jemand eine idee? wäre sehr dankbar!
MfG
Hoi,
Wenn Pear korrekt installiert wäre, würde die Meldung:
nicht auftauchen 😉
Unter Debian Etch heisst das aktuelle Paket „php-pear“, welches du entsprechend noch im openbasedir (wie oben) freigeben musst. Wenn gar nix hilft: PEAR runterladen und direkt im egw-Verzeichnis ablegen. Geht auch 🙂
Jetzt musst du in der php.ini folgende Werte noch setzen:
Wenn du MySQL nutzt, ist alles korrekt gesetzt, für PGSQL musst du noch die Erweiterung laden. Gleiches mit Oracle Datenbank.
VG,
Uli
Hallo Uli!
vielen Dank erstmal für die schnelle Antwort.
Ich bin leider php-anfänger und dementsprechend auch „noch“ nicht so helle *gg*
Also ich habe einfach pear 1.7.2 runtergeladen und alles unter egw im verzeichnis „pear“ abgelegt.
php.ini kann ich nicht bearbeiten da ich nur einen account gemietet habe. ergo: confixx server gehört nicht mir und die einstellungsmöglichkeiten unter httpd sind recht begrenzt.
aber vielleicht habe ich auch was falsch verstanden. ???
sollte ich mich direkt beim provider melden? oder gibt es vielleicht sogar möglichkeiten die php.ini datei auch als „Mieter“ zu bearbeiten?
Viele Grüße
Foad
Meld dich am besten beim Provider und erklär ihm dein Problem. Vielleicht hat er eine schnelle Lösung für dich 😉
Viele Grüße
Uli