fonction set_include_path ne fonctionne pas, PHP 5.2.13
-
27-10-2019 - |
Question
Nous utilisons un serveur VPS dans notre entreprise et je suis en train d'installer l'interface du webmail Roundcube
Mais je ne peux même pas à la phase de configuration, car la fonction set_include_path ne trouve pas le travail et le script ne peut pas les fichiers de configuration nécessaires.
J'obtiens une erreur comme "Erreur fatale, ini_set / set_include_path fonction ne fonctionne pas."
Je suppose que certains paramètres php est à l'origine, mais je ne sais pas lequel.
Je serais heureux si je pouvais obtenir de l'aide.
Merci à l'avance
// EDIT Voici les codes du script
ini_set('error_reporting', E_ALL&~E_NOTICE);
ini_set('display_errors', 1);
define('INSTALL_PATH', realpath(dirname(__FILE__) . '/../').'/');
define('RCMAIL_CONFIG_DIR', INSTALL_PATH . 'config');
$include_path = INSTALL_PATH . 'program/lib' . PATH_SEPARATOR;
$include_path .= INSTALL_PATH . 'program' . PATH_SEPARATOR;
$include_path .= INSTALL_PATH . 'program/include' . PATH_SEPARATOR;
$include_path .= ini_get('include_path');
set_include_path($include_path);
require_once 'utils.php';
require_once 'main.inc';
La solution
Je le fais de la mémoire, il pourrait ne pas être tout à fait raison, mais je pense que peut-être vous confondez le chemin et séparateurs répertoire. Il peut aussi être une façon plus agréable de le faire que ce que vous faites (à savoir l'assemblage du chemin tout à la fois). Essayez quelque chose comme ceci:
define('INSTALL_PATH', dirname(dirname(__FILE__)));
set_include_path(get_include_path() . PATH_SEPARATOR . INSTALL_PATH . DIRECTORY_SEPARATOR . 'program' . DIRECTORY_SEPARATOR . 'lib');
set_include_path(get_include_path() . PATH_SEPARATOR . INSTALL_PATH . DIRECTORY_SEPARATOR . 'program' . DIRECTORY_SEPARATOR . 'include');
set_include_path(get_include_path() . PATH_SEPARATOR . INSTALL_PATH . DIRECTORY_SEPARATOR . 'program');
En général, je Compress un peu avec imploser, car DIRECTORY_SEPARATOR
est si bavard:
...PATH_SEPARATOR . implode(DIRECTORY_SEPARATOR, Array(INSTALL_PATH, 'program', 'lib'));
Je pense par (le plus important) changer certaines de vos CHEMINs à directorys, et (éventuellement) à l'aide d'appels get_include_path
et set_include_path
supplémentaires, il sera plus facile à lire, portable et pourrait bien fonctionner correctement.