Foros del Web » Programando para Internet » PHP » Symfony »

Puesta en producción de proyecto Symfony2

Estas en el tema de Puesta en producción de proyecto Symfony2 en el foro de Symfony en Foros del Web. Un saludo a todos los miembros de forosdelweb! Nuevamente vuelvo a preguntar acerca de Symfony2. He terminado un proyecto en Symfony2 y quiero montarlo en ...
  #1 (permalink)  
Antiguo 07/05/2013, 10:25
 
Fecha de Ingreso: agosto-2011
Ubicación: Caracas
Mensajes: 24
Antigüedad: 12 años, 8 meses
Puntos: 0
Puesta en producción de proyecto Symfony2

Un saludo a todos los miembros de forosdelweb!

Nuevamente vuelvo a preguntar acerca de Symfony2. He terminado un proyecto en Symfony2 y quiero montarlo en un servidor para ponerlo en producción, pero no quiero utilizar la url MiServidor/MiProyecto/web/app.php/index.php para acceder al index de mi proyecto, quisiera acceder al index del proyecto de esta forma por ejemplo: Miservidor/Miproyecto/index.php. Que debo hacer?... que archivos debo modificar??....

Espero que alguien pueda ayudarme! Muchas gracias!
  #2 (permalink)  
Antiguo 07/05/2013, 11:04
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: Puesta en producción de proyecto Symfony2

Me paso lo mismo, use este htacces en la raiz del servidor
Código Apache:
Ver original
  1. <IfModule mod_rewrite.c>
  2.     RewriteEngine On
  3.  
  4.     RewriteBase /
  5.     RewriteRule ^(.*)$ /proyecto/web/$1 [QSA,L]
  6. </IfModule>
__________________
>> abimaelmartell.com
  #3 (permalink)  
Antiguo 07/05/2013, 13:00
 
Fecha de Ingreso: agosto-2011
Ubicación: Caracas
Mensajes: 24
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Puesta en producción de proyecto Symfony2

Gracias por tu respuesta!.... Si quiero hacer una prueba local antes de montarlo en servidor de producción, donde debo colocar exactamente ese htacces?. Comentaste que debo colocarlo en la raiz del servidor, yo estoy usando WAMP y lo coloque dentro de la carpeta www y no me funcionó, lo coloqué dentro de la propia carpeta wamp y tampoco me funcionó, por ultimo lo coloque en la raíz de mi proyecto y tampoco me funciona.

Que estoy haciendo mal??.....

Gracias de antemano!
  #4 (permalink)  
Antiguo 07/05/2013, 14:22
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: Puesta en producción de proyecto Symfony2

suponiendo que tienes esta estructura
-- www
----- proyecto

donde www es la raiz del localhost, y para acceder al proyecto usas localhost/proyecto/web, si quieres hacer que al entrar a localhost te carge proyecto/web/ tienes que usar el htaccess que puse arriba, ovbiamente tienes que adaptarlo al path donde este tu proyecto, y que siempre apunte a web
__________________
>> abimaelmartell.com
  #5 (permalink)  
Antiguo 07/05/2013, 16:41
 
Fecha de Ingreso: agosto-2011
Ubicación: Caracas
Mensajes: 24
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Puesta en producción de proyecto Symfony2

Gracias abimex!... lo estaba haciendo bien, el problema era que no tenia habilitado el mod_rewrite en apache, lo hice y me funcionó.

Pero ahora tengo otra duda, y me regreso a donde estaba antes, antes de cambiar las urls. Me di cuenta que utilizando tanto el app_dev.php como el app.php siempre me carga es el entorno de desarrollo, y me doy cuenta porque siempre me aparece la toolbar en la parte inferior de la página y dice environment dev. Es decir, independientemente de que use MiServidor/MiProyecto/web/app_dev.php/index.php o MiServidor/MiProyecto/web/app.php/index.php siempre se ejecuta el entorno de desarrollo y no entiendo por que :S.....

Muchas gracias por tu ayuda!
  #6 (permalink)  
Antiguo 07/05/2013, 17:44
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: Puesta en producción de proyecto Symfony2

revisa esto en tu app.php
Código PHP:
Ver original
  1. $kernel = new AppKernel('prod', false);
si esta en dev, ponlo en prod :P
__________________
>> abimaelmartell.com
  #7 (permalink)  
Antiguo 07/05/2013, 18:13
 
Fecha de Ingreso: agosto-2011
Ubicación: Caracas
Mensajes: 24
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Puesta en producción de proyecto Symfony2

Acabo de chequearlo y está bien, esta asi: $kernel = new AppKernel('prod', false);

Pero me estoy dando cuenta que el problema parece estar en los routing.yml, ya que probé en otros navegadores y cuando trato de abrir el app.php me da un error 404 The requested URL /index was not found on this server, y en app_dev si consigue la ruta.

