Requisitos obligatorios:
- PHP debe ser una versión mínima de PHP 5.3.3
- Servidor web (como apache)
- Es necesario habilitar JSON
- Es necesario tener habilitado el ctype
- PHP.ini debe tener configurado el valor date.timezone
Si deseas utilizar Doctrine, necesitarás tener instalado PDO. Además, es necesario tener instalado el controlador de PDO para el servidor de base de datos que desees utilizar.
Composer
Composer es una herramienta que más tarde o temprano utilizaremos en el desarrollo de nuestros proyectos Symfony. Composer se encarga de instalar y actualizar paquetes o librerías en base a un proyecto. Estos paquetes se encuentran en un directorio (en nuestro caso vendors/) dentro de un proyecto. Por lo que por defecto no instala nada globalmente. Ya que las librerías de Symfony se instalan para cada proyecto. Además resuelve las dependencias que puedan haber entre ciertos paquetes, instalándolas y actualizándolas cuando sea necesario. Por lo tanto Composer comprueba la lista de dependencias de cada proyecto y decide qué librerías hay que instalar, qué versiones concretas se instalan y el orden correcto de instalación.
Nota: Composer puede que necesite acceder a repositorios Git por lo q es necesario tenerlo instalado.
Instalación de Composer en Linux y Mac OS X
1. Descargar Composer en el directorio raíz de tu proyecto
$ curl -s https://getcomposer.org/installer | php
Si todo ha funcionado bien, en el directorio raíz de tu proyecto Symfony2 verás un nuevo archivo llamado composer.phar. Para comprobar que se ha instalado correctamente, ejecuta :
$ php composer.phar
Con lo que obtendrás el listado de opciones disponibles para la herramienta.
2. Instalar Composer de esta manera es correcto, pero te obliga a realizar una nueva instalación para cada proyecto Symfony2. Si tienes muchos proyectos es mucho mejor que instales Composer de forma global en tu ordenador para que todos los proyectos utilicen la misma versión de Composer.
Para instalar Composer globalmente simplemente mueve el archivo composer.phar a algún directorio ejecutable del sistema, como por ejemplo:
$ sudo mv composer.phar /usr/local/bin/composer
Instalación de Composer en Windows mediante instalador
El instalador Composer-Setup.exe instalará la herramienta y configurá el PATH del sistema para su correcta ejecución desde la consola del sistema
Instalación de Composer en Windows manualmente
1. Abre cualquier navegador y accede a la siguiente dirección https://getcomposer.org/installer
2. Guarda el contenido de esa página en el directorio raíz de tu proyecto Symfony2. Asegúrate de guardar el archivo con el nombre instalador.php (por ejemplo)
3. Ejecuta el siguiente comando para instalar Composer:
D:\Proyectos\Symfony2\prueba> php instalador.php
4. Si todo ha funcionado bien, en el directorio raíz de tu proyecto Symfony2 verás un nuevo archivo llamado composer.phar. Mediante el siguiente comando, que muestra las opciones de la herramienta,comprobaras que se ha instalado correctamente.
D:\Proyectos\Symfony2\prueba> php composer.phar
5. Ahora ya puedes borrar el archivo instalador.php.
6. Instalar Composer de esta manera es correcto, pero te obliga a realizar una nueva instalación para cada proyecto Symfony2. Y como hemos mencionado anteriormente, si tienes muchos proyectos es mucho mejor que instales Composer de forma global en tu ordenador para que todos los proyectos utilicen la misma versión de Composer. Por lo tanto vamos a tener que crear un archivo .bat
Mueve el archivo composer.phar a un directorio ejecutable de windows. Para ver la lista de directorios ejecutables de Windows, ejecuta el siguiente comando sin opciones:
D:\Proyectos\Symfony2\prueba> set
En la lista de opciones que se muestra, busca aquella que se llame PATH.
Ahora tienes que crear un archivo llamado composer.bat en el mismo directorio donde has movido el archivo composer.phar. El contenido de ese archivo debe ser el siguiente:
@ECHO OFF
php "%~dp0composer.phar" %*
Si ahora abres una nueva consola de comandos, ya podrás utilizar Composer ejecutando simplemente el comando composer
Instalando Symfony 2.2
Para instalar Symfony existen dos métodos diferentes, cuya elección dependerá del nivel nivel de personalización o de los componentes necesarios para el proyecto a realizar. Sin embargo, elijamos un método u otro, seguramente acabaremos necesitando la herramienta de mantenimiento de dependencias Composer.
1. Instalación de Symfony 2.2 desde archivo (opción elegida para el tutorial):
Puedes optar por descargar directamente el archivo de la edición estándar de symfony 2.2 pero tendrás que elegir entre dos versiones (a parte del formato del archivo de compresión .tgz o .zip).
Tendrás que elegir entre la versión con 'vendors' o sin 'vendors'. La primera modalidad, contiene todas las librerías de terceros (vendors) necesarias para comenzar a trabajar con el framework, mientras que la modalidad sin 'vendors', viene sin estas librerías, razón por lo que hay que instalarlas posteriormente mediante Composer.
Descarga uno de los archivos en el directorio que va a ser el raíz de tu proyecto y descomprímelo.
- Si optamos por la opción con 'vendor' , obtendremos una estructura de directorios similar a la siguiente:
$ php composer.phar install
o si hemos instalado Composer de manera global:
$ composer install
Nota: Si no queremos instalar todos los 'vendors' que componen Symfony 2 podemos elegir que instalar. Para ello antes de ejecutar uno de los anteriores comandos, podemos modificar el archivo de configuración de Composer, composer.json. Este fichero se encontrará en el directorio raíz de nuestra aplicación, tras descomprimir el archivo 'sin vendors'. Por lo que este método de instalación nos proporciona la versatilidad de elegir que instalar.
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.2.*",
"doctrine/orm": "~2.2,>=2.2.3",
"doctrine/doctrine-bundle": "1.2.*",
"twig/extensions": "1.0.*",
….
},
b) Instalación utilizando únicamente Composer (sin descargar archivo)
- Teniendo instalado Composer instalador de manera global:
$ composer create-project symfony/framework-standard-edition <directorio> 2.2.x-dev
Cambia el valor
Este comando instala la versión de Symfony 2.2 más reciente que exista en ese momento. Si quieres instalar una versión concreta, modifica 2.2.x-dev por el nombre de la versión deseada:
$ composer create-project symfony/framework-standard-edition /directorio 2.2.1
Permisos tras instalar
Si estas trabajando en Windows seguramente no tendrás problemas con los permisos, sin embargo es algo a tener en cuenta en un sistema Unix
Symfony2 solamente escribe en dos directorios de la aplicación: app/cache/ y app/logs/. Todos los demás directorios son de sólo lectura para Symfony2. El problema es que no siempre escribe el mismo usuario en esos dos directorios.
Cuando ejecutas un comando en la consola Symfony2 se ejecuta con tu usuario de la consola. Cuando accedes a una página de tu aplicación con el navegador Symfony2 se ejecuta con el usuario del servidor web. Como estos dos usuarios normalmente son diferentes, se produce un problema cuando un usuario quiere tocar cosas hechas por otro usuario.
Opción 1.
1. Estando dentro del directorio raíz de tu aplicación, borra todo el contenido que exista dentro de los directorios app/cache/ y app/logs/:
$ rm -fr app/cache/*
$ rm -fr app/logs/*
Recuerda que quizás tengas que usar sudo delante de cada una de las anteriores ordenes.
2. Averigua cuál es el usuario con el que se ejecuta tu servidor web. Si utilizas Apache ejecuta el siguiente comando:
$ ps -aux | grep httpd
3. Ejecuta el siguiente comando para cambiar los permisos que tiene el servidor web sobre los dos directorios de escritura de Symfony2. Antes de ejecutar el comando, cambia Usuario por el nombre del usuario con el que se ejecuta tu servidor web:
$ sudo chmod +a "Usuario allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
4. Ejecuta el siguiente comando para cambiar los permisos que tiene el usuario con el que se ejecutan los comandos de consola:
$ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
Nota: whoami indica el nombre del usuario actual.
Opción 2:
Algunos sistemas, no son compatibles con chmod +a, pero son compatibles con otra utilidad llamada setfacl. Ejecuta los siguientes comandos dentro del directorio raíz de la aplicación.
$ sudo setfacl -R -m u:Usuario:rwx -m u:`whoami`:rwx app/cache app/logs
$ sudo setfacl -dR -m u:Usuario:rwx -m u:`whoami`:rwx app/cache app/logs
Opción 3:
Si después de probar todo lo anterior el error se sigue produciendo, existe una solución alternativa que funciona siempre. Aunque esta solución sea la que se utiliza como último recurso, eso no significa que sea insegura. Los propios creadores del framework la recomiendan cuando todo lo demás falla.
Si no tienes acceso para modificar los directorios ACL, tendrás que cambiar la umask para que los directorios cache/ y logs/ se puedan escribir por el grupo o por cualquiera (dependiendo de si el usuario del servidor web y el usuario de la línea de ordenes están en el mismo grupo o no). Para ello, pon la siguiente línea al comienzo de los archivos app/console, web/app.php y web/app_dev.php:
mask(0002); // Esto permitirá que los permisos sean 0775
// o
umask(0000); // Esto permitirá que los permisos sean 0777
Comprobación final
Finalmente podremos pasar a comprobar que en nuestro sistema no falta ninguno de los requisitos obligatorios especificados al inicio del tutorial. Para ello ejecutaremos desde nuestro directorio raíz del proyecto (posteriormente veremos que se puede comprobar también desde el navegador).
$ php app/check.php
Si todo ha funcionado bien, Symfony 2.2 ya está instalado correctamente. Para comprobarlo ejecuta el siguiente comando de consola directamente en la raíz del directorio donde has instalado el proyecto Symfony 2.2:
$ php app/console
La consola debería mostrar una lista muy larga con todos los comandos disponibles en las aplicaciones Symfony2.
Ahora podremos acceder la página de bienvenida del framework instalado desde
http://localhost/directorio_proyecto/app_dev.php/
No hay comentarios:
Publicar un comentario