Pregunta

He probado ambos:

ini_set('include_path', '.:/usr/share/php5:/usr/share/php5/PEAR:lib:app/classes');

y también :

php_value include_path ".:/usr/share/php5:/usr/share/php5/PEAR:lib:app/classes"

en el archivo .htaccess.

Ambos métodos en realidad hacer trabajo pero sólo de forma intermitente.Es decir, funcionarán bien para aproximadamente 37 solicitudes de páginas y luego fallarán en aproximadamente 42 solicitudes de páginas, lo que resultará en una llamada require() que provocará un error fatal que bloqueará efectivamente el sitio.

¡Ni siquiera estoy seguro de por dónde empezar a intentar descubrir qué está pasando!


@nota

Parece que duplicó el directorio actual en su ruta de inclusión.Intente eliminar uno de los '.:' de su cadena.

La versión en script fue originalmente

ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . 'lib' . PATH_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'classes');

y por lo tanto el .:.:venía del camino existente:

ini_get('include_path')

Intenté eliminarlo de todos modos y el problema persiste.

¿Fue útil?

Solución

Resultó que el problema estaba relacionado con un error de PHP en 5.2.5.

Configurar un "admin_flag" para include_path provocó que la ruta de inclusión estuviera vacía en algunas solicitudes, y Plesk establece un admin_flag en la configuración predeterminada para una cosa u otra.Una actualización de PHP resolvió el problema.

http://bugs.php.net/bug.php?id=43677

Otros consejos

Has probado set_include_path()?.Como beneficio, esto devuelve falso en caso de falla, lo que le permite al menos detectar el suceso y generar algunos datos de depuración significativos.Además, deberías utilizar la constante PATH_SEPARATOR ya que difiere entre windows/*nix.

Como ejemplo específico:

set_include_path('.' . PATH_SEPARATOR . './app/lib' . PATH_SEPARATOR . get_include_path());

(get_include_path() al final significa que cualquier ruta configurada en ini/htaccess permanecerá)

Parece que duplicó el directorio actual en su ruta de inclusión.Intente eliminar uno de los '.:' de su cadena.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top