Roundcube Community Forum

 

Problem bei Installation / include_path

Started by vns294, February 21, 2009, 04:22:41 PM

Previous topic - Next topic

vns294

Hallo,

ich habe einen Server mit Plesk 8.6 und PHP 5.2.6

Nachdem ich den Ordner "psa-horde" gesichert habe und die Dateien da reinkopiert habe, wollte ich Installation testen und erhalte folgende Fehlermeldung:

Fatal error: ini_set/set_include_path does not work.

Was genau muss ich da machen oder welche Einstellung muss ich in der php.ini machen?

Kann mir jemand bitte helfen? Bin schon verzweifelt :(

rosali

Ich befürchte das geht nicht ohne Hilfe Deines Hosts. Es scheint als erlauben die PHP Einstellungen keine Änderungen der PHP.INI settings per Script.
Regards,
Rosali

vns294

Ich habe vollen Zugriff auf den Server. Welche Einstellung muss ich ändern? Also in der php.ini?

lacri

#3
Das einfachste ist du setzt den include_path direkt in der php.ini :)

oder schau mal ob ini_set bei disable_functions verboten wurde, dann kannst Du es dort auch herausnehmen so das es erlaubt ist.

vns294

Hab nachgeschaut. In allen php.ini Dateien steht bei disable_functions nichts. Also bei /etc/php5/apache2/php.ini, /etc/php5/cli/php.ini und /etc/php5/fastcgi/php.ini

Ich habe auch schon probiert den Pfad direkt in include_path zu kopieren. Wenn ich phpinfo() aufrufe, dann wird der pfad auch angezeigt.

Local Value
include_path   
.:.:/usr/share/php5:/usr/share/php5/PEAR:/usr/share/psa-horde/:/usr/share/psa-horde/program:/usr/share/psa-horde/program/lib:/usr/share/psa-horde/program/include:/usr/share/psa-horde:/usr/share/psa-horde/lib:/usr/share/psa-pear   


Master Value
include_path
.:.:/usr/share/php5:/usr/share/php5/PEAR:/usr/share/psa-horde/:/usr/share/psa-horde/program:/usr/share/psa-horde/program/lib:/usr/share/psa-horde/program/include:/usr/share/psa-horde:/usr/share/psa-horde/lib:/usr/share/psa-pear

Trotzdem funktionierts nicht. Mache ich was falsch beim include_path oder was kann ich noch probieren?

Vielen Dank für die Hilfe

lacri

die Fehlermeldung ist noch die selbe ?

Fatal error: ini_set/set_include_path does not work.

existiert der Pfad der bei include_path angegeben wird ?

ich vermute fast da du den horde Ordner weggesichert hast meckert er deshalb weil der Horde Ordner zb. /usr/share/psa-horde/ nicht mehr existiert ...

Am Roundcube liegt das sicherlich nicht.

Zumindest so meine kleine schnelldiagnose :)

vns294

Doch der psa-horde Ordner existiert. Hab die Horde Dateien in diesem Ordner gesichert und dann die Dateien von RoundCuber reinkopiert.

Die Pfade extistieren alle.

Liegt es vielleicht an dem .:.: am Anfang von include_path?

include_path .:.:/usr/share/php5:/usr/share/php5/PEAR: ...

lacri

glaub ich nicht ... kannst du doch aber einfach mal testen indem du das .: oder auch .:.: entfernst. Dürfte aber nicht daran liegen.

vns294

Hat nichts gebracht. Bin langsam verzweifelt.

Habe keine Idee mehr woran es liegen könnte.

Was könnte ich noch ausprobieren??

rosali

#9
Liegt da vielleicht irgenwo in einem übergeordneten Verzeichnis eine .htaccess, die die Funktion ini_set bzw. set_include_path ausschaltet?

Es liegt definitiv daran, dass Dein Apache/PHP "set_include_path" nicht zulässt. Deswegen bricht RoundCube im Script ./program/includes/inset.php bei ...


if (set_include_path($include_path) === false) {
  die(
'Fatal error: ini_set/set_include_path does not work.');
}


... ab.

Du hast ja den include path schon manuell gesetzt. Kommentiere einfach mal die "die" Anweisung aus. Richtig zu laufen kriegst Du es aber mit Sicherheit erst, wenn "set_include_path" arbeitet.
Regards,
Rosali

vns294

Es funktioniert!!!! Habs geschafft.

Folgende Lösung für alle die das gleiche Problem bei einem suse 10.3 server mit Plesk 8.6 und PHP 5.2.6 haben:

