Symfony
              Parte 3

 Rodrigo Miranda
    rmiranda@poodu.cl
contacto@rodrigomiranda.cl
http://www.rodrigomiranda...
Desarrollando
Proyecto




           Rodrigo Miranda
       Blog: www.rodrigomiranda.cl
Desarrollando Proyecto




  Requisitos:


•  Instalada plataforma LAMP (Linux, Apache, MySQL y PHP)

•  Configurar Repos...
Desarrollando Proyecto




  •  Instalar APACHE 2.

          •  fedora, CentOS, RedHat:
           #   yum install httpd
...
Desarrollando Proyecto




   •  Instalar MySQL.

           •  fedora, CentOS, RedHat:


          # yum install mysql-se...
Desarrollando Proyecto




      •  Instalar PHP.

             •  fedora, CentOS, RedHat:

           # yum install php p...
Desarrollando Proyecto




  •  Descargar última versión phpMyAdmin

          •  fedora, CentOS, RedHat:


           # D...
Desarrollando Proyecto


•  Para el caso de Ubuntu, después de instalar, se
debe realizar un enlace simbólico.



 # sudo ...
Desarrollando Proyecto


 Si no tienes instalado Subversion, es hora de
 hacerlo.

         •  fedora, CentOS, RedHat:


 ...
Desarrollando Proyecto



    •  Recomendamos crear un directorio que pueda
       contener más de una versión de Symfony....
Desarrollando Proyecto

    •  Ingresar al directorio bin de la instalación
       Symfony:
     # cd /versiones-symfony/s...
Desarrollando Proyecto



    •  El comando symfony -V, para el caso de la
       instalación por Subversión, lo podremos ...
Desarrollando Proyecto



       Obtener Comandos de Symfony:

      # php /versiones-symfony/symfonyx_x_x/data/bin/symfo...
Desarrollando Proyecto
       Comandos de Symfony:




                             Rodrigo Miranda
                     ...
Proyecto
a
Desarrollar




           Rodrigo Miranda
       Blog: www.rodrigomiranda.cl
Desarrollando Proyecto


  Gestionador de Encuestas Open Source:


•  Considere dos aplicaciones en el proyecto, una apli...
Desarrollando Proyecto




•  La aplicación permitirá crear una gran cantidad de tipo de
   encuestas.

•  Permitir import...
Desarrollando Proyecto




   •  Obtención de gráficos y estadísticas de acuerdo a
      respuestas obtenidas por encuesta...
Desarrollando Proyecto

   •  La alternativa Open Source más conocida:




                             Rodrigo Miranda
  ...
Comenzamos
el
Desarrollo




            Rodrigo Miranda
        Blog: www.rodrigomiranda.cl
Creamos
el
Proyecto




         Rodrigo Miranda
     Blog: www.rodrigomiranda.cl
Creamos el Proyecto


   Crear el proyecto Encuesta:

  # mkdir /tu/directorio/web/encuesta
  # cd /tu/directorio/web/enc...
Creamos el proyecto

•  Estructura de Directorio Creada con el comando
   generate:project:




                          ...
Creamos el proyecto




   •  La gran cantidad de directorios creados con el
      comando generate:project permiten están...
Creamos el proyecto




   •  La tarea generate:project crea un atajo de
      Symfony dentro del directorio raíz del proy...
Crear
las
Aplicaciones




           Rodrigo Miranda
       Blog: www.rodrigomiranda.cl
Creamos las Aplicaciones



      Creamos la aplicación pública con el comando
     generate:app :



        # ./symfony...
Creamos las Aplicaciones



      Creamos la aplicación administrador con el
     comando generate:app :



        # ./s...
Creamos las Aplicaciones


  Seguridad contemplada en Symfony.

•  Protección contra ataques XSS (Cross-site scripting)

...
Creamos las Aplicaciones


  Seguridad contemplada en Symfony.

•  Protección contra ataques CSRF


           - -csrf-se...
Creamos las Aplicaciones


  Resumen seguridad contemplada en Symfony.

