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

tutorial - Error al escribir el archivo de caché "/var/www/myapp/app/cache/dev/classes.php" al borrar el caché



symfony tutorial español pdf (4)

He instalado Symfony 2.0.7 en Ubuntu 11.10. Tengo este problema:

Cambié los permisos de los directorios de logs cache e usando los siguientes comandos:

chmod 777 -R cache chmod 777 -R logs

y todas las funciones como estaba esperando.

Entonces hice:

app/console cache:clear

Borrar la caché para el entorno dev con depuración verdadera

los permisos de caché / dev cambian a 755 y Symfony no puede escribir en eso:

RuntimeException: no se pudo escribir el archivo de caché "/var/www/myapp/app/cache/dev/classes.php".

en /var/www/myapp/app/bootstrap.php.cache línea 1079 en ClassCollectionLoader :: writeCacheFile () en /var/www/myapp/app/bootstrap.php.cache línea 1017 en ClassCollectionLoader :: load () en / var / www / myapp / app / bootstrap.php.cache línea 682 en Kernel-> loadClassCache () en /var/www/myapp/web/app_dev.php línea 23

¿Cómo puedo resolver este aparente error en Symfony 2?


Al mirar tus publicaciones, llegué a esta página

http://symfony.com/doc/current/setup/file_permissions.html

Entonces hice esto:

HTTPDUSER = ps axo user,comm | grep -E ''[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx'' | grep -v root | head -1 | cut -d/ -f1 ps axo user,comm | grep -E ''[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx'' | grep -v root | head -1 | cut -d/ -f1

sudo setfacl -R -mu: "$ HTTPDUSER": rwX -mu: whoami : rwX var

sudo setfacl -dR -mu: "$ HTTPDUSER": rwX -mu: whoami : rwX var

Y resolvió mi problema


Bueno, estoy usando setfacl para evitar esos problemas, pero todavía tengo problemas. Estoy trabajando en un directorio de usuario estándar, así que esto no funciona para mí:

APACHEUSER=`ps aux | grep -E ''[a]pache|[h]ttpd'' | grep -v root | head -1 | cut -d/ -f1` sudo setfacl -R -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs sudo setfacl -dR -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs

Si usted también, haga esto: (como usuario privilegiado si es necesario, por supuesto)

sudo rm -rf app/cache app/logs

Luego, como usuario NORMAL crea ambos directorios y luego aplica los siguientes comandos como usuario NORMAL también (sin sudo):

exit (from root if necessary) mkdir app/cache app/logs APACHEUSER=`ps aux | grep -E ''[a]pache|[h]ttpd'' | grep -v root | head -1 | cut -d/ -f1` setfacl -R -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs setfacl -dR -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs

Nota: recuerde que hay dos espacios entre -d/ y -f1

¡Buena suerte!


Consulte la nota al margen de Permisos de configuración en la sección Configuración y configuración . Use el enfoque ACL con setfacl .

p.ej

sudo setfacl -R -m u:apache:rwX -m u:`whoami`:rwX app/cache app/logs sudo setfacl -dR -m u:apache:rwX -m u:`whoami`:rwX app/cache app/logs

(donde apache es su usuario HTTPD)


En mi caso, solo hago como usuario root:

sudo -u apache app/console ca:cl

apache: esto variará según el propietario de su directorio web. se predetermina a apache asumiendo que está utilizando apache para su servidor web.