我怎样才能提供权限的PHP泊坞窗图像和主机VOLUME?

我正在使用官方的PHP泊坞窗图像,我试图添加一个主机path作为卷。 我的意图是为了本地发展。

我的Dockerfile是非常基本的:

FROM php:5.6-apache VOLUME ["/var/www/html/"] 

然后在我的docker run命令我只是添加-v标志:

 $ docker run -d -v ~/Workspace/website/:/var/www/html/ ... 

不过,开始后我得到了一个403。 如果我执行一个bash条目,我可以看到/ var / www / html被拒绝。 我认为这与客人的“外星人”用户/小组有关。

日志:

[13月26日星期二:29.18.182727 2016] [core:error] [pid 10](13)权限被拒绝:[client 192.168.5.1:37996] AH00035:访问/index.php denied(filesystem path'/ var / www / html / index.php'),因为path192.168.5.1 – [26 / Jan / 2016:00:29:38 +0000]的组件上缺lesssearch权限“GET /index.php HTTP / 1.1” Mozilla / 5.0(X11; Fedora; Linux x86_64)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 47.0.2526.106 Safari / 537.36“

统计:

 # stat html/ File: 'html/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd02h/64770d Inode: 3148160 Links: 26 Access: (0775/drwxrwxr-x) Uid: ( 1000/ UNKNOWN) Gid: ( 1000/ UNKNOWN) Access: 2016-01-25 23:17:57.096095138 +0000 Modify: 2016-01-26 00:28:10.274181924 +0000 Change: 2016-01-26 00:28:10.274181924 +0000 

UPDATE

我采取了Geany的build议,并将www-data组的gid更改为1000,以匹配主机path的gid。

 $ id www-data uid=33(www-data) gid=33(www-data) groups=33(www-data) $ groupmod -g 1000 www-data $ id www-data uid=33(www-data) gid=1000(www-data) groups=33(www-data) $ stat html/ File: 'html/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd02h/64770d Inode: 3148160 Links: 26 Access: (0775/drwxrwxr-x) Uid: ( 1000/ UNKNOWN) Gid: ( 1000/ www-data) Access: 2016-01-25 23:17:57.096095138 +0000 Modify: 2016-01-26 00:28:10.274181924 +0000 Change: 2016-01-26 00:28:10.274181924 +0000 

但是,这仍然没有解决权限问题。 我甚至改变了uid。

更新#2

我只是证实了这个工作在OS X上完美无瑕。我原本试图使它在Fedora 23上工作。

您应该检查apache工作进程和chown源目录的用户和组。 另一种方法是改变apache工作者用户的gid和uid。