•  --escaping-strategy: Permite escapar la salida...
Creamos las Aplicaciones




      a estructura de Directorios de cada aplicación
     L
     generada con el comando gen...
Creamos las Aplicaciones




                               Rodrigo Miranda
                           Blog: www.rodrigomi...
Entornos




    Rodrigo Miranda
Blog: www.rodrigomiranda.cl
Entornos


     Entornos: Si revisamos el directorio web/ de nuestro
   proyecto encontrarás una estructura similar a est...
Entornos


      Entornos: Los archivos index.php,
    publico_dev.php son llamados controladores
    frontales de la apl...
Entornos


        Entornos


           • Entorno de desarrollo (dev)
           • Entorno de pruebas
           • Entor...
Entornos



       Entorno de desarrollo (dev)

     •  Este es el ambiente utilizado por desarrolladores
     web para a...
Entorno



    Diferencias de entornos

   •  Cada entorno no es más que un conjunto
   específico de configuraciones, ej...
Entorno


      Diferencias de entornos



    •  Por el contrario, en el entorno de producción se
    considera habilita...
Entorno




  •  Definir un nuevo entorno en Symfony es tan sencillo
  como crear un nuevo controlador frontal. Más adelan...
Entorno




  •  Definir un nuevo entorno en Symfony es tan sencillo
  como crear un nuevo controlador frontal. Más adelan...
Controlador


      Archivo web/index.php

    <?php




                        Rodrigo Miranda
                    Blog...
Controlador


      Opciones del método getApplicationConfiguration.

              •  La primera opción indica la aplica...
Servidor
Web




      Rodrigo Miranda
  Blog: www.rodrigomiranda.cl
Configuración del Servidor Web
      <VirtualHost *:80>
       ServerName encuesta.localhost
       DocumentRoot /tu/direc...
Configuración del Servidor Web


  En caso de que aún no esté definido, agregar la directiva
ServerName al archivo de con...
Configuración del Servidor Web


    Directiva ServerName en archivo configuración
     Apache:




   ServerName servido...
Configuración del Servidor Web


    Configuración archivo hosts:

                 /etc/hosts

             c:windowssys...
Configuración del Servidor Web


     Reiniciamos Apache:

                   •  fedora, CentOS, RedHat

         # sudo ...
Configuración del Servidor Web


    Accedemos a la aplicación pública (prod) desde un
     navegador:




           htt...
Configuración del Servidor Web


    Un error Común:




                                 Rodrigo Miranda
               ...
Configuración del Servidor Web




      •  El anterior en esencia NO es un error, sino que
         Apache no puede encon...
Proyecto, Aplicaciones y Módulos




      •  Una alternativa para generar el alias podría ser crear
         un enlace si...
Configuración del Servidor Web


    Si todo está correcto, deberíamos ver lo siguiente:




                            ...
Configuración del Servidor Web


    Accedemos a la aplicación pública (dev) desde un
     navegador:




       http://e...
Configuración del Servidor Web

    Si todo está correcto, deberíamos ver lo siguiente:




                             ...
Configuración del Servidor Web




      •  La principal diferencia es que el controlador
         frontal del entorno de ...
Levantamiento
Servidor

      Subversion




           Rodrigo Miranda
       Blog: www.rodrigomiranda.cl
Levantamiento Servidor Subversion


      Para qué necesitamos Subversion.
    •  Trabajar con más confianza.

    •  Vol...
Levantamiento Servidor Subversion




    •  Al comienzo de esta presentación instalamos
    subversion para ejecutar el c...
Levantamiento Servidor Subversion


    Crear repositorio para nuestro proyecto.

       •  fedora, CentOS, RedHat y Ubun...
Levantamiento Servidor Subversion


    Crear la estructura básica en el repositorio.

       •  fedora, CentOS, RedHat y...
Levantamiento Servidor Subversion


    Realizamos un checkout de nuestro directorio trunk.


 # cd /tu/directorio/web/en...
