如何解决我的第一个Laravel开发环境与Docker的权限问题
我正在将开发环境从虚拟机(具有Vagrant和VirtualBox)切换到具有Docker的容器。我为WordPress成功建立了一个简单的开发环境,现在我正试图为Laravel做同样的事情。
我在Windows 10 Pro上,使用WSL2(已安装Ubuntu 20.04)。
如果我尝试打开localhost:8088
(公开了我的本地Laravel安装),则会得到:
UnexpectedValueException 流或文件“ /var/www/html/storage/logs/laravel.log”无法以附加模式打开:无法打开流:权限被拒绝
这是我的docker-compose.yml
文件:
version: '3.3'
services:
nginx:
container_name: 'NGINX_Web_Server'
image: nginx:stable-alpine
depends_on:
- php
- mariadb
ports:
- 8088:80
volumes:
- ./root:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
php:
container_name: 'PHP-FPM_7.4'
build:
context: .
dockerfile: Dockerfile
volumes:
- ./root:/var/www/html
ports:
- 9090:9000
mariadb:
container_name: 'MariaDB_SQL_Server'
image: mariadb
restart: unless-stopped
tty: true
volumes:
- ./mariadb_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: laravel
MYSQL_USER: ll_user
MYSQL_PASSWORD: ll_password
这是Dockerfile
中指示的docker-compose.yml
:
FROM php:fpm-alpine3.12
RUN docker-php-ext-install pdo pdo_mysql
#RUN chown -R www-data:www-data /var/www
和nginx的default.conf
文件:
server {
listen 80;
index index.php index.html;
server_name localhost;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
怎么了?
解决方法
可以通过以下方式解决:
chown -R www-data:www-data /var/www
chmod -R 755 /var/www/storage
如果它不适合您,请在容器中尝试以下操作:
-
检查:
docker-compose exec php ls -al /var/www/storage
我看到的是
xfs
而不是www-data
-
运行:
docker-compose exec php chown -R $USER:www-data /var/www/storage
-
运行:
docker-compose exec php chown -R $USER:www-data /var/www/bootstrap/cache
再试一次,它必须可以工作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。