you writable the sure present must make have failed cache bootstrap appropriate and php laravel laravel-5 composer-php

php - writable - Laravel lanza ''El directorio bootstrap/cache debe estar presente y puede escribirse'' error despuĆ©s de la actualizaciĆ³n



laravel clear cache views (5)

Utilicé ''actualización del compositor'', que actualizó algunos paquetes. Durante el proceso de actualización, el sitio web sigue funcionando. Sin embargo, después de que dice "El archivo de servicios compilados ha sido eliminado", el sitio web no se carga y en su lugar dice:

Exception in ProviderRepository.php line 190: The bootstrap/cache directory must be present and writable.

Lo más extraño es que, cuando ejecuto "actualización del compositor" nuevamente, el sitio web comienza a funcionar nuevamente, hasta que se elimina el archivo de servicios compilados, momento en el que vuelve a aparecer el mismo error. Ya he intentado las cosas habituales que deberían hacerse cuando aparece este error (chown -R todo para el usuario / grupo correcto y chmod todos los archivos y carpetas 664 y 775 respectivamente).

Ya no sé qué hacer, ya que el error no parece "correcto".


Versión corta : si se está cargando con algo como AWS eb cli, verifique si se está implementando la carpeta bootstrap / cache (sin hablar de su contenido).


Algunos antecedentes detrás de mi respuesta

Estoy usando Elastic Beanstalk de Amazon Web Services para alojar mi proyecto Laravel. Como recién comencé a usar Laravel, no tengo mucha idea sobre su funcionamiento. Hace dos días, mis nuevas implementaciones se colapsaron a mitad de camino con el mensaje de error de OP.

Más temprano ese día, me di cuenta de que no estaba usando

php artisan config:cache

para almacenar configuraciones en caché para hacer las cosas más rápido. Y agregué lo mismo en las cláusulas " post-install-cmd " y " post-update-cmd " de composer.json.
Y también agregué una declaración en el archivo .ebignore para no cargar el contenido de / bootstrap / cache (ya que su contenido es dependiente del entorno, también conocido como mis configuraciones de localhost no tienen ningún significado en mi servidor de producción)

Y facepalm no me di cuenta de que esto detendría la carga de la carpeta bootstrap / cache (como Like git, eb cli ignora las carpetas vacías).
Entonces, cuando empecé a desplegar por la noche, las implementaciones estaban destinadas a fallar.

Por lo tanto, ahora acabo de colocar el marcador de posición vacío (por ejemplo) .gitkeep en bootstrap / cache . Y los despliegues están funcionando una vez más :)
(Aunque el problema era tan simple, me di cuenta de la razón después de ssh-ing y cavar una instancia de EBS EC2 para algunas horas de sueño dulce ~. ~)


En su archivo de directorio Laravel, ejecute:

sudo chmod -R 775 bootstrap/cache/


Estoy usando cmder en Windows 10 en modo no elevado (no administrador). comando php artisan cache: clear no funcionó para mí. La carpeta bootstrap / cache no existía. Creé la carpeta y la eliminé solo de la carpeta bootstrap y bootstrap / cache. Tanto la instalación del compositor como la actualización del compositor están funcionando ahora.


Intenta esto después de haber ejecutado la actualización del compositor:

php artisan cache:clear


Si se está utilizando un servidor web (por ejemplo, Apache o Nginx ) como un extremo frontal, la solución es hacer que el directorio bootstrap/cache un servidor de bootstrap/cache . Para Nginx :

$ sudo chgrp -R nginx bootstrap/cache