sábado, 12 de enero de 2013

Crear proyecto con Symfony 2.1 en Ubuntu 12.10

Hola, vamos a instalar y generar un proyecto con Symfony 2.1 en Ubuntu 12.10 con el composer, esta es una de las formas que nos enseña este framework php y me parece que es la más recomendada si vamos a trabajar con algún repositorio de sistemas de versión.

Tengo un Ubuntu 12.10 recién instalado con LAMP y como IDE trabajaré con Netbeans 7.2

Paso 1: Necesitaremos instalar git ya que el composer lo necesita para descargar, actualizar los archivos del gitHub.

sudo apt-get install git-core

Antes de pasar al paso siguiente quiero aclarar que es necesario que sepan configurar un virtualhost, en mi caso Netbeans crea un directorio de proyectos y es ahí donde trabajaré
Osea dentro de la carpeta NetbeansProjects estarán mis proyectos en sus respectivas carpetas.
Nota: Si no logras ver la carpeta trata de crear un proyecto nuevo con Netbeans New Project->PHP Application->Next->Finish   esto te creara la una carpeta PhpProject1 dentro de nuestra carpeta NetbeansProjects, lo importante para nuestro tutorial es que existe la carpeta NetbeansProjects las carpetas internas que acaba de generar Netbeans puedes borrarla y tendrás igual a la imagen que tengo aquí arriba.

Paso 2: Ahora pasamos a instalar composer en nuestra raiz que en este caso es en nuestra carpeta NetbeansProjects, quiero aclarar que puede ser cualquier ruta donde creas que es mejor para administrar tus proyectos. Para esto abrimos nuestro terminal y ejecutamos los siguientes comandos:

sudo apt-get install curl
cd /home/johnny/NetbeansProjects
curl -s http://getcomposer.org/installer | php

la primera linea es para asegurarnos que tengamos el curl instalado, despues de instalar ingresamos a nuestra raiz /home/johnny/NetbeansProjects y ejecutamos la tercera linea para instalar el composer.


Verificamos por el explorador de archivos y veremos que se desrcargo el archivo y está listo para generar mi proyecto en symfony :)


Paso 3: Pasamos a crear nuestro proyecto, en este caso lo llamare "colegio", en el terminal estamos en la raiz osea en la carpeta NetbeansProjects, ahí ejecutamos la siguiente linea:

php composer.phar create-project symfony/framework-standard-edition colegio/ 2.1.6

Es una sola linea que ejecuta el archivo que anteriormente descargamos, le damos la orden de generar un proyecto, le decimos que será en la carpeta colegio/ y el último parámetro es la versión del symfony




Paso 4: Por el terminal ingresamos a nuestra carpeta de proyecto y ahí necesitaremos ejecutar y hacer algunas acciones, así que ejecutamos estas lineas de comando:

curl -s http://getcomposer.org/installer | php
php composer.phar install

Esta parte es importante por que más adelante nos permitirá actualizar nuestro vendor, nuestros assets para nuestros futuros bundles.


Paso 5: Vamos a instalar algunas librerias que necesitará nuestro servidor web para que funcione bien y no tenga problemas.

para saber que tenemos o que nos falta solo es necesario ejecutar por el terminal.

php app/check.php

Ahí nos listará las cosas que faltan configurar o instalar
Lo que basicamente nos saldrá es que hay 2 tareas para configurar en los php.ini y 2 librerias para instalar:
Librerias:
sudo apt-get install php5-intl
sudo apt-get install php-apc

Configuración:
Vamos a moficiar los php.ini, hay que recordar que existen 2 archivos php.ini cuando lo utiliza apache y cuando lo utiliza la linea de comando, por ello modificaremos en ambos archivos.

los cambios serán así:
date.timezone = America/Lima
short_open_tag = Off

Busca cada una de estas lineas en tu php.ini y modificalos quedando de la manera anterior, estás son las rutas de los php.ini.