La confusión se me presentó porque cuando abría el app.php con Chrome en vez de darme el error 404, lo que estaba haciendo era cargando el app_dev no se por que. Entonces pensé que siempre se estaba ejecutando el entorno de desarrollo. Pero ya veo que no.

Sin embargo veo que todo en los routing.yml esta bien, aun no encuentro la solución. Si tienes alguna idea me dices :).... Gracias por tu ayuda y tu paciencia!
  #8 (permalink)  
Antiguo 08/05/2013, 09:07
 
Fecha de Ingreso: agosto-2011
Ubicación: Caracas
Mensajes: 24
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Puesta en producción de proyecto Symfony2

Una ultima cosa abimex!. El htaccess que me dijiste me funcionó perfecto y con eso se quito la parte de web/app.php de la URL... Y para acceder a mi proyecto me voy a http:localhost/index.

Sin embargo, lo que me gustaría es poder acceder a la raíz de mi servidor con http://localhost y acceder al proyecto que hice en Symfony2 con http://localhost/Miproyecto/index.

Viendo el htaccess que tu publicaste, supuse que cambiando el RewriteBase solventaría el problema, pero no me funcionó. Lo que hice fue esto:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /Miproyecto/
RewriteRule ^(.*)$ /Miproyecto/web/$1 [QSA,L]
</IfModule>

He modificado el htaccess de mil formas, y aun no hallo la manera de lograr lo que quiero, y la verdad es que no conozco mucho sobre el funcionamiento de los htaccess, eso hace que me cueste mas conseguir la solución.

Gracias nuevamente!
  #9 (permalink)  
Antiguo 08/05/2013, 16:28
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: Puesta en producción de proyecto Symfony2

si lo que quieres es
http://localhost/ -> Servidor
http://localhost/Miproyecto/ -> App Symfony2

en la carpeta Miproyecto pon el htaccess que te pase, modifica la regla para que apunte a /web
__________________
>> abimaelmartell.com
  #10 (permalink)  
Antiguo 24/07/2014, 06:21
Avatar de Delek  
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 75
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Puesta en producción de proyecto Symfony2

Retomo este tema por que no consigo subir un proyecto en symfony, lo hice como subia los de 1.4 pero parece no funcionar.

Hice los siguiente:
subir por FTP todo a la carpeta públic_html
Borré contenido de las carpetas cache y logs y les di permisos de escritura 777
En App Modifiqué el archivo parameters.yml con los nuevos parámetros de la BD
Cambié el htaccess en el raiz por el siguiente:

Código:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(.*)$ /web/$1 [QSA,L]
</IfModule>
En el log me dice esto:

Código:
[2014-07-24 12:19:48] request.CRITICAL: Uncaught PHP Exception PDOException: "SQLSTATE[28000] [1045] Access denied for user 'magic'@'10.2.1.9' (using password: YES)"
Lo que no entiendo es por que me dice que el usuario es [email protected], si en el archivo parameters.yml lo he modificado como u78154340_user
  #11 (permalink)  
Antiguo 24/07/2014, 07:46
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Puesta en producción de proyecto Symfony2

En el app.php debes de tener seteado a true:
Código PHP:
Ver original
  1. $kernel = new AppKernel('prod', true);

Revisa el archivo config.yml es posible que ya tenga datos en esta seccion:
Código yml:
Ver original
  1. # Doctrine Configuration
  2. doctrine:
  3.     dbal:
  4.         driver:   %database_driver%
  5.         host:     %database_host%
  6.         port:     %database_port%
  7.         dbname:   %database_name%
  8.         user:     %database_user%
  9.         password: %database_password%
  10.         charset:  UTF8
  11.         # if using pdo_sqlite as your database driver, add the path in parameters.yml
  12.         # e.g. database_path: %kernel.root_dir%/data/data.db3
  13.         # path:     %database_path%
  14.  
  15.     orm:
  16.         auto_generate_proxy_classes: %kernel.debug%
  17.         auto_mapping: true
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #12 (permalink)  
Antiguo 28/07/2014, 05:44
Avatar de Delek  
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 75
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Puesta en producción de proyecto Symfony2

Efectivamente, tenia el kernel prod a false. Lo cambié ya no me lanza el error 500.
Sin embargo me da problemas con las tablas.
www.magicol.tk
Yo creo que es por el config.yml, pero no hago mas que revisar la parte de doctrine y no veo nada raro.

Código:
# Doctrine Configuration
doctrine:
    dbal:
        driver:   "%database_driver%"
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8
        # if using pdo_sqlite as your database driver, add the path in parameters.yml
        # e.g. database_path: "%kernel.root_dir%/data/data.db3"
        # path:     "%database_path%"

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        auto_mapping: true
  #13 (permalink)  
Antiguo 28/07/2014, 08:52
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Puesta en producción de proyecto Symfony2

