Instalar Symfony2 desde cero

julio 6, 2011

Nos vamos acercando inevitablemente al cambio de Symfony 1.x a Symfony2 y la conclusión que he sacado de mi asistencia al evento #desymfony es que cuanto antes nos pongamos con ello, mucho mejor. Symfony2 mejora a su predecesor en numerosos aspectos y se convertirá en el framework definitivo para el desarrollo de aplicaciones web en el futuro. Si quieres saber todas las nuevas características de esta versión, te recomiendo que visites la web oficial de Symfony2: http://symfony.com/.

En este primer post procederemos a su instalación. Personalmente, me gusta programar en local (en mi propio ordenador) y una vez haya acabado con el desarrollo o quiera probarlo en un entorno de producción, hacer el deploy a un servidor real. Por ello, primero voy a explicar como configurar un servidor web en nuestro ordenador y después procederemos con la instalación de Symfony2.

La instalación la voy a hacer en un entorno Linux con la distribución Ubuntu 11.04. Adaptar los comandos según nuestra distribución (o sistema operativo).

1) Primero instalamos Apache

# apt-get install apache2 apache2.2-common apache2-utils ssl-cert  apache2-mpm-prefork

2) Instalamos y habilitamos el módulo para utilizar modrewrite

# apt-get install libapache2-mod-proxy-html

Para habilitar el modulo en apache, ejecutamos:

# a2enmod rewrite

3) Instalamos PHP5

# apt-get install php5 libapache2-mod-php5 php5-common php5-intl

4) Instalamos Mysql

# apt-get install mysql-server mysql-client php5-mysql

5) Por último instalamos phpmyadmin (opcional)

# apt-get install phpmyadmin

Con estos sencillos pasos ya tendremos un servidor web instalado en nuestro ordenador.

Ahora continuamos con la instalación de Symfony2. Mi IDE favorito para programar es Netbeans, por lo que es el que utilizaré en este ejemplo. Si no lo hemos cambiado, nuestro workspace (donde se encuentran los proyectos a los que podemos acceder desde Netbeans) lo encontraremos en la carpeta NetBeansProjects en nuestra carpeta Home.

Procedemos a crear una nueva carpeta con el nombre de nuestro proyecto en el workspace de Netbeans:

$ mkdir $HOME/NetBeansProjects/miproyecto

Entramos en la carpeta que acabamos de crear:

$ cd $HOME/NetBeansProjects/miproyecto