/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini

Terminado estás configuraciones reinicias el servicio de apache:
sudo /etc/init.d/apache2 restart
ejecutas nuevamente

php app/check.php

Permisos:
Symfony pide que obligatoriamente le demos permisos a las carpetas de log y cache esto es muy importante y en su documentación nos brinda los comandos para ejecutar y los ejecutamos

sudo setfacl -R -m u:www-data:rwx -m u:johnny:rwx app/cache app/logs
sudo setfacl -dR -m u:www-data:rwx -m u:johnny:rwx app/cache app/logs


donde vean la palabra johnny cambien por tú usuario de ubuntu que están en sesión.



Listo ahora ya casi está listo, el siguiente paso es configurar un virtualHost para tu carpeta colegio.
Este tutorial no debería entrar en este tema de configurar, pero vamos hacer una excepción.
crearemos el dominio local.colegio.com para nuestro proyecto que tenemos.

1. sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/local.colegio.com
2. sudo gedit /etc/apache2/sites-available/local.colegio.com
3. sudo gedit /etc/hosts
4. sudo a2ensite local.colegio.com
5. sudo /etc/init.d/apache2 restart

El comando número 2 se debe configurar el archivo de tal manera indicandole donde está nuestro directorio algo así.



El comando número 3 debe quedar algo así:


Para finalizar abrimos el navegador y veremos nuestro proyecto corriendo perfectamente y listo para empezar a programar xD

Abriremos local.colegio.com/app_dev.php el entorno de desarrollo, en futuros tutos enseñaré como pasar de nuestro entorno dev a producción, limpiar caché, logs, crear bundle.



Espero sus comentarios...

8 comentarios:

  1. me ha funcionado a la primera, felicidades!!!

    lo que no me queda claro como abrirlo como proyecto en Netbeans

    ResponderEliminar
  2. bueno eso es fácil, lo primero que tienes que hacer es descargar el zip que te da en su sitio web oficial http://symfony.com/download de la lista seleccionar Symfony Standard 2.1.6 Without Vendors (.zip), descargar en una carpeta que pueda administrarlo o en la raiz de tu proyecto, ahora abre tu Netbeans ir al menú
    1. Tools->Options
    2. Se abre una ventana en la barra superior aparece el logo de PHP hacer ahí
    3. Aparece un conjunto de pestañas uno de ellos dice Symfony2, click ahí.
    4. aparece una caja de texto con un boton Browser, ahí examinar y buscar el zip que descargaste.
    5. Ahora puedes crear tu proyecto con Netbeans como proyecto de archivos ya existentes y listo. :)


    Espero que esto sea lo que me comentabas

    ResponderEliminar
    Respuestas
    1. Si, gracias ... lo he echo como describes, pero no me corre con el Run de Netbeans. Si que puedo utilizar la consola de comandos de Netnbeans Symfony2.

      Eliminar
  3. Bien Johnny, tu sí!!!!!

    ResponderEliminar
  4. Tu si ah xD Tutoriales de Dokeos esperando xD

    ResponderEliminar
  5. Tengo una duda, en windows me funcionaban los comandos Symfony en el Ide Netbeans, pero ahora que me pase para ubuntu configure todo tal cual que en windows (o eso creo) pero por alguna extraña razon no sirven todas las funciones de symfony en el netbeans, sale un error (por ejemplo en el comando de generar un nueva entity y el de borrar cache si funciona)

    ResponderEliminar
  6. me ha funcionado de maravilla.. aunque no me salia la pagina de bienvenida de symfony me salia que el servidor no estaba disponible o app_dev no se encontraba en el servidor puerto 80 y solucione mi problema me di cuenta que tenia instalado el apache 2.4 y era necesario agregar el siguiente codigo (Require all granted) en la configuracion default de apache o en el archivo local.colegio.com

    AllowOverride None
    Order allow,deny
    Allow from all
    Require all granted

    ResponderEliminar