Symfony 1.2, la guía definitiva

3.5. Resolución de problemas

Si se producen errores durante la instalación, lo mejor es intentar mostrar los mensajes de error en el navegador o en la consola de comandos. Normalmente los errores muestran pistas sobre su posible causa y hasta pueden contener enlaces a algunos recursos disponibles en Internet sobre ese problema.

3.5.1. Problemas típicos

Si continuan los problemas con Symfony, puedes comprobar los siguientes errores comunes:

  • Algunas instalaciones de PHP incluyen tanto PHP 4 como PHP 5. En este caso, suele ser habitual que el comando de PHP 5 sea php5, por lo que se debe ejecutar la instrucción php5 symfony en vez de symfony. Puede que también sea necesario añadir la directiva SetEnv PHP_VER 5 en el archivo de configuración .htaccess e incluso puede que tengas que renombrar los scripts del directorio web/ para que tengan una extensión .php5 en vez de la tradicional extensión .php. Cuando se intenta ejecutar Symfony con PHP 4, el error que se muestra es similar al siguiente:
Parse error, unexpected ',', expecting '(' in .../symfony.php on line 19.
  • El límite de memoria utilizado por PHP se define en el archivo de configuración php.ini y debería valer por lo menos 32M (equivalente a 32 MB). El síntoma común de este problema es cuando se muestra un mensaje de error al instalar Symfony mediante PEAR o cuando se utiliza la línea de comandos:
Allowed memory size of 8388608 bytes exhausted
  • La directiva zend.ze1_compatibility_mode del archivo de configuración de PHP (php.ini) debe tener un valor igual a off. Si no es así, cuando se intenta acceder a cualquier script, se muestra el siguiente mensaje de error:
Strict Standards: Implicit cloning object of class 'sfTimer'because of 'zend.ze1_compatibility_mode'
  • Los directorios log/ y cache/ del proyecto deben tener permiso de escritura para el servidor web. Si se ejecuta una aplicación sin estos permisos, se muestra la siguiente excepción:
sfCacheException [message] Unable to write cache file"/usr/miproyecto/cache/frontend/prod/config/config_config_handlers.yml.php"
  • La ruta del sistema debe incluir la ruta al comando php, y la directiva include_path del archivo de configuración de PHP (php.ini) debe contener una ruta a PEAR (en el caso de que se utilice PEAR).

  • En ocasiones, existe más de un archivo php.ini en el sistema (por ejemplo cuando se instala PHP mediante el paquete WAMP). En estos casos, se puede realizar una llamada a la función phpinfo() de PHP para saber la ruta exacta del archivo php.ini que está utilizando la aplicación.

Nota Aunque no es obligatorio, es muy recomendable por motivos de rendimiento establecer el valor off a las directivas magic_quotes_gpc y register_globals del archivo de configuración de PHP (php.ini).

3.5.2. Recursos relacionados con Symfony

Existen varias formas de encontrar soluciones a los problemas típicos y que ya les han ocurrido a otros usuarios:

  • El foro de instalación de Symfony (http://www.symfony-project.org/forum/) contiene muchas preguntas sobre configuraciones en diferentes plataformas, entornos y servidores.
  • La lista de correo de usuarios de Symfony (http://groups.google.es/group/symfony-es) permite buscar en sus archivos de mensajes, por lo que es posible que encuentres a otros usuarios que han pasado por los mismos problemas.
  • El wiki de Symfony (http://trac.symfony-project.org/#Installingsymfony) contiene tutoriales detallados paso a paso sobre la instalación de Symfony que han sido creados por otros usuarios.

Si no encuentras la respuesta en esos recursos, puedes preguntar a la comunidad de Symfony. Las preguntas puedes hacerlas en el foro, en la lista de correo e incluso en el canal IRC de Symfony (#symfony) para obtener la respuesta de los miembros más activos de la comunidad.