Descargamos Symfony2 (comprueba la última versión en http://symfony.com/download):

$ wget http://symfony.com/download?v=Symfony_Standard_Vendors_2.0.0-RC4.tgz

Y descomprimimos:

$ tar zxvf Symfony_Standard_Vendors_2.0.0-RC4.tgz

Borramos el archivo comprimido que hemos descargado:

$ rm Symfony_Standard_Vendors_2.0.0-RC4.tgz

Ya tenemos instalado un proyecto básico en Symfony2. Ahora vamos a configurar Apache para poder acceder desde nuestro navegador favorito.

Creamos un nuevo archivo donde irá la configuración de nuestra web:

# vi /etc/apache2/sites-available/miproyecto

Que contendrá el siguiente contenido (cambia «jonseg» por el nombre de tu carpeta Home):

<VirtualHost *:80>
   ServerAdmin email@email.com
   DocumentRoot /home/jonseg/NetBeansProjects/miproyecto/Symfony/web
   ServerName miproyecto.com
   ServerAlias *.miproyecto.com
   ErrorLog /var/log/apache2/miproyecto_error.log
   CustomLog /var/log/apache2/miproyecto_access.log common
   DirectoryIndex index.php
   <Directory "/home/jonseg/NetBeansProjects/miproyecto/Symfony/web">
        Options Indexes FollowSymLinks
        Order Allow,Deny
        Allow from all
        AllowOverride all
        <IfModule mod_php5.c>
           php_admin_flag engine on
           php_admin_flag safe_mode off
           php_admin_value open_basedir none
        </ifModule>
   </Directory>
</VirtualHost>

Creamos un enlace simbólico de este archivo en sites-enabled para indicar que es una web activa:

# ln -s /etc/apache2/sites-available/miproyecto /etc/apache2/sites-enabled/miproyecto

Para que se apliquen los cambios, reiniciamos el servidor Apache:

# /etc/init.d/apache2 restart

Por último, forzamos en el archivo /etc/hosts la ip de nuestra web, que en este caso será localhost o 127.0.0.1

# vim /etc/hosts

Y añadimos esta línea al final del fichero:

127.0.0.1 www.miproyecto.com miproyecto.com

Después de todo esto, ya podremos acceder a nuestro nuevo proyecto en Symfony2 desde el navegador escribiendo la url que hemos configurado.

Como primer paso, debemos comprobar si cumplimos con la configuración básica para que funcione nuestro proyecto. Lo haremos desde la siguiente url:

http://miproyecto.com/config.php

Symfony2 config

Como vemos, nos encontramos con dos problemas (podríamos tener más, deberemos resolverlos según sea necesario). En este caso el error es que las carpetas app/cache y app/logs no tienen los permisos necesarios.

Lo arreglaremos así:

chmod 777 $HOME/NetBeansProjects/miproyecto/Symfony/app/cache
chmod 777 $HOME/NetBeansProjects/miproyecto/Symfony/app/logs

Una vez arreglados los problemas, ya podemos acceder a nuestro proyecto web con Symfony2 mediante esta url:

http://miproyecto.com/app_dev.php/
Symfony2 home

En próximos artículos nos iremos adentrando poco a poco en el desarrollo de Bundles, las plantillas con Twig, etc.

Cualquier duda, en los comentarios!

Tags ; , , , , ,

11 comentarios

    felixgomezlopez Jul 06, 2011

    Muy claro y conciso. Enhorabuena!.
    Ojalá abundasen los tutoriales con esta calidad.
    A la espera de los siguientes.

    Responder
    XyculA Jul 06, 2011

    Excelente, soy nuevo y cada vez me gusta mas symfony, excelente tutorial y consiso. ojala ke en un futuro cercano aya manuales de ejemplos de inicio, intermedio y avanzado. gracias.!!!! EXcelente amigo

    Responder
    Gonzalo Jul 23, 2011

    Muy bueno se espera el próximo articulo

    Responder
    jparra Ago 05, 2011

    Justo lo que buscaba symfony2 apache y ubuntu 11.04, carpetas de proyectos netbeans enlaces a /var/www me ha funcionado perfecto.

    Muchisimas Gracias.

    Responder
    Sebastian Ago 21, 2011

    Gracias me fue de mucha ayuda, yo instale en windows con xampp ultima versión y funciona a la primera.

    Responder
    Sebastian Sep 25, 2011

    Muchas gracias por el tutorial, me sirvió mucho y todo salio excelente!!!

    Responder
    omar Feb 22, 2012

    Gracias por el tutorial fue de bastante ayuda, aproposito donde sigo al siguiente material no veo link para seguir leyendo la creacion de bundles y eso. gracias

    Responder
    Martin S Ago 03, 2012

    Hola Jon: excelente artículo. Sólo que tengo el siguiente problema.
    Instalo y sigo todos los pasos que indicas, pero en cuanto intento ingresar a mi proyecto en el entorno de desarrollo, dice que «Se ha producido un error al recuperar la http://www.xxxxx.com/app_dev.php/ Es posible que esta esté inactiva debido a tareas de mantenimiento o que se haya configurado de forma incorrecta.»

    Bueno, no sé que hacer.
    Estoy usando Xubuntu 12.04

    Que puede ser?

    Desde ya, muchas gracias por todo…

    Responder
    Arnold jimenez Oct 12, 2012

    You don’t have permission to access / on this server. ¿Qué hice mal?

    Responder

Responde a XyculA Cancelar la respuesta

Los comentarios son moderados y se utiliza rel="nofollow" para los enlaces.