1. Neuen Ordner in /usr/share/ erstellen. Zum Beispiel roundcubemail
2. roundcube runterladen und darin entpacken
3. im Ordner config bei den inc Dateien den .dist entfernen
4. im Ordner program/include in der iniset.php folgende Zeile auskommentieren
//if (set_include_path($include_path) === false) {
  //die('Fatal error: ini_set/set_include_path does not work.');
//}
5. Datenbank wie gewohnt erstellen und in der db.inc.php die Verbindungseinstellungen korrigieren

DANN:

In der Datei /etc/apache2/conf.d/zz010_psa_httpd.conf (erst ne sicherung machen) folgenden Abschnitt anpassen.

Hier ein Beispiel:

                         \
                        >
        DocumentRoot /usr/share/roundcubemail/
        ServerName webmail
        ServerAlias webmail.*
        UseCanonicalName Off
       
               
                        php_admin_flag engine on
                        php_admin_flag magic_quotes_gpc off
                        php_admin_flag safe_mode off
                        php_admin_value open_basedir "/usr/share/roundcubemail"
                        php_admin_value include_path "/usr/share/roundcubemail/:/usr/share/roundcubemail/program:/usr/share/roundcubemail/program/lib:/usr/share/roundcubemail/program/include:/usr/share/roundcubemail:/usr/share/roundcubemail/lib:/usr/share/psa-pear:."
               

               
                        php_admin_flag engine on
                        php_admin_flag magic_quotes_gpc off
                        php_admin_flag safe_mode off
                        php_admin_value open_basedir "/usr/share/roundcubemail"
                        php_admin_value include_path "/usr/share/roundcubemail/:/usr/share/roundcubemail/program:/usr/share/roundcubemail/program/lib:/usr/share/roundcubemail/program/include:/usr/share/roundcubemail:/usr/share/roundcubemail/lib:/usr/share/psa-pear:."
               

                Order allow,deny
                Allow from all
       






Dann webmail.meineDomain.de aufrufen und schwups müsste es funktionieren.

So mal auf die schnelle. Geb keine Garantie drauf

horfic

Es geht auch einfacher!
Lösche einfach aus der /etc/apache2/conf.d/zz010_psa_httpd.conf
die php_admin_value include_path raus und restarte apache2 und es geht!

bezci

Quote from: vns294;17247Es funktioniert!!!! Habs geschafft.

Folgende Lösung für alle die das gleiche Problem bei einem suse 10.3 server mit Plesk 8.6 und PHP 5.2.6 haben:

1. Neuen Ordner in /usr/share/ erstellen. Zum Beispiel roundcubemail
2. roundcube runterladen und darin entpacken
3. im Ordner config bei den inc Dateien den .dist entfernen
4. im Ordner program/include in der iniset.php folgende Zeile auskommentieren
//if (set_include_path($include_path) === false) {
  //die('Fatal error: ini_set/set_include_path does not work.');
//}
5. Datenbank wie gewohnt erstellen und in der db.inc.php die Verbindungseinstellungen korrigieren

DANN:

In der Datei /etc/apache2/conf.d/zz010_psa_httpd.conf (erst ne sicherung machen) folgenden Abschnitt anpassen.

Hier ein Beispiel:

                         \
                        >
        DocumentRoot /usr/share/roundcubemail/
        ServerName webmail
        ServerAlias webmail.*
        UseCanonicalName Off
       
               
                        php_admin_flag engine on
                        php_admin_flag magic_quotes_gpc off
                        php_admin_flag safe_mode off
                        php_admin_value open_basedir "/usr/share/roundcubemail"
                        php_admin_value include_path "/usr/share/roundcubemail/:/usr/share/roundcubemail/program:/usr/share/roundcubemail/program/lib:/usr/share/roundcubemail/program/include:/usr/share/roundcubemail:/usr/share/roundcubemail/lib:/usr/share/psa-pear:."
               

               
                        php_admin_flag engine on
                        php_admin_flag magic_quotes_gpc off
                        php_admin_flag safe_mode off
                        php_admin_value open_basedir "/usr/share/roundcubemail"
                        php_admin_value include_path "/usr/share/roundcubemail/:/usr/share/roundcubemail/program:/usr/share/roundcubemail/program/lib:/usr/share/roundcubemail/program/include:/usr/share/roundcubemail:/usr/share/roundcubemail/lib:/usr/share/psa-pear:."
               

                Order allow,deny
                Allow from all
       






Dann webmail.meineDomain.de aufrufen und schwups müsste es funktionieren.

So mal auf die schnelle. Geb keine Garantie drauf

Thank you so much man, it worked!