Necesitas actualizar el schema de la base de datos.
Código PHP:
Ver original
  1. app/console doctrine:schema:update --force
Recuerda hacer un respaldo antes de esto si ya existen datos en la BD.
Por cierto ya en producción siempre que realices cambios recuerda limpiar el cache.
Código PHP:
Ver original
  1. app/console cache:clear --env=prod
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #14 (permalink)  
Antiguo 29/07/2014, 02:11
Avatar de Delek  
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 75
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Puesta en producción de proyecto Symfony2

El problema es que no tengo acceso al servidor, como ves es un hosting gratuito y hasta el dominio .tk también es gratuito. Si la cosa va bien ya compraría el .com y .es a final de año.

De todas formas la caché la borro desde el ftp y el update creo que no haría falta ya que no he tocado la entidad usuario.
  #15 (permalink)  
Antiguo 29/07/2014, 03:25
Avatar de Delek  
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 75
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Puesta en producción de proyecto Symfony2

Ya he dado con el problema, resulta que al subirlo a producción, no se porque, las tablas salen con la primera letra en mayúsculas. Lo único que se me ocurre es poner el namig strategy a minusculas.

Código:
doctrine:
    orm: 
        naming_strategy: doctrine.orm.naming_strategy.underscore
Sin embargo ahora no me salen las demás imágenes, a ver como arreglo este desastre, por que me temo que voy a tener que definir de nuevo las entidades.
  #16 (permalink)  
Antiguo 29/07/2014, 04:39
Avatar de Delek  
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 75
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Puesta en producción de proyecto Symfony2

Y seguimos con los problemas, ahora todo parece funcionar correctamente, sin embargo al entrar en el backend e introducir un nuevo artículo me sale el siguiente mensaje de error:

Código:
The Symfony\Component\Intl\NumberFormatter\NumberFormatter::setAttribute() method's argument $attr value 2 behavior is not implemented. The supported values for ROUNDING_MODE are: ROUND_HALFEVEN, ROUND_HALFDOWN, ROUND_HALFUP. Please install the "intl" extension for full localization capabilities.
En la ruta vendor/symfony/symfony/src/symfony/component/Intl/Numberformatter/NumberFormatter.php veo que efectivamente esta instalado dicho archivo, por lo que no se si es un problema de versiones.

Última edición por Delek; 29/07/2014 a las 04:46
  #17 (permalink)  
Antiguo 29/07/2014, 08:09
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Puesta en producción de proyecto Symfony2

Cita:
The Symfony\Component\Intl\NumberFormatter\NumberForma tter::setAttribute() method's argument $attr value 2 behavior is not implemented. The supported values for ROUNDING_MODE are: ROUND_HALFEVEN, ROUND_HALFDOWN, ROUND_HALFUP. Please install the "intl" extension for full localization capabilities.
al parecer no tienes instalada la extensión intl en el servidor. Necesitas ver su phpinfo para verificarlo y solicitar su instalación.

Cita:
Ya he dado con el problema, resulta que al subirlo a producción, no se porque, las tablas salen con la primera letra en mayúsculas. Lo único que se me ocurre es poner el namig strategy a minusculas.
Esta parte es por que tus tablas se basan en el nombre de la entidad. no necesitas cambiar la estrategia.
Si el nombre de tus tablas no corresponde con el de la clase, puede mapearlas de todos modos usando la anotacion Table()
Código PHP:
Ver original
  1. /**
  2.  * @Entity
  3.  * @Table(name="mi_tabla")
  4.  */
  5. class MiTabla
  6. {
  7.     //...
  8. }

Recuerda actualizar el esquema
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #18 (permalink)  
Antiguo 30/07/2014, 02:36
Avatar de Delek  
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 75
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Puesta en producción de proyecto Symfony2

Me han contestado que no me habilitan la extension INTL, pero que lo puedo hacer desde el .htaccess.

He intentado hacer algo como esto, pero no funciona.

php_extension intl.so
  #19 (permalink)  
Antiguo 30/07/2014, 08:01
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Puesta en producción de proyecto Symfony2

Para este tipo de casos generalmente quien presta el servicio tiene una serie de tutoriales para cuando se requiere algo en particular.
Creo que necesitas solicitar soporte para que te digan exactamente que hacer para cargar la extensión desde el htaccess
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #20 (permalink)  
Antiguo 31/07/2014, 07:27
Avatar de Delek  
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 75
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Puesta en producción de proyecto Symfony2

Gracias hhs, al final voy a tener que contratar otro hosting, lo malo de hostinger, es que al ser gratuito no te hacen ni caso hasta que no compres la opción premium.

Le estoy dando vueltas a hacerlo con hostalia, que me ha dado buen resultado con varios clientes. Esto era un proyecto personal para vender unas cartas de colección, por eso no quería invertir ni un duro hasta ver si funcionaba.

Etiquetas: producción, symfony2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:22.