|
| 1 | +.. index:: |
| 2 | + single: Instalando |
| 3 | + |
| 4 | +Instalando y configurando *Symfony* |
| 5 | +=================================== |
| 6 | + |
| 7 | +El objetivo de este capítulo es empezar a trabajar con una aplicación funcionando incorporada en lo alto de *Symfony*. Afortunadamente, *Symfony* dispone de "distribuciones", que son proyectos *Symfony* funcionales desde el "arranque", los cuales puedes descargar y comenzar a desarrollar inmediatamente. |
| 8 | + |
| 9 | +.. tip:: |
| 10 | + |
| 11 | + Si estás buscando instrucciones sobre la mejor manera de crear un nuevo proyecto y guardarlo vía el control de código fuente, consulta `Usando control de código fuente`_. |
| 12 | + |
| 13 | +Descargando una distribución de *Symfony2* |
| 14 | +------------------------------------------ |
| 15 | + |
| 16 | +.. tip:: |
| 17 | + |
| 18 | + En primer lugar, comprueba que tienes instalado y configurado un servidor web (como *Apache*) con *PHP 5.3.2* o superior. Para más información sobre los requisitos de *Symfony2*, consulta los :doc:`requisitos en la referencia </reference/requirements>`. |
| 19 | + Para más información sobre la configuración de la raíz de documentos de tu servidor web específico, consulta la siguiente documentación: `Apache`_ | `Nginx`_ . |
| 20 | + |
| 21 | +Los paquetes de las "distribuciones" de *Symfony2*, son aplicaciones totalmente funcionales que incluyen las bibliotecas del núcleo de *Symfony2*, una selección de útiles paquetes, una sensible estructura de directorios y alguna configuración predeterminada. Al descargar una distribución *Symfony2*, estás descargando el esqueleto de una aplicación funcional que puedes utilizar inmediatamente para comenzar a desarrollar tu aplicación. |
| 22 | + |
| 23 | +Empieza por visitar la página de descarga de *Symfony2* en `http://symfony.com/download`_. |
| 24 | +En esta página, puedes encontrar la *edición estándar de Symfony*, que es la distribución principal de *Symfony2*. En este caso, necesitas hacer dos elecciones: |
| 25 | + |
| 26 | +* Descargar o bien un archivo ``.tgz`` o ``.zip`` --- ambos son equivalentes, descarga aquel con el que te sientas más cómodo; |
| 27 | + |
| 28 | +* Descargar la distribución con o sin ``vendors``. Si tienes instalado `Git`_ en tu ordenador, debes descargar *Symfony2* ``"sin vendors"``, debido a que esto añade un poco más de flexibilidad cuando incluyas bibliotecas de terceros. |
| 29 | + |
| 30 | +Descarga uno de los archivos en algún lugar bajo el directorio raíz de tu servidor web local y descomprímelo. Desde una línea de ordenes de UNIX, esto se puede hacer con una de las siguientes ordenes (sustituye ``###`` con el nombre del archivo real): |
| 31 | + |
| 32 | +.. code-block:: bash |
| 33 | + |
| 34 | + # para un archivo .tgz |
| 35 | + tar zxvf Symfony_Standard_Vendors_2.0.###.tgz |
| 36 | + |
| 37 | + # para un archivo .zip |
| 38 | + unzip Symfony_Standard_Vendors_2.0.###.zip |
| 39 | + |
| 40 | +Cuando hayas terminado, debes tener un directorio ``Symfony/`` que se ve algo como esto: |
| 41 | + |
| 42 | +.. code-block:: text |
| 43 | + |
| 44 | + www/ <- tu directorio raíz del servidor web |
| 45 | + Symfony/ <- el archivo extraído |
| 46 | + app/ |
| 47 | + cache/ |
| 48 | + config/ |
| 49 | + logs/ |
| 50 | + src/ |
| 51 | + ... |
| 52 | + vendor/ |
| 53 | + ... |
| 54 | + web/ |
| 55 | + app.php |
| 56 | + ... |
| 57 | + |
| 58 | +.. _installation-updating-vendors: |
| 59 | + |
| 60 | +Actualizando ``vendors`` |
| 61 | +~~~~~~~~~~~~~~~~~~~~~~~~ |
| 62 | + |
| 63 | +Paso 1: Consigue `Composer`_ (El nuevo gran sistema de empacado *PHP*) |
| 64 | + |
| 65 | +.. code-block:: bash |
| 66 | + |
| 67 | + curl -s http://getcomposer.org/installer | php |
| 68 | + |
| 69 | +Asegúrate de descargar :file:`composer.phar` en el mismo directorio dónde se encuentra el archivo :file:`composer.json` (este, por omisión, es el directorio raíz de tu proyecto *Symfony*). |
| 70 | + |
| 71 | +Paso 2: Instala las bibliotecas de terceros |
| 72 | + |
| 73 | +.. code-block:: bash |
| 74 | + |
| 75 | + php composer.phar install |
| 76 | + |
| 77 | +Esta orden descarga todas las bibliotecas de terceros necesarias ---incluyendo al mismo *Symfony*--- en el directorio :file:`vendor/`. |
| 78 | + |
| 79 | +.. note:: |
| 80 | + |
| 81 | + Si no tienes instalado ``curl``, simplemente puedes descargar el archivo ``instalador`` manualmente de http://getcomposer.org/installer. Coloca ese archivo en tu proyecto y luego ejecuta: |
| 82 | + |
| 83 | + .. code-block:: bash |
| 84 | + |
| 85 | + php installer |
| 86 | + php composer.phar install |
| 87 | + |
| 88 | +Instalando y configurando |
| 89 | +~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 90 | + |
| 91 | +En este punto, todas las bibliotecas de terceros necesarias ahora viven en el directorio :file:`vendor/`. También tienes una instalación predeterminada de la aplicación en :file:`app/` y algunos ejemplos de código dentro de :file:`src/`. |
| 92 | + |
| 93 | +*Symfony2* viene con una interfaz visual para probar la configuración del servidor, muy útil para ayudarte a solucionar problemas relacionados con la configuración de tu servidor web y *PHP* para utilizar *Symfony*. Usa la siguiente *URL* para examinar tu configuración: |
| 94 | + |
| 95 | +.. code-block:: text |
| 96 | + |
| 97 | + http://localhost/Symfony/web/config.php |
| 98 | + |
| 99 | +Si hay algún problema, corrígelo antes de continuar. |
| 100 | + |
| 101 | +.. sidebar:: Configurando permisos |
| 102 | + |
| 103 | + Un problema común es que ambos directorios ``app/cache`` y ``app/logs`` deben tener permiso de escritura, tanto para el servidor web cómo para la línea de ordenes del usuario. En un sistema UNIX, si el usuario del servidor web es diferente de tu usuario de línea de ordenes, puedes ejecutar las siguientes ordenes una sola vez en el proyecto para garantizar que los permisos se configuran correctamente. Cambia ``www-data`` por el usuario de tu servidor *web*: |
| 104 | + |
| 105 | + **1. Usando ACL en un sistema que admite chmod +a** |
| 106 | + |
| 107 | + Muchos sistemas te permiten utilizar la orden chmod +a. Intenta esto primero, y si se produce un error --- intenta el siguiente método: |
| 108 | + |
| 109 | + .. code-block:: bash |
| 110 | + |
| 111 | + rm -rf app/cache/* |
| 112 | + rm -rf app/logs/* |
| 113 | + |
| 114 | + sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs |
| 115 | + sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs |
| 116 | + |
| 117 | + **2. Usando ACL en un sistema que no es compatible con chmod +a** |
| 118 | + |
| 119 | + Algunos sistemas, no son compatibles con ``chmod +a``, pero son compatibles con otra utilidad llamada ``setfacl``. Posiblemente tengas que habilitar la `compatibilidad con ACL`_ en tu partición e instalar :dfn:`setfacl` antes de usarlo (como es el caso de *Ubuntu*), así: |
| 120 | + |
| 121 | + .. code-block:: bash |
| 122 | + |
| 123 | + sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs |
| 124 | + sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs |
| 125 | + |
| 126 | + **3. Sin usar ACL** |
| 127 | + |
| 128 | + 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``: |
| 129 | + |
| 130 | + .. code-block:: php |
| 131 | + |
| 132 | + umask(0002); // Esto permitirá que los permisos sean 0775 |
| 133 | + |
| 134 | + // o |
| 135 | + |
| 136 | + umask(0000); // Esto permitirá que los permisos sean 0777 |
| 137 | + |
| 138 | + Ten en cuenta que el uso de *ACL* se recomienda cuando tienes acceso a ellos en el servidor porque cambiar la ``umask`` no es seguro en subprocesos. |
| 139 | + |
| 140 | +Cuando todo esté listo, haz clic en el enlace "Visita la página de Bienvenida" para ver tu primer aplicación "real" en *Symfony2*: |
| 141 | + |
| 142 | +.. code-block:: text |
| 143 | + |
| 144 | + http://localhost/Symfony/web/app_dev.php/ |
| 145 | + |
| 146 | +¡*Symfony2* debería darte la bienvenida y felicitarte por tu arduo trabajo hasta el momento! |
| 147 | + |
| 148 | +.. image:: /images/quick_tour/welcome_es.jpg |
| 149 | + |
| 150 | +Empezando a desarrollar |
| 151 | +----------------------- |
| 152 | + |
| 153 | +Ahora que tienes una aplicación *Symfony2* completamente funcional, ¡puedes comenzar el desarrollo! Tu distribución puede contener algún código de ejemplo ---revisa el archivo :file:`README.rst` incluido con la distribución (ábrelo como un archivo de texto) para saber qué código de ejemplo incluye tu distribución y cómo lo puedes eliminar más tarde. |
| 154 | + |
| 155 | +Si eres nuevo en *Symfony*, alcánzanos en ":doc:`page_creation`", donde aprenderás a crear páginas, cambiar la configuración, y todo lo demás que necesitas en tu nueva aplicación. |
| 156 | + |
| 157 | +Usando control de código fuente |
| 158 | +------------------------------- |
| 159 | + |
| 160 | +Si estás utilizando un sistema de control de versiones como ``Git`` o ``Subversion``, puedes configurar tu sistema de control de versiones y empezar a confirmar cambios al proyecto normalmente. La *edición estándar de Symfony* **es** el punto de partida para tu nuevo proyecto. |
| 161 | + |
| 162 | +Para instrucciones específicas sobre la mejor manera de configurar el proyecto para almacenarlo en *git*, consulta :doc:`/cookbook/workflow/new_project_git`. |
| 163 | + |
| 164 | +Ignorando el directorio :file:`vendor/` |
| 165 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 166 | + |
| 167 | +Si has descargado el archivo *sin proveedores*, puedes omitir todo el directorio :file:`vendor/` y no confirmarlo al control de versiones. Con ``Git``, esto se logra creando un archivo :file:`.gitignore` y añadiendo lo siguiente: |
| 168 | + |
| 169 | +.. code-block:: text |
| 170 | + |
| 171 | + vendor/ |
| 172 | + |
| 173 | +Ahora, el directorio de proveedores no será confirmado al control de versiones. Esto está muy bien (en realidad, ¡es genial!) porque cuando alguien más clone o coteje el proyecto, él/ella simplemente puede ejecutar el archivo ``php composer.phar install`` para descargar todas las bibliotecas de proveedores necesarias. |
| 174 | + |
| 175 | +.. _`compatibilidad con ACL`: https://help.ubuntu.com/community/FilePermissionsACLs |
| 176 | +.. _`http://symfony.com/download`: http://symfony.com/download |
| 177 | +.. _`Git`: http://git-scm.com/ |
| 178 | +.. _`GitHub Bootcamp`: http://help.github.com/set-up-git-redirect |
| 179 | +.. _`Composer`: http://getcomposer.org/ |
| 180 | +.. _`Apache`: http://httpd.apache.org/docs/current/mod/core.html#documentroot |
| 181 | +.. _`Nginx`: http://wiki.nginx.org/HttpCoreModule#root |
| 182 | + |
0 commit comments