Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

¿Dónde y cómo se puede desplegar Symfony?

20 de febrero de 2017

Hola.

Tengo un sistema en Symfony que quería subir a un servicio de alojamiento y me pregunto dónde y cómo se despliega. Un par de empresas de hosting me han dicho que allí no se pueden alojar sistemas hechos con el framework.

En definitiva, una pequeña guía y ayuda me vendría de maravilla.

Gracias, saludos.


Respuestas

#1

Técnicamente, los requerimientos para hacer funcionar Symfony son mínimos: PHP 5.3 (si usas Symfony 2.7 o 2.8) o PHP 5.5 si usas Symfony 3.0 o superior; además de las extensiones ctype y json de PHP.

Si utilizas Symfony para hacer aplicaciones muy pequeñas, entonces no hay problema para desplegarlo en cualquier hosting (a menos que ese hosting sea malísimo). Si utilizas Symfony para hacer aplicaciones empresariales, entonces sí que necesitas un buen hosting, no por Symfony, sino por todos los otros servicios que vas a utilizar (Redis, Memcache, varias bases de datos, etc.)

En la documentación oficial de Symfony tienes un artículo genérico sobre desplegar aplicaciones Symfony y luego tienes varios artículos sobre cómo desplegar en servicios concretos, tales como Microsoft Azure, Heroku, etc.

@javiereguiluz

21 febrero 2017, 9:53
#2

Hola. Gracias por la respuesta. No me aclara mucho la documentación que hay al respecto. Al ser la primera vez que quería desplegar en un hosting una web hecha con un sistema framework no sé ni que hosting sería adecuado (ya que como comento anteriormente a mi en dos me han dicho que si está hecho en symfony no se puede y en un tercero, me dicen que si, pero estoy redirigiendo y me dice que no tengo permisos para acceder a la carpeta ni saben ayudarme más) o si me falla que no debo de generar en local sobre windows, si hay algo de lo que se genera con composer sobre windows que no se debe subir, si es que no hago bien los htaccess, etc. Saludos.

@BernardCohen1

22 febrero 2017, 10:38
#3

La idea general para desplegar una aplicación Symfony (o PHP en general) es:

  1. Sube al servidor todo el código de tu aplicación, excepto el directorio vendor/
  2. En el servidor, ejecuta composer install para regenerar el directorio vendor/
  3. Pequeños detalles finales dependiendo de la aplicación.

En el caso de Symfony, los "pequeños detalles finales" son cosas como comprobar que el servidor está preparado para ejecutar Symfony (utiliza el comando php bin/symfony_requirements) y si tienes los permisos correctos (lee este artículo).

@javiereguiluz

22 febrero 2017, 10:48
#4

Hola. Gracias. Y al comprobar los requerimientos de mi app el error este que quiere decir:

Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /web/web_despliegue/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Bundle/Bundle.php on line 224

He mirado el Symfony Demo y tiene lo mismo en la línea 224. El Symfony Demo si se ha desplegado(eso si, sin js ni css), pero mi aplicación no se despliega.

Saludos.

@BernardCohen1

22 febrero 2017, 17:12
#5

En esa línea tienes este código:

$pos = strrpos(static::class, '\\');

El valor ::class es una constante especial que se introdujo en PHP 5.5. ¿Quizás el servidor no tiene instalado PHP 5.5 o superior? Puedes comprobarlo ejecutando php -v en la consola o viendo el resultado de ejecutar la función phpinfo() de PHP mediante el servidor web.

@javiereguiluz

22 febrero 2017, 17:22
#6

He observado que era porque el htaccess que se autogenera tenía un valor que no era correcto.

Options -MultiViews

Gracias. Saludos.

@BernardCohen1

22 febrero 2017, 17:29