Confixx 3.1.2 und PEAR

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

Veröffentlicht von

Uli

IT-Nerd und Admin

7 Gedanken zu „Confixx 3.1.2 und PEAR“

  1. 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

  2. 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 🙂

  3. 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:

    Passed Überprüfe die php.ini Datei: file_uploads = On: ini_get('file_uploads')='1' = On
    Passed Überprüfe die php.ini Datei: include_path enthält .: ini_get('include_path')='.:/usr/share/pear:/usr/share/php'
    Warning Überprüfe die php.ini Datei: mbstring.func_overload = 7: ini_get('mbstring.func_overload')='0'
    Die Einstellung mbstring.func_overload = 7 ist notwendig um Unicode (utf-8) oder andere mehr-byte (multibyte) Zeichensätze vollständig zu unterstützen.
    *** Bitte nehmen Sie die folgenden Änderungen an Ihrer php.ini Datei vor (/etc): mbstring.func_overload = 7
    *** UND reloaden Sie ihren Webserver, damit die obigen Änderungen in Kraft treten!!!
    Passed Überprüfe die php.ini Datei: magic_quotes_gpc = Off: ini_get('magic_quotes_gpc')='' = Off
    Passed Überprüfe ob die Erweiterung mysql geladen oder ladbar ist: Ja
    Warning Überprüfe ob die Erweiterung pgsql geladen oder ladbar ist: Falsch
    Die pgsql Erweiterung (php extension) wird benötigt, wenn Sie die pgSQL Datenbank einsetzen wollen.
    Passed Überprüfe ob die Erweiterung odbc geladen oder ladbar ist: Ja
    Warning Überprüfe ob die Erweiterung oci8 geladen oder ladbar ist: Falsch
    Die oci Erweiterung (php extension) wird benötigt, wenn Sie die Oracle Datenbank einsetzen wollen.
    Passed Überprüfe ob die Erweiterung mbstring geladen oder ladbar ist: Ja
    Passed Überprüfe ob die Erweiterung session geladen oder ladbar ist: Ja
    Warning Überprüfe ob die Erweiterung ldap geladen oder ladbar ist: Falsch
    Die ldap Erweiterung (php extension) wird benötigt für LDAP as Benutzer oder Addressen Speicher, um gegen LDAP oder Aktive Directory zu authetifizieren. Es wird nicht benötigt für eine standard SQL Installation.
    Passed Überprüfe ob die Erweiterung imap geladen oder ladbar ist: Ja
    Warning Überprüfe ob PEAR installiert ist: Falsch
    PEAR wird benötigt von: Calendar (iCal import+export), FeLaMiMail, EMailAdmin, felamimail, Filemanager, SyncML. PEAR (pear.php.net) ist eine PHP Sammlung und ist überlicherweise in einem Packet namens php-pear.
    Passed Überprüfe ob PEAR::Net_Socket installiert ist: 999.egw-pear
    Warning Überprüfe ob PEAR::Auth_SASL installiert ist: Falsch
    PEAR::Auth_SASL wird benötigt von: EMailAdmin, felamimail. PEAR (pear.php.net) ist eine PHP Sammlung und ist überlicherweise in einem Packet namens php-pear.
    Passed Überprüfe ob PEAR::Net_IMAP installiert ist: 999.egw-pear
    Passed Überprüfe ob PEAR::Net_Sieve installiert ist: 999.egw-pear
    Passed Überprüfe ob PEAR::HTTP_WebDAV_Server installiert ist: 999.egw-pear
    Passed Überprüfe ob PEAR::Log installiert ist: 999.egw-pear
    Passed Überprüfe die GD Unterstützung...: Ja
    Passed Überprüfe Datei Zugriffsrechte von . für nicht schreibbar von jedem (world writeable): web55/web55 drwxr-xr-x

    vielleicht hat jemand eine idee? wäre sehr dankbar!
    MfG

  4. Hoi,
    Wenn Pear korrekt installiert wäre, würde die Meldung:

    Warning Überprüfe ob PEAR installiert ist: Falsch

    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:

    mbstring.func_overload = 7

    Wenn du MySQL nutzt, ist alles korrekt gesetzt, für PGSQL musst du noch die Erweiterung laden. Gleiches mit Oracle Datenbank.

    VG,
    Uli

  5. 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

Schreibe einen Kommentar zu spirit Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.