ágil tutorial symfony2 instalar español descargar desarrollo con php symfony

php - symfony2 - symfony tutorial español pdf



symfony2-¿cómo cambiar de "dev" a "prod"? (6)

Cambiar el propietario en su lugar.
sudo chown www-data:www-data -R app/cache
sudo chown www-data:www-data -R app/logs

Eso permite que el navegador posea las carpetas. la sintaxis es:
chown <USER>:<GROUP> <SWITCH> <DIRECTORY>

Descargué Symfony2 y puedo ejecutarlo desde app_dev.php.

Pero cuando comienzo desde app.php, aparece una página de error 404.

app.php es, por supuesto, allí y se ejecuta.

El error ocurre aparentemente en algún lugar después de la última línea de código en app.php:

$kernel->handle(Request::createFromGlobals())->send();

Supongo que hay un interruptor en algún lugar que tengo que configurar.

EDITAR :

Según lo sugerido por GeLo, agregué el enrutamiento para la versión de producción a app / config / routing.yml.

_welcome: resource: "@AcmeDemoBundle/Resources/config/routing.yml" prefix: /

Creé src / Acme / DemoBundle / Resources / config / routing.yml con contenido:

bla: pattern: / defaults: {_controller:AcmeDemoBundle:Demo:index}

En DemoController::indexAction() coloqué un die(__FILE__) ;

nada; Todavía obtengo 404 de app.php!

EDITAR con respecto a la respuesta:

./app/console --env=prod cache:clear

Hizo el truco. importa el parámetro env.


En su archivo "web / app.php"

$kernel = new AppKernel(''prod'', false);

Cambia el valor a "verdadero".

$kernel = new AppKernel(''prod'', true);

Ahora puede cargar la aplicación en modo de producción.


Lo arreglé con solo dejar que la cuenta del servidor web (es decir, ''master-chef'' sea el directorio / Symfony2 / app / cache / prod. El comando es el siguiente:

$sudo chown master-chef -R /var/www/Symfony2/app/cache/prod


Por defecto, Symfony 2 se entrega con un paquete de demostración al que solo se puede acceder desde el entorno de desarrollo.

El entorno de producción no contiene ninguna ruta, por lo que es normal que obtenga una página de error 404.

EDITAR:

¿Estás seguro de que tu paquete está habilitado en AppKernel.php?

En caso afirmativo, borre la memoria caché con el siguiente comando: ./app/console cache:clear

Compruebe si la ruta está habilitada con el siguiente comando: ./app/console router:debug


Solo quería integrar un par de consejos para este tipo de problema, ya que lo enfrenté hoy en día con una nueva instalación de Symfony2.

Como instalación nueva, normalmente obtiene AppBundle en / src / AppBundle junto con AcmeDemoBundle en / src / Acme / DemoBundle

Si desea ejecutar AcmeDemoBundle en app_dev y, mientras tanto, tiene una aplicación (es decir, AppBundle provisto con instalación nueva) en app.php (y evite 404) también puede hacer algo como eso:

en /app/config/routing_dev.yml comente las siguientes filas (si las tiene):

_main: resource: routing.yml

en /app/config/routing.yml agregue una nueva ruta (si no la tiene)

index: pattern: / defaults: { _controller: AppBundle:Default:index }

luego vacíe el caché como ya lo aconsejaron los demás y pruebe la aplicación en

1) http: // your_application_path / web /

2) http: // your_application_path / web / app_dev.php

Si todo está bien en el primero, debería obtener una página blanca con una cadena "Página de inicio". (para editar éste vaya en /app/Resources/views/default/index.html.twig ... El diseño para este es base.html.twig) y, en el segundo, debe obtener el DemoBundle proporcionado por Symfony2.

¡Espero eso ayude!


Su problema está relacionado con el caché de Symfony2. Tenía los mismos problemas. Prueba esto:

  • sudo php app/console cache:clear --env=prod --no-debug
  • sudo chmod 777 -R ../sf2/ (sf2) es el directorio principal de mi proyecto

Ya terminaste