gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:19:27 33 4
gpt4 key购买 nike

我有两个 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

在我正在做的应用程序 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时出现如下错误

The stream or file "/var/www/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied

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

最佳答案

使您的 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/wwwwww-data 所有,它是 php-fpm 的默认用户。

因为它是用用户www-data编译的。

引用-

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

关于php - 使用 Laravel 和 Docker 的权限被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48619445/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com