当前位置: 首页 > 面试题库 >

使用Laravel和Docker的权限被拒绝错误

裴钧
2023-03-14
问题内容

我有两个Docker容器:Nginx和App。
该应用程序容器扩展了PHP-fpm,并具有我的Laravel代码。

在我的docker-compose.yml工作中:

version: '2'
services:
    nginx:
        build:
            context: ./nginx
            dockerfile: ./Dockerfile
        ports:
            - "80:80"
        links:
            - app
    app:
        build:
            context: ./app
            dockerfile: ./Dockerfile

在我的Nginx Dockerfile中,我正在做:

FROM nginx:latest
WORKDIR /var/www
ADD ./nginx.conf /etc/nginx/conf.d/default.conf
ADD . /var/www
EXPOSE 80

在我的App Dockerfile中,我正在做:

FROM php:7-fpm
WORKDIR /var/www
RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client && docker-php-ext-install mcrypt pdo_mysql
ADD . /var/www

成功运行docker-compose up后,尝试localhost时出现以下错误

流或文件“ /var/www/storage/logs/laravel.log”无法打开:打开流失败:权限被拒绝

据我了解,该存储文件夹需要Web服务器可写。
我应该怎么做才能解决这个问题?


问题答案:

使您的Dockerfile如下所示-

FROM php:7-fpm
WORKDIR /var/www
RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client && docker-php-ext-install mcrypt pdo_mysql
ADD . /var/www
RUN chown -R www-data:www-data /var/www

这使目录/var/www拥有,www-data该目录是的默认用户php-fpm

由于它是使用user编译的www-data

参考-

https://github.com/docker-
library/php/blob/57b41cfc2d1e07acab2e60d59a0cb19d83056fc1/7.0/jessie/fpm/Dockerfile



 类似资料:
  • Docker安装在AWS EC2 Ubuntu 16.04实例上,如下所示: 引发权限被拒绝错误: 尝试连接到处的Docker守护程序套接字时,权限被拒绝unix:///var/run/docker.sock: 收到http:///var/run/docker.sock/v1.39/info: 拨号unix/var/run/docker.sock:connect:权限被拒绝 显示: uname-a

  • 问题内容: 我运行 npm install lodash, 但它抛出 错误:EACCES:权限被拒绝 错误。我知道这是权限问题,但据我所知,本地安装节点模块不需要sudo权限。如果我使用sudo运行它,它将安装在〜/ node_modules文件夹中。 drwxrwxr-x 是现有文件夹的文件许可权。我不知道可能出了什么问题。 下面是错误消息。 问题答案: 使用 npm init 创建 packa

  • 我运行npm install lodash,但它抛出错误:EACCES:权限被拒绝错误。我知道这是权限问题,但据我所知,在本地安装节点模块不需要sudo权限。如果我用sudo运行它,它会安装在~/node\u modules文件夹中。drwxrwxr-x是现有文件夹的文件权限。我不知道可能出了什么问题。 下面是错误消息。

  • 我在Ruby 2.0.0-p353和OSX Mavericks上使用Rails 4.0.2、Guard 2.2.4、Guard rspec 4.2.4、rspec Rails 2.14.0、Capybara 2.2.1和Poltergeist 1.5.0。 当我运行bundle exec Guard时,我得到了很多失败的错误消息:一个错误发生在后钩子Errno::EACCES:权限拒绝- /usr

  • 我已经搜索了几个小时了,但找不到解决方案,即使有类似的问题。 我试图在一个全新的laravel安装上运行php artisan tinker,用户是网站管理员(项目目录demo的所有者),但我遇到了以下错误: 使用详细标志运行: 异常跟踪:照亮\Foundation\Bootstrap\HandleExceptions- 希望有人能给我一个提示。谢谢 分布:Raspbian GNU/Linux8(

  • 我在django admin(127.0.0.1:8000/admin)中尝试为用户添加个人资料照片时收到此错误消息 有人能帮我找出原因吗? OSError at /admin/role/role/6/[Errno 13]权限被拒绝:'/User'请求方法: POST请求URL:http://127.0.0.1:8000/admin/role/role/6/Django版本: 1.8.2异常类型: