Laravel在“存储/日志”中没有现有目录

Ana*_*sia 4 php laravel docker laravel-5.7

我想在Docker上运行Laravel 5.7应用程序。我的容器开始正常运行,但是当我尝试在浏览器中运行应用程序时,出现错误。

“ / Users / user / projects / laravel / application / storage / logs”中没有现有目录,并且该目录不可构建:权限被拒绝

我用...更改了整个项目的权限

sudo chmod -R 777 /Users/user/projects/laravel/application
Run Code Online (Sandbox Code Playgroud)

但是,什么都没有改变。还有什么可以解决这个问题的呢?

这是docker-compose.xml文件

version: '3'
services:
  web:
    image: nginx
    volumes:
    - "./vhosts.conf:/etc/nginx/conf.d/vhosts.conf"
    - "./application/public:/var/www/html/application/public"
    - "./:/var/www/html"
    - "./logs/nginx/error.log:/var/log/nginx/error.log"
    - "./logs/nginx/access.log:/var/log/nginx/access.log"
    ports:
    - "8000:80"
    environment:
    - NGINX_HOST=ld2.web
    restart: always
    depends_on:
    - php
  php:
    image: php:7.2-fpm
    restart: always
    volumes:
    - "./application/storage/php/php.ini:/usr/local/etc/php/conf.d/php.ini"
    - "./application/public:/var/www/html/application/public"
    - "./:/var/www/html"
Run Code Online (Sandbox Code Playgroud)

这是ls -ls应用程序的输出

drwxrwxrwx  26 user  staff     832 Oct 24 14:50 .
drwxrwxrwx   8 user  staff     256 Oct 24 01:06 ..
-rwxrwxrwx   1 user  staff     213 Sep  4 16:12 .editorconfig
-rwxrwxrwx   1 user  staff     704 Oct 24 00:38 .env
-rwxrwxrwx   1 user  staff     655 Sep  4 16:12 .env.example
-rwxrwxrwx   1 user  staff     111 Sep  4 16:12 .gitattributes
-rwxrwxrwx   1 user  staff     177 Sep  4 16:12 .gitignore
drwxrwxrwx   7 user  staff     224 Sep  4 16:12 app
-rw-r--r--   1 user  staff       0 Oct 24 14:56 application.txt
-rwxrwxrwx   1 user  staff    1686 Sep  4 16:12 artisan
drwxrwxrwx   4 user  staff     128 Sep  4 16:12 bootstrap
-rwxrwxrwx   1 user  staff    1527 Sep  4 16:12 composer.json
-rwxrwxrwx   1 user  staff  148959 Oct 24 00:35 composer.lock
drwxrwxrwx  15 user  staff     480 Sep  4 16:12 config
drwxrwxrwx   6 user  staff     192 Sep  4 16:12 database
-rwxrwxrwx   1 user  staff    1022 Sep  4 16:12 package.json
-rwxrwxrwx   1 user  staff    1134 Sep  4 16:12 phpunit.xml
drwxrwxrwx  10 user  staff     320 Sep  4 16:12 public
-rwxrwxrwx   1 user  staff    3924 Sep  4 16:12 readme.md
drwxrwxrwx   6 user  staff     192 Sep  4 16:12 resources
drwxrwxrwx   6 user  staff     192 Sep  4 16:12 routes
-rwxrwxrwx   1 user  staff     563 Sep  4 16:12 server.php
drwxrwxrwx   6 user  staff     192 Oct 24 01:20 storage
drwxrwxrwx   6 user  staff     192 Sep  4 16:12 tests
drwxrwxrwx  40 user  staff    1280 Oct 24 00:41 vendor
-rwxrwxrwx   1 user  staff     537 Sep  4 16:12 webpack.mix.js
Run Code Online (Sandbox Code Playgroud)

ls -la应用程序/存储

drwxrwxrwx   6 user  staff  192 Oct 24 01:20 .
drwxrwxrwx  27 user  staff  864 Oct 24 15:44 ..
drwxrwxrwx   4 user  staff  128 Sep  4 16:12 app
drwxrwxrwx   7 user  staff  224 Sep  4 16:12 framework
drwxrwxrwx   2 user  staff   64 Oct 24 01:20 logs
drwxrwxrwx   3 user  staff   96 Oct 24 00:43 php
Run Code Online (Sandbox Code Playgroud)

Sat*_*wat 9

试试这个命令,

php artisan optimize:clear
Run Code Online (Sandbox Code Playgroud)

如果 php artisan 报错,则执行,

composer update
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。这对我有用。优化后,您需要使用 php artisan config:cache 再次配置缓存,然后运行 ​​php artisan storage:link (2认同)

Ale*_*xey 5

似乎配置中的APP_LOG_FILE引用了主机的日志文件路径(即/Users/user/projects/laravel/application/storage/logs)并设置为绝对路径,但是在容器内部,该路径是不同的,实际上是/var/www/html/application/storage/logs。您可以在.env中更改它,然后重试吗?

  • 您的建议有所帮助!只需要在容器中运行`php artisan cache:config`,而不是在主机上运行)非常感谢您的帮助 (2认同)