Apache / PHP Problem bei eGroupware Sync

Apache, Lighttpd, nginx, Cherokee
fulltilt
Posts: 363
Joined: 2006-08-27 02:06

Apache / PHP Problem bei eGroupware Sync

Post by fulltilt » 2009-11-13 10:31

habe einen Kunden mit einer eGroupware Installation, wobei eGroupware an sich problemlos läuft.
Er möchte nun sein PDA (win mobile) mit Funambol syncen, hierbei klappt die Auth und der Login, beim syncen der Kontakte kommt es aber ständig zu einem Abbruch.
Auf dem Server läuft ispCP (stable) modsecurity2 habe ich für dieses Directory erst mal ganz rausgenommen, PHP läuft mit fcgid.
In den Logs finde ich openbase dir Fehler, die Folder /tmp /sync ... liegen wie vorgeschlagen oberhalb /htdocs.
Der openbase Pfad:
open_basedir = "/var/www/virtual/web.tld/:/usr/share/php/"
Wenn ich die syncml.php manuell aufrufe bekomme ich folgendes:

Code: Select all

Warning: require_once(Horde/SyncML.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/virtual/web.tld/htdocs/phpgwapi/inc/horde/Horde/RPC/syncml.php on line 3

Fatal error: require_once() [function.require]: Failed opening required 'Horde/SyncML.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/virtual/web.tld/htdocs/phpgwapi/inc/horde/Horde/RPC/syncml.php on line 3


Kennt jemand eine Lösung?

fulltilt
Posts: 363
Joined: 2006-08-27 02:06

Re: Apache / PHP Problem bei eGroupware Sync

Post by fulltilt » 2009-11-13 11:03

Habe jetzt das openbase so angepasst:

Code: Select all

open_basedir = "/var/www/virtual/web.tld/:/usr/share/php:/usr/share/php/PEAR:/var/www/virtual/web.tld/files:/var/www/virtual/web.tld/backups:/var/www/virtual/web.tld/tmp"


bekomme immer noch die gleiche Meldung:

Code: Select all

Failed opening required 'Horde/SyncML.php' (include_path='.:/usr/share/php:/usr/share/pear')


also hier liegt pear in /usr/share/php
bei der Fehlermeldung /usr/share/pear
Soll ich einen Link von /usr/share/php nach /usr/share/pear (existiert nicht) setzen ?
matzewe01 wrote:Entweder das open basedir richtig setzen oder das require entsprechend anpassen.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11599
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Apache / PHP Problem bei eGroupware Sync

Post by Joe User » 2009-11-13 13:16

fulltilt wrote:Habe jetzt das openbase so angepasst:

Code: Select all

open_basedir = "/var/www/virtual/web.tld/:/usr/share/php:/usr/share/php/PEAR:/var/www/virtual/web.tld/files:/var/www/virtual/web.tld/backups:/var/www/virtual/web.tld/tmp"

Das muss ausreichen:

Code: Select all

open_basedir = "/var/www/virtual/web.tld:/usr/share/php"


fulltilt wrote:bekomme immer noch die gleiche Meldung:

Code: Select all

Failed opening required 'Horde/SyncML.php' (include_path='.:/usr/share/php:/usr/share/pear')

Existiert /usr/share/php/PEAR/Horde/SyncML.php denn? Darf der PHPuser auch darauf lesend zugreifen?

fulltilt wrote:also hier liegt pear in /usr/share/php
bei der Fehlermeldung /usr/share/pear

Lies die Fehlermeldung nochmal genauer.

fulltilt wrote:Soll ich einen Link von /usr/share/php nach /usr/share/pear (existiert nicht) setzen ?

Nein!
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

fulltilt
Posts: 363
Joined: 2006-08-27 02:06

Re: Apache / PHP Problem bei eGroupware Sync

Post by fulltilt » 2009-11-14 09:57

Habe jetzt beides getestet einmal mit dem Link auf pear in /usr/share und auch mit dem Standard openbase Pfad.
Dieser sollte ja normalerweise auch die Folder /tmp, backup oberhalb /htdocs miteinschliessen, hierbei fängt er wieder an zu meckern über openbase restrictions:

Code: Select all

open_basedir = "/var/www/virtual/web.tld/:/usr/share/php/"

anscheinend muss ich jeden einzelen Ordner auch Subfolder eir /tmp/sync extra aufführen ...

Code: Select all

open_basedir = "/var/www/virtual/web.tld/:/usr/share/php:/var/www/virtual/web.tld/files:/var/www/virtual/web.tld/backups:/var/www/virtual/web.tld/tmp:/var/www/virtual/web.tld/tmp/sync"

Laut EGW soll beim Aufruf von:
http://web.tld/phpgwapi/inc/horde/Horde/RPC/syncml.php
keine Fehlermeldung erfolgen hier bekomme ich folgendes:

Code: Select all

od_fcgid: stderr: PHP Fatal error:  require_once() [<a href='function.require'>function.require</a>]: Failed opening required 'Horde/SyncML.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/virtual/web.tld/htdocs/phpgwapi/inc/horde/Horde/RPC/syncml.php on line 3

also wieder include_path='.:/usr/share/php:/usr/share/pear
und in /usr/share/pear ist kein pear das wäre in /usr/share/php
aber auch mit der Verlinkung dorthin gleiche Fehlermeldung ...
in Zeile 3 syncml.php:
include_once 'Horde/SyncML/Command.php';
Command.php siehe ganz unten >
Existiert /usr/share/php/PEAR/Horde/SyncML.php denn? Darf der PHPuser auch darauf lesend zugreifen?

Nein - diese liegt im Web unter:
/var/www/virtual/web.tld/htdocs/phpgwapi/inc/horde/Horde/RPC/syncml.php

Habt Ihr noch eine Idee?
Gruss

comand.php

Code: Select all

<?php
include_once 'Horde/SyncML/State.php';
/**
 * The Horde_SyncML_Command class provides a super class fo SyncBody commands.
 *
 * $Horde: framework/SyncML/SyncML/Command.php,v 1.4 2004/07/03 15:26:46 chuck Exp $
 *
 * Copyright 2003-2004 Anthony Mills <amills@pyramid6.com>
 *
 * See the enclosed file COPYING for license information (LGPL). If you
 * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
 *
 * @author  Anthony Mills <amills@pyramid6.com>
 * @version $Revision: 18844 $
 * @since   Horde 3.0
 * @package Horde_SyncML
 */
class Horde_SyncML_Command {

    var $_cmdID;
    var $_xmlStack;
    var $_chars;
    function &factory($command, $params = null)
    {
        include_once 'Horde/SyncML/Command/' . $command . '.php';
        $class = 'Horde_SyncML_Command_' . $command;
        if (class_exists($class)) {
            return $cmd = &new $class($params);
        } else {
            Horde::logMessage('SyncML: Class definition of ' . $class . ' not found.', __FILE__, __LINE__, PEAR_LOG_ERR);
            require_once 'PEAR.php';
            return PEAR::raiseError('Class definition of ' . $class . ' not found.');
        }
    }

    function output($currentCmdID, $output)
    {
    }

    function startElement($uri, $localName, $attrs)
    {
        $this->_xmlStack++;
    }

    function endElement($uri, $element)
    {
        switch ($this->_xmlStack) {
        case 2:
            if ($element == 'CmdID') {
                $this->_cmdID = intval(trim($this->_chars));
            }
            break;
        }

        if (isset($this->_chars)) {
            unset($this->_chars);
        }

        $this->_xmlStack--;
    }

    function characters($str)
    {
       $tempValue = trim($str);
       
       if(empty($tempValue)) return;
       
        if (isset($this->_chars)) {
            $this->_chars = $this->_chars . $str;
        } else {
            $this->_chars = $str;
        }
    }

}

Last edited by fulltilt on 2009-11-14 10:12, edited 1 time in total.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11599
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Apache / PHP Problem bei eGroupware Sync

Post by Joe User » 2009-11-14 10:43

fulltilt wrote:
Joe User wrote:Existiert /usr/share/php/PEAR/Horde/SyncML.php denn? Darf der PHPuser auch darauf lesend zugreifen?

Nein - diese liegt im Web unter:
/var/www/virtual/web.tld/htdocs/phpgwapi/inc/horde/Horde/RPC/syncml.php

Das sind völlig verschiedene Pfade ("Horde/RPC" und "Horde") und Files ("SyncML.php" und "syncml.php"). Sicher das es kein Bug in der WebApp ist, oder Du "find" falsch gefüttert hast?
BTW: "/usr/share/pear" und "/usr/share/php" sind für Dein Problem vollkommen irrelevant, da hier "." zum Tragen kommt.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

fulltilt
Posts: 363
Joined: 2006-08-27 02:06

Re: Apache / PHP Problem bei eGroupware Sync

Post by fulltilt » 2009-11-14 10:55

hm - also ich denke auch das es mit pear nichts zu tun hat, sonst würde die Anwendung nicht funktionieren ...
von den openbase restrictions kommt jetzt auch nichts weiter, ich verwende hier die aktuellste Version von eGroupware, aber ich glaube langsam auch das hier ein Bug in der Anwendung ist.

Joe User wrote:Das sind völlig verschiedene Pfade ("Horde/RPC" und "Horde") und Files ("SyncML.php" und "syncml.php"). Sicher das es kein Bug in der WebApp ist, oder Du "find" falsch gefüttert hast?
BTW: "/usr/share/pear" und "/usr/share/php" sind für Dein Problem vollkommen irrelevant, da hier "." zum Tragen kommt.