2012-09-17 18 views
13

He leído muchos artículos y preguntas sobre la implementación del proyecto Symfony 2 en un servidor de producción, pero aún así, esto no está claro. La implementación del proyecto Symfony parece un infierno: nadie sabe cómo hacer esto correctamente. Supongo que el mejor tema que veo es Deploying a Symfony2 project, pero aún así, mucho no está claro. Lo leí y descubrí que en esa pregunta, la persona agregó su propia IP a una lista de direcciones IP permitidas, pero esto significa que solo esta IP puede acceder a este sitio, pero debo permitir que todos lo utilicen.Pasos para mover el proyecto Symfony 2 al alojamiento?

y cómo puedo hacer que el sitio de trabajo con el camino de www.mydomen.com, en lugar de www.mydomen.com/web/app_dev.php/index (I puede corregir ruta a través de Symfony, pero funciona después de app_dev.php ya través de hosting, pero ¿cómo puede funcionar antes/app_dev.php? Parece que App-dev .php siempre debe estar en mi camino).

Entonces, ¿cómo debo transferir paso a paso el proyecto desarrollado del servidor local al servidor de producción, por favor?

+0

Así es como lo hago http://stackoverflow.com/questions/25887925/deploying-symfony-2-5-3-website-to-production-server – Baig

Respuesta

20

Bien, descubro cómo implementar correctamente la aplicación en el alojamiento compartido. Aquí está:

  1. Depende de la clase de alojamiento que tiene: si tiene una consola SSH , a continuación, puede hacerlo en el recibimiento después del paso 2, si no lo ha luego hacerlo de forma local: ejecución comando php app/console cache:clear --env=prod.
  2. Supongamos que tiene sus carpetas de hosting youdomain/public_html, por lo que en public_html debe ubicar todos los archivos web. Debe cargar todo desde el proyecto de Symfony (carpetas: aplicación, src, proveedores, bin; archivos: deps, deps.lock), excepto la carpeta web en la carpeta youdomain. Todo desde la carpeta web debe cargarse a la carpeta public_html.
  3. Compruebe CHMOD para carpetas de aplicación/caché y aplicación/registros, debe haber acceso de escritura.
  4. Si no hay ningún archivo en .htaccesspublic_html, a continuación, crear y añadir dicho código en ella: https://raw.github.com/symfony/symfony-standard/master/web/.htaccess
  5. Ahora se debe utilizar en lugar de youdomain.com/index youdomain.com/app_dev.php/index, que se utiliza a nivel local.

Si su sitio aún así no funciona, puede abrir el archivo web/config.php y encontrar el código en el cheque para IP a cabo, usted encuentra que hay solamente IP 127.0.0.1, agregar su IP actual a esta lista y cargar la nueva configuración en un servidor. Luego puede abrir la ruta yourdomain/config.php y verificar qué ocurre. Si config.php muestra que todo está bien, pero su sitio aún no funciona, puede habilitar app_dev.php para depurar: abra app/app_dev.php y agregue su IP a la lista como para config.php hecho anteriormente. Ahora puede ejecutar scripts localmente usando app_dev.php.

+0

Lo hice, pero tengo este error: Error de análisis: error de sintaxis, inesperado T_STRING, esperando T_CONSTANT_ENCAPSED_STRING o '(' en /home/.../public_html/app.php en la línea 3. En esta línea está: use Symfony \ Component \ ClassLoader \ ApcClassLoader; – user3383675

+0

No lo hace conectarse con la implementación, parece haber algún error de sintaxis. – sphinks

+0

La carpeta web de Symfony debe existir. En lugar de cambiar el nombre de la carpeta web a public_html, es mejor hacer un enlace simbólico llamado public_html que apuntará a la web (public_html -> web). En otro caso, varios comandos se quejarán de la pérdida de la carpeta web, por ejemplo, activos: instalar. –