Instalar una aplicación Symfony2 usando Composer

Antes de instalar un proyecto Symfony2 tienes que cumplir los requisitos mínimos en tu servidor. Yo tuve problemas porque usaba XAMPP y este no cumple los requisitos mínimos para PHP 5.3. La versión mínima es 5.3.3 para Symfony2 2.1 y 5.3.2 para Symfony2 2.0. Es por esto que desinstalé XAMPP e installé Apache2+PHP+MySQL usando MacPorts. Puedes ver los últimos requisitos mínimos de Symfony2 aquí.

Entonces tienes que instalar Composer. Puedes bajártelo manualmente o símplemente ejecutar este comando (si tienes curl instalado):

curl -s https://getcomposer.org/installer | php

Puede aparecerte el siguiente error al descargar Composer:

All settings correct for using Composer
Downloading...
Download failed: failed to open stream: Permission denied
Downloading...
Download failed: failed to open stream: Permission denied
Downloading...
Download failed: failed to open stream: Permission denied
The download failed repeatedly, aborting.

Esto se debe a que estás en una carpeta en la que no tienes permisos de escritura. En mi caso estaba en /var/www. Esa carpeta tiene permisos 755 y el usuario:grupo dueños son root:root. Cambién los permisos a 775, su grupo dueño a www-data y añadí mi usuario al grupo www-data group (añadiendo www-data al final de la línea que configura mi usuario en /etc/group) para poder tener permisos de escritura.

Composer usa git para descargar Symfony2 así que tienes que instalarlo:

sudo apt-get -y install git

Después de instalar Composer y Git puedes instalar la última versión 2.2.0 de Symfony2 ejecutando el siguiente comando (tarda un buen rato):

php composer.phar create-project symfony/framework-standard-edition /path/to/webroot/new_folder 2.2

Si quieres descargarte por ejemplo la versión 2.1.x-dev puedes hacerlo ejecutando este comando:

php composer.phar create-project symfony/framework-standard-edition /path/to/webroot/new_folder 2.1.x-dev

Se creará una nueva carpeta con el nombre indicado en el comando anterior dentro de tu carpeta webroot. Ahora solo falta hacer accesible la carpeta web que se encuentra en esa nueva carpeta al servidor web. Puedes seguir las instrucciones de la guía “Configurar virtual hosts para XAMPP en Mac OS X“. Aunque la guía sea para XAMPP y Mac OS X el proceso es similar para cualquier servidor web Apache.

Ahora todos los ficheros están instalados y el servidor configurado pero todavía nos falta cambiar los permisos de las carpetas cache y log para no tener errores al intentar vaciar la cache y los logs. Este proceso depende del sistema y está explicado en la sección “Setting up Permissions” en la guía oficial de configuración, pero en Ubuntu yo tuve que ejecutar lo siguiente (suponiendo que el usuario que ejecuta Apache se llama www-data):

rm -rf app/cache/*
rm -rf app/logs/*
sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs

En Mac OS X (y en otros sistemas que soportan chmod +a) sería así (suponiendo que el usuario que ejecuta Apache se llama _www):

rm -rf app/cache/*
rm -rf app/logs/*
sudo chmod +a "_www allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs

Una vez configurado el servidor web se puede acceder a la nueva web abriendo el fichero app_dev.php en un navegador web.

welcome

You might also like

Symfony2 – ErrorException: Notice: serialize() [function.serialize]: “xxx” returned as member variable from __sleep() but does not exist in …
Al guardar una entidad de Doctrine2 en la sesión bajo un proyecto Symfony2 me apareció este error:ErrorException:...

Install a Symfony2 application using Composer
Before installing any Symfony2 project you have to meet the minimum requirements for it in your server....

Solucionar “Fatal error: Allowed memory size of X bytes exhausted (tried to allocate X bytes)” con composer update
Me apareció el siguiente error al ejecutar composer update en uno de mis proyectos Symfony2:Fatal...

Symfony2 routing: Permitir puntos en las URL
Tengo una ruta en una de mis aplicaciones que necesita tener un texto en que que puede haber puntos y...

Dejar un comentario?

0 Comentarios.

Deje un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.