Levantamiento Servidor Subversion


    Borramos los contenidos de los directorios cache/ y
  log/ dentro de nuestro proy...
Levantamiento Servidor Subversion


    Le damos permiso adecuados a los directorios
  cache/ y log/ dentro de nuestro pr...
Levantamiento Servidor Subversion


    Dado que es la primera vez que subimos los archivos
  al servidor Subversion (rep...
Levantamiento Servidor Subversion




                               Rodrigo Miranda
                           Blog: www....
Levantamiento Servidor Subversion




   Como no vamos a importar los archivos de los
  directorios cache/ y log/, debemo...
Levantamiento Servidor Subversion




     •  En estos momentos tenemos abierto el editor de
     archivo configurado por ...
Levantamiento Servidor Subversion




   Repetimos el proceso para el directorio log/.



 # svn propedit svn:ignore log
...
Levantamiento Servidor Subversion




  •  Y agregamos el * , para posteriormente guardar y
  cerrar el archivo.


   *


...
Levantamiento Servidor Subversion




  •  Para finalizar realizamos la importación al servidor
  Subversion.



  # svn i...
Desarrollando una Aplicación




                               Rodrigo Miranda
                           Blog: www.rodri...
Preguntas?




    Rodrigo Miranda
Blog: www.rodrigomiranda.cl
Próxima SlideShare
Cargando en…5
×

Symfony Parte 3

2.708 visualizaciones

Publicado el

Tercera Unidad, Comenzamos a desarrollar proyecto.

Publicado en: Tecnología
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
2.708
En SlideShare
0
De insertados
0
Número de insertados
52
Acciones
Compartido
0
Descargas
5
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.
  • ¿Por qué Symfony genera tantos archivos? Una de las principales ventajas de utilizar un framework completo es que puedes estandarizar tus desarrollos. Gracias a la estructura de archivos y directorios por defecto de Symfony, cualquier programador con ciertos conocimientos de Symfony es capaz de continuar el desarrollo de cualquier proyecto Symfony. En cuestión de minutos será capaz de profundizar en el código, solucionar errores y añadir nuevas características.
  • Un ataque CSRF fuerza al navegador web validado de una víctima a enviar una petición a una aplicación web vulnerable, la cual entonces realiza la acción elegida a través de la víctima. Al contrario que en los ataques XSS, los cuales explotan la confianza que un usuario tiene en un sitio en particular, el cross site request forgery explota la confianza que un sitio tiene en un usuario en particular. – escaping-strategy: Permite escapar la salida para evitar ataques XSS – csrf-secret: Permite tokens de sesión en los formularios para prevenir los ataques CSRF
  • Un ataque CSRF fuerza al navegador web validado de una víctima a enviar una petición a una aplicación web vulnerable, la cual entonces realiza la acción elegida a través de la víctima. Al contrario que en los ataques XSS, los cuales explotan la confianza que un usuario tiene en un sitio en particular, el cross site request forgery explota la confianza que un sitio tiene en un usuario en particular. – escaping-strategy: Permite escapar la salida para evitar ataques XSS – csrf-secret: Permite tokens de sesión en los formularios para prevenir los ataques CSRF
  • La opción fsfs proporciona otro enfoque en el manejo de ficheros en el repositorio, aunque proporciona todas las características de Berkeley DB pero sin ser en el sentido estricto una base de datos. FSFS, Además mejora las transacciones incluyendo en un único fichero de transacción todas las modificaciones de un usuario, reduce el tamaño del repositorio en torno a un 20% es independiente de la plataforma.
  • La opción fsfs proporciona otro enfoque en el manejo de ficheros en el repositorio, aunque proporciona todas las características de Berkeley DB pero sin ser en el sentido estricto una base de datos. FSFS, Además mejora las transacciones incluyendo en un único fichero de transacción todas las modificaciones de un usuario, reduce el tamaño del repositorio en torno a un 20% es independiente de la plataforma.
  • Symfony Parte 3

    1. 1. Symfony Parte 3 Rodrigo Miranda rmiranda@poodu.cl contacto@rodrigomiranda.cl http://www.rodrigomiranda.cl
    2. 2. Desarrollando
Proyecto
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
    3. 3. Desarrollando Proyecto   Requisitos: •  Instalada plataforma LAMP (Linux, Apache, MySQL y PHP) •  Configurar Repositorio Subversión. •  Instalar Symfony. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    4. 4. Desarrollando Proyecto •  Instalar APACHE 2. •  fedora, CentOS, RedHat: # yum install httpd •  Ubuntu # sudo aptitude install apache2 Rodrigo Miranda Blog: www.rodrigomiranda.cl
    5. 5. Desarrollando Proyecto •  Instalar MySQL. •  fedora, CentOS, RedHat: # yum install mysql-server mysql •  Ubuntu # sudo aptitude install mysql-server mysql-client Rodrigo Miranda Blog: www.rodrigomiranda.cl
    6. 6. Desarrollando Proyecto •  Instalar PHP. •  fedora, CentOS, RedHat: # yum install php php-cli php-gd php-mbstring php-mcrypt php- mysql php-pdo php-xml php-xmlrpc •  Ubuntu # sudo aptitude install php5 php5-cli php5-gd php5-mcrypt php5- mysql php5-xsl php5-xmlrpc Rodrigo Miranda Blog: www.rodrigomiranda.cl
    7. 7. Desarrollando Proyecto •  Descargar última versión phpMyAdmin •  fedora, CentOS, RedHat: # Descargar del sitio web la última versión ;-) •  Ubuntu # sudo aptitude install phpmyadmin Rodrigo Miranda Blog: www.rodrigomiranda.cl
    8. 8. Desarrollando Proyecto •  Para el caso de Ubuntu, después de instalar, se debe realizar un enlace simbólico. # sudo ln –s /usr/share/phpmyadmin /var/www/ Rodrigo Miranda Blog: www.rodrigomiranda.cl
    9. 9. Desarrollando Proyecto Si no tienes instalado Subversion, es hora de hacerlo. •  fedora, CentOS, RedHat: # yum install subversion •  Ubuntu # sudo aptitude install subversion Rodrigo Miranda Blog: www.rodrigomiranda.cl
    10. 10. Desarrollando Proyecto •  Recomendamos crear un directorio que pueda contener más de una versión de Symfony. Este no debe ser accesible desde Internet. # mkdir –p /versiones-symfony/symfonyx_x_x/ # cd /versiones-symfony/symfonyx_x_x # svn co http://svn.symfony-project.com/tags/RELEASE_x_x_x/ . •  Una alternativa de descarga para el curso es la siguiente dirección: •  http://www.poodu.cl/symfony1_2_9.zip Rodrigo Miranda Blog: www.rodrigomiranda.cl
    11. 11. Desarrollando Proyecto •  Ingresar al directorio bin de la instalación Symfony: # cd /versiones-symfony/symfonyx_x_x/data/bin •  Ejecutar script check_configuration. El nos detallará si nuestro sistema cumple con los requerimientos para la instalación de Symfony. # php check_configuration.php Rodrigo Miranda Blog: www.rodrigomiranda.cl
    12. 12. Desarrollando Proyecto •  El comando symfony -V, para el caso de la instalación por Subversión, lo podremos ejecutar de la siguiente manera: # php /versiones-symfony/symfonyx_x_x/data/bin/symfony –V o # /versiones-symfony/symfonyx_x_x/data/bin/./symfony –V resultado: # symfony version x.x.x (/versiones-symfony/symfonyx_x_x/lib) Rodrigo Miranda Blog: www.rodrigomiranda.cl
    13. 13. Desarrollando Proyecto  Obtener Comandos de Symfony: # php /versiones-symfony/symfonyx_x_x/data/bin/symfony O: # /versiones-symfony/symfonyx_x_x/data/bin/./symfony Rodrigo Miranda Blog: www.rodrigomiranda.cl
    14. 14. Desarrollando Proyecto  Comandos de Symfony: Rodrigo Miranda Blog: www.rodrigomiranda.cl
    15. 15. Proyecto
a
Desarrollar
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
    16. 16. Desarrollando Proyecto   Gestionador de Encuestas Open Source: •  Considere dos aplicaciones en el proyecto, una aplicación administrador y otra pública. •  La aplicación pública mostrará cada encuesta de acuerdo a una URL amigable (distinta). •  El administrador permitirá que un usuario con privilegios gestione distintos tipos de encuestas. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    17. 17. Desarrollando Proyecto •  La aplicación permitirá crear una gran cantidad de tipo de encuestas. •  Permitir importar al Sistema una base de Usuario a través de un archivo csv o excel. •  Permitir la exportación de resultados. •  Permitir el trabajo con otras base de usuarios en el proceso de login al sistema. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    18. 18. Desarrollando Proyecto •  Obtención de gráficos y estadísticas de acuerdo a respuestas obtenidas por encuesta. •  Soporte para varios idiomas. •  Canales RSS y API que permite la interacción con otros servicios. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    19. 19. Desarrollando Proyecto •  La alternativa Open Source más conocida: Rodrigo Miranda Blog: www.rodrigomiranda.cl
    20. 20. Comenzamos
el
Desarrollo
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
    21. 21. Creamos
el
Proyecto
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
    22. 22. Creamos el Proyecto  Crear el proyecto Encuesta: # mkdir /tu/directorio/web/encuesta # cd /tu/directorio/web/encuesta Dependiendo del sistema operativo y de la instalación realizada, puede ser necesario utilizar el prefijo php antes de cada comando Symfony. # php /versiones-symfony/symfonyx_x_x/data/bin/symfony generate:project encuesta O: # /versiones-symfony/symfonyx_x_x/data/bin/./symfony generate:project encuesta Rodrigo Miranda Blog: www.rodrigomiranda.cl
    23. 23. Creamos el proyecto •  Estructura de Directorio Creada con el comando generate:project: Rodrigo Miranda Blog: www.rodrigomiranda.cl
    24. 24. Creamos el proyecto •  La gran cantidad de directorios creados con el comando generate:project permiten estándarizar los desarrollos, proponiendo una distribución de la lógica de la programación que permita una eficiente mantención. Además, otro programador de Symfony puede entender rápidamente el proyecto a través de esta estructura y así formar un buen equipo de trabajo. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    25. 25. Creamos el proyecto •  La tarea generate:project crea un atajo de Symfony dentro del directorio raíz del proyecto encuesta. Por lo mismo, de ahora en adelante, cada vez que utilicemos el comando ./symfony, lo estaremos ejecutando en la raíz del proyecto y NO desde la ruta o path del directorio donde descargamos symfony para su instalación. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    26. 26. Crear
las
Aplicaciones
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
    27. 27. Creamos las Aplicaciones   Creamos la aplicación pública con el comando generate:app : # ./symfony generate:app - -escaping-strategy=on - - csrf-secret=UniqueSecret publico Rodrigo Miranda Blog: www.rodrigomiranda.cl
    28. 28. Creamos las Aplicaciones   Creamos la aplicación administrador con el comando generate:app : # ./symfony generate:app - -escaping-strategy=on - - csrf-secret=UniqueSecret administrador Rodrigo Miranda Blog: www.rodrigomiranda.cl
    29. 29. Creamos las Aplicaciones   Seguridad contemplada en Symfony. •  Protección contra ataques XSS (Cross-site scripting) - -escaping-strategy •  Evitar vulnerabilidades que permitan ejecutar código como VBScript o JavaScript en el contexto de otro sitio web. •  Evitar la modificación de variables entre dos páginas (ejemplo cookies o envío por URL) •  Evitar la inclusión de etiquetas aceptadas en HTML que ejecuten código malicioso. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    30. 30. Creamos las Aplicaciones   Seguridad contemplada en Symfony. •  Protección contra ataques CSRF - -csrf-secret •  Evitar la falsificación de petición en sitios cruzados. •  Evitar Comandos no autorizados transmitidos por un usuario en el cual el sitio web confía. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    31. 31. Creamos las Aplicaciones   Resumen seguridad contemplada en Symfony. •  --escaping-strategy: Permite escapar la salida para evitar ataques XSS. •  --csrf-secret: Permite tokens de sesión en los formularios para prevenir los ataques CSRF. Pasando estas dos opciones a la tarea, hemos asegurado nuestro futuro desarrollo de las dos vulnerabilidades más extendidas en la web. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    32. 32. Creamos las Aplicaciones   a estructura de Directorios de cada aplicación L generada con el comando generate:app es similar a: Rodrigo Miranda Blog: www.rodrigomiranda.cl
    33. 33. Creamos las Aplicaciones Rodrigo Miranda Blog: www.rodrigomiranda.cl
    34. 34. Entornos
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
    35. 35. Entornos   Entornos: Si revisamos el directorio web/ de nuestro proyecto encontrarás una estructura similar a esta: Rodrigo Miranda Blog: www.rodrigomiranda.cl
    36. 36. Entornos   Entornos: Los archivos index.php, publico_dev.php son llamados controladores frontales de la aplicación publico. •  La primera aplicación creada en un proyecto tiene el privilegio de utilizar el archivo index.php como uno de sus controladores. •  Es por eso que los nombres de los controladores frontales de la aplicación administrador (que fue creada en segundo lugar) son: administrador.php y administrador_dev.php Rodrigo Miranda Blog: www.rodrigomiranda.cl
    37. 37. Entornos   Entornos • Entorno de desarrollo (dev) • Entorno de pruebas • Entorno intermedio • Entorno de producción (prod) Rodrigo Miranda Blog: www.rodrigomiranda.cl
    38. 38. Entornos   Entorno de desarrollo (dev) •  Este es el ambiente utilizado por desarrolladores web para añadir nuevas funciones, corregir errores y realizar seguimientos a cada uno de los componentes que forman parte de la aplicación. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    39. 39. Entorno  Diferencias de entornos •  Cada entorno no es más que un conjunto específico de configuraciones, ejemplo, el entorno de desarrollo (dev) considera un log para guardar información y la característica de caché está deshabilitada para que los cambios realizados por el desarrollador se tengan en cuenta de forma instantánea. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    40. 40. Entorno   Diferencias de entornos •  Por el contrario, en el entorno de producción se considera habilitado el caché, pero la barra depuración deshabilitada, ya que éste entorno es el que visualizará el usuario público de nuestra aplicación. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    41. 41. Entorno •  Definir un nuevo entorno en Symfony es tan sencillo como crear un nuevo controlador frontal. Más adelante en nuestro proyecto profundizaremos al respecto. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    42. 42. Entorno •  Definir un nuevo entorno en Symfony es tan sencillo como crear un nuevo controlador frontal. Más adelante en nuestro proyecto profundizaremos al respecto. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    43. 43. Controlador   Archivo web/index.php <?php Rodrigo Miranda Blog: www.rodrigomiranda.cl
    44. 44. Controlador   Opciones del método getApplicationConfiguration. •  La primera opción indica la aplicación (publico). •  La segunda opción indica el entorno (dev). •  La tercera opción el modo debug, si éste está o no habilitado (false). Rodrigo Miranda Blog: www.rodrigomiranda.cl
    45. 45. Servidor
Web
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
    46. 46. Configuración del Servidor Web <VirtualHost *:80> ServerName encuesta.localhost DocumentRoot /tu/directorio/web/encuesta/web DirectoryIndex index.php Alias /sf /versiones-symfony/symfonyx_x_x/data/web/sf Errorlog /var/log/httpd/encuestaError.log CustomLog /var/log/httpd/accessEncuesta.log common <Directory /versiones-symfony/symfonyx_x_x/data/web/sf> AllowOverride All Allow from All </Directory> <Directory /tu/directorio/web/encuesta/web> Allowoverride All Allow from All </Directory> </VirtualHost> Rodrigo Miranda Blog: www.rodrigomiranda.cl
    47. 47. Configuración del Servidor Web   En caso de que aún no esté definido, agregar la directiva ServerName al archivo de configuración de Apache2: •  fedora, CentOS, RedHat # sudo vim /etc/httpd/conf/httpd.conf •  Ubuntu # sudo vim /etc/apache2/./apache2.conf Rodrigo Miranda Blog: www.rodrigomiranda.cl
    48. 48. Configuración del Servidor Web  Directiva ServerName en archivo configuración Apache: ServerName servidorweb Rodrigo Miranda Blog: www.rodrigomiranda.cl
    49. 49. Configuración del Servidor Web  Configuración archivo hosts: /etc/hosts c:windowssystem32driversetchosts 127.0.0.1 servidorweb encuesta.localhost Rodrigo Miranda Blog: www.rodrigomiranda.cl
    50. 50. Configuración del Servidor Web   Reiniciamos Apache: •  fedora, CentOS, RedHat # sudo /etc/init.d/./httpd restart •  Ubuntu # sudo /etc/init.d/apache2 restart Rodrigo Miranda Blog: www.rodrigomiranda.cl
    51. 51. Configuración del Servidor Web  Accedemos a la aplicación pública (prod) desde un navegador: http://encuesta.localhost Rodrigo Miranda Blog: www.rodrigomiranda.cl
    52. 52. Configuración del Servidor Web  Un error Común: Rodrigo Miranda Blog: www.rodrigomiranda.cl
    53. 53. Configuración del Servidor Web •  El anterior en esencia NO es un error, sino que Apache no puede encontrar las imágenes, hojas de estilos y archivos Javascript utilizados para la barra de depuración. Por lo tanto, se debe comprobar que existe la siguiente línea en la configuración del VirtualHost: Alias /sf /versiones-symfony/symfonyx_x_x/data/web/sf Rodrigo Miranda Blog: www.rodrigomiranda.cl
    54. 54. Proyecto, Aplicaciones y Módulos •  Una alternativa para generar el alias podría ser crear un enlace simbólico o copiar directamente los contenidos del directorio: /versiones-symfony/symfonyx_x_x/data/web/sf/ al directorio: /directorio/web/blog/web/sf/ Rodrigo Miranda Blog: www.rodrigomiranda.cl
    55. 55. Configuración del Servidor Web  Si todo está correcto, deberíamos ver lo siguiente: Rodrigo Miranda Blog: www.rodrigomiranda.cl
    56. 56. Configuración del Servidor Web  Accedemos a la aplicación pública (dev) desde un navegador: http://encuesta.localhost/publico_dev.php Rodrigo Miranda Blog: www.rodrigomiranda.cl
    57. 57. Configuración del Servidor Web  Si todo está correcto, deberíamos ver lo siguiente: Rodrigo Miranda Blog: www.rodrigomiranda.cl
    58. 58. Configuración del Servidor Web •  La principal diferencia es que el controlador frontal del entorno de desarrollo nos muestra una barra de depuración en la parte superior derecha. •  La barra de depuración web se mostrará en todas las páginas del entorno de desarrollo. En ella podemos encontrar (configuración de la aplicación, los mensajes de log de la petición actual, las sentencias SQL ejecutadas en la base de datos, información sobre la memoria consumida y el tiempo total de ejecución). Rodrigo Miranda Blog: www.rodrigomiranda.cl
    59. 59. Levantamiento
Servidor
 Subversion
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
    60. 60. Levantamiento Servidor Subversion   Para qué necesitamos Subversion. •  Trabajar con más confianza. •  Volver a una versión anterior en caso de que un cambio rompa la aplicación. •  Permitir a dos o más personas trabajar simultáneamente sobre un mismo proyecto. •  Disponer de acceso directo a todas las versiones de la aplicación. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    61. 61. Levantamiento Servidor Subversion •  Al comienzo de esta presentación instalamos subversion para ejecutar el comando svn co que nos permitió descargar la última versión estable de Symfony. •  Por lo tanto comenzaremos a utilizar Subversion. Rodrigo Miranda Blog: www.rodrigomiranda.cl
    62. 62. Levantamiento Servidor Subversion   Crear repositorio para nuestro proyecto. •  fedora, CentOS, RedHat y Ubuntu # sudo mkdir /repositorios # sudo svnadmin create - -fs-type fsfs /repositorios/encuesta Rodrigo Miranda Blog: www.rodrigomiranda.cl
    63. 63. Levantamiento Servidor Subversion   Crear la estructura básica en el repositorio. •  fedora, CentOS, RedHat y Ubuntu # sudo svn mkdir –m “creación de estructura inicial” file:/// repositorios/encuesta/trunk file:///repositorios/encuesta/tags file:///repositorios/encuesta/branches Rodrigo Miranda Blog: www.rodrigomiranda.cl
    64. 64. Levantamiento Servidor Subversion   Realizamos un checkout de nuestro directorio trunk. # cd /tu/directorio/web/encuesta # sudo svn co file:///repositorios/encuesta/trunk/ . Rodrigo Miranda Blog: www.rodrigomiranda.cl
    65. 65. Levantamiento Servidor Subversion   Borramos los contenidos de los directorios cache/ y log/ dentro de nuestro proyecto, ya que no son de interés para nuestro repositorio Subversión. # sudo rm -rf cache/* log/* Rodrigo Miranda Blog: www.rodrigomiranda.cl
    66. 66. Levantamiento Servidor Subversion   Le damos permiso adecuados a los directorios cache/ y log/ dentro de nuestro proyecto, para que el servidor web pueda escribir en ellos. # sudo chmod 777 cache log Rodrigo Miranda Blog: www.rodrigomiranda.cl
    67. 67. Levantamiento Servidor Subversion   Dado que es la primera vez que subimos los archivos al servidor Subversion (repositorio encuesta) vamos importar, para ello antes debemos indicarle a nuestro cliente subversión (quién controla todo dentro de nuestro proyecto) todos los archivos que vamos a considerar. # svn add * Rodrigo Miranda Blog: www.rodrigomiranda.cl
    68. 68. Levantamiento Servidor Subversion Rodrigo Miranda Blog: www.rodrigomiranda.cl
    69. 69. Levantamiento Servidor Subversion  Como no vamos a importar los archivos de los directorios cache/ y log/, debemos añadirlos a la lista de archivos ignorados. # svn propedit svn:ignore cache Rodrigo Miranda Blog: www.rodrigomiranda.cl
    70. 70. Levantamiento Servidor Subversion •  En estos momentos tenemos abierto el editor de archivo configurado por defecto en nuestro equipo. Como queremos ignorar todos los contenidos de este directorio, realizamos lo sgte: * •  Guardamos y Cerramos el archivo Rodrigo Miranda Blog: www.rodrigomiranda.cl
    71. 71. Levantamiento Servidor Subversion  Repetimos el proceso para el directorio log/. # svn propedit svn:ignore log Rodrigo Miranda Blog: www.rodrigomiranda.cl
    72. 72. Levantamiento Servidor Subversion •  Y agregamos el * , para posteriormente guardar y cerrar el archivo. * Rodrigo Miranda Blog: www.rodrigomiranda.cl
    73. 73. Levantamiento Servidor Subversion •  Para finalizar realizamos la importación al servidor Subversion. # svn import -m “Primera importación” . file:/// repositorios/encuesta/trunk Rodrigo Miranda Blog: www.rodrigomiranda.cl
    74. 74. Desarrollando una Aplicación Rodrigo Miranda Blog: www.rodrigomiranda.cl
    75. 75. Preguntas?
 Rodrigo Miranda Blog: www.rodrigomiranda.cl

    ×