viernes, 17 de junio de 2011

Instalar Symfony y Cherokee en Arch Linux

Symfony
Cherokee
El lenguaje de programación PHP es uno de los más usados para desarrollar sitios web de internet. Su popularidad se debe a su sencillez y su clara orientación al mundo de las páginas web. Es un lenguaje de scripting que ha incoporado y mejorado el soporte para la orientación a objetos en las últimas versiones, yendo de esta forma hacia la dirección que en estos tiempos han seguido la mayoría de lenguajes. Para proyectos pequeños y sencillos usar únicamente scripts de PHP puede ser suficiente pero en cuanto la complejidad y tamaño del proyecto aumenta es necesario buscar soluciones para que el desarrollo y mantenimiento posterior no se convierta en un infierno, en la web de Symfony tienen un excelente artículo de por que son necesarios y con estos motivos surgen los frameworks. En PHP en concreto hay varios disponibles, quiza los más conocidos sean: Zend, Prado, Yii y Symfony aunque hay otros.

En esta entrada vamos a ver como instalar y configurar uno de ellos, Symfony 2 que sigue el tradicional modelo MVC y que nos va a proporcionar las facilidades necesarias para los tipos de proyectos más habituales. Antes de poder utilizarlo necesitaremos un servidor web con soporte para interpretar PHP. En esta otra entrada puedes ver como instalar un servidor web Cherokee con PHP en Arch Linux.

Lo primero que necesitaremos será descargar el paquete del framework Symfony para ello nos dirigimos a la página de descarga del proyecto y elegimos descargar la versión que incluye los «vendors». Una vez descargado crearemos un servidor virtual para la aplicación, para ello arrancamos el servidor de administración de cherokee con el siguiente comando e introducimos http://localhost:9090 en nuestro navegador favorito:

$ sudo cherokee-admin -b -u

Crearemos un servidor con soporte para PHP desde el apartado vServers. Una vez hayamos introducido los datos básicos que nos pide el asistente crearemos dos reglas para servir el contenido estático necesario para mostrar los estilos e imagenes corretamente cuando cherokee muestra un listado de archivos. Para ello vamos a la pestaña Comportamiento del servidor virtual y creamos las reglas para /cherokee_themes y /icons, para crearlas nos podemos fijar en como están en servidor virtual por defecto y las copiaremos con el mismo contenido.



Ahora descomprimiremos el paquete de Symfony y copiamos la carpeta raiz Symfony a /var/www/ para que el servidor web pueda ejecutar la aplicación. Una vez lo hayamos hecho accederemos a http://localhost/Symfony/app/config.php con el navegador en la que Symfony comprobará el estado de la instalación mostrándonos los errores y las recomendaciones que nos hace. Para solventarlos todos deberemos instalar los siguientes paquetes:

$ yaourt -S php-gd php-apc php-intl php-sqlite

Además deberemos cambiar los permisos a carpetas para Symfony pueda trabajar:

$ sudo chmod 775 -R /var/www/Symfony/app/cache/
$ sudo chmod 775 -R /var/www/Symfony/app/logs/

A continuación deberemos modificar el archivo de configuración de php (/etc/php/php.ini) añadiendo a la variable open_basedir lo siguiente:

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/var/www/:/usr/:/bin/:/sbin/

También modificaremos la variable date.timezone a la correspondiente a nuestra zona horaria:

date.timezone = Europe/Madrid

Además en el apartado de extensiones del archivo php.ini descomentaremos las siguientes:

extension=apc.so
extension=iconv.so
extension=intl.so
extension=json.so
extension=mysqli.so
extension=pdo_sqlite.so
extension=posix.so
extension=sqlite3.so

Tras estas modificaciones la página http://localhost/Symfony/app/config.php nos indicará que nos nos queda nada pendiente por hacer y podremos pulsar en el enlace «Configure your Symfony Application online» que nos permitirá configurar la base de datos que utilizaremos entre otras cosas básicas. Ya estamos listos para ir a la página de inicio que tenemos por el momento en la aplicación http://localhost/Symfony/web/app_dev.php/.


Ya solo nos queda empezar a desarrollar algo, pero eso quizá sea tema para otra entrada.

Referencia:
http://symfony.com/
http://symfony.com/doc/current/
http://elblogdepicodev.blogspot.com/2011/05/servidor-web-ligero-cherokee.html