¿Tienes un Warning is_readable() open_basedir restriction in effect en tu Zend_Loader?

Debugando mi aplicación web ya en producción, me han salido los típicos errores producto de divergencias de configuración de entorno. Claro, nunca hay dos entornos iguales. Sigo en el mismo VPS de Nominalia que el del post anterior, uno que tiene un Plesk 9.5.4.

Preguntas sin respuesta

Esta vez me he tenido que pelear con la restricción open_basedir de mi hoster porque el Zend_Loader.php me lanza un error en la línea 198.

Efectivamente, open_basedir viene así por defecto:

php_admin_value open_basedir "/var/www/vhosts/your-domain.com/httpdocs:/tmp"

Por lo tanto, he editado mi archivo /var/www/vhosts/your-domain.com/conf/httpd.include y allí donde ponía

php_admin_value open_basedir "/var/www/vhosts/your-domain.com/httpdocs:/tmp"

he puesto

php_admin_value open_basedir "none"

Antes:

root@vds-993514:/var/www/vhosts/your-domain.com/conf# cat httpd.include | grep -n open_basedir
43:		php_admin_value open_basedir "/var/www/vhosts/your-domain.com/httpdocs:/tmp"
48:		php_admin_value open_basedir "/var/www/vhosts/your-domain.com/httpdocs:/tmp"
102:		php_admin_value open_basedir "/var/www/vhosts/your-domain.com/httpdocs:/tmp"
107:		php_admin_value open_basedir "/var/www/vhosts/your-domain.com/httpdocs:/tmp"
root@vds-993514:/var/www/vhosts/your-domain.com/conf#

Después:

root@vds-993514:/var/www/vhosts/your-domain.com/conf# cat httpd.include | grep -n open_basedir
43:		php_admin_value open_basedir "none"
48:		php_admin_value open_basedir "none"
102:		php_admin_value open_basedir "none"
107:		php_admin_value open_basedir "none"
root@vds-993514:/var/www/vhosts/your-domain.com/conf#

Finalmente he reiniciado Apache y el error se ha ido.

Este tema se discute en este hilo de Zend Framework issue tracker. Hay quien propone hackear el código de

public static function isReadable($filename)

del mismo Zend_Loader.php bajo la propia cuenta y riesgo del desarrollador, cosa que yo no veo muy clara.

Así pues espero que este post te sirva de ayuda. ¡A cambiar la directiva open_basedir de nuestros entornos pues!