权限被拒绝 Nginx Docker。

6
我正在使用docker-compose启动开发工作区,其中包括php、nginx和mysql。所有东西都能正常启动,静态html文件也能够正常服务,但当我试图启动laravel应用程序时,出现以下错误:

无法打开流或文件“/home/html/storage/logs/laravel-2019-06-10.log”:打开流失败:权限被拒绝

我搜索了一下,看起来是个权限问题?请注意,只有数据库和内置的php服务器的docker似乎可以正常工作。
我的docker-compose.yml文件如下:
version: "3"
services:

  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: "root"
    ports:
      - 3306:3306

  php-fpm:
    image: php:7.3-fpm-alpine
    links:
      - db
    volumes:
      - "./:/home/html/"

  nginx:
    image: nginx:1-alpine
    ports:
      - "8080:80"
    links:
      - php-fpm

    volumes:
      - "./site.conf:/etc/nginx/conf.d/default.conf"
      - "./:/home/html/"

我的nginx配置:

server {
    index index.php index.html;
    listen 80  default_server;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /home/html/public;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php-fpm:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

亲切的问候:)

3
请确保 fastCGI 帐户正在运行,并且可以访问日志文件夹。 - RiggsFolly
你尝试更改文件夹权限了吗? - Alexis
文件夹权限应该正常工作。我的第一个设置是使用php -S服务器,它可以正常工作。但我会检查一下以确保它们正常。 - Friso Kluitenberg
文件夹权限为755,所以应该没问题。 - Friso Kluitenberg
哪个容器显示了这个错误? - Tarun Lalwani
2
除了权限之外,您还必须将所有者:组分配给目录。例如 chown -R $USER:www-data ./storagechown -R $USER:http ./storage - porloscerros Ψ
1个回答

0

进入 php-fpm 容器:

docker-compose -i -t exec php-fpm /bin/sh

然后更改存储文件夹的访问权限:

chmod -r 777 /home/html/storage

因为这是本地开发环境,所以权限正确与否并不重要。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接