从卷改变目录的chmod

时间:2017-04-03 12:43:11

标签: nginx docker docker-compose

我试图在容器内运行CakePHP 2应用程序。我有一切设置和PHP正常工作,但有一个问题:/ var / www / app / tmp有不正确的写权限。该目录从卷

加载

2 个答案:

答案 0 :(得分:0)

您是否已经看过CakePHP2.0文档?也许这很有用:

一个常见问题是app / tmp目录和子目录必须可由Web服务器和命令行用户写入。在UNIX系统上,如果Web服务器用户与命令行用户不同,则可以在项目中仅运行一次以下命令,以确保正确设置权限:

HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
setfacl -R -m u:${HTTPDUSER}:rwx app/tmp
setfacl -R -d -m u:${HTTPDUSER}:rwx app/tmp

来源:https://book.cakephp.org/2.0/en/installation.html#permissions

答案 1 :(得分:0)

如果你通过容器passthrough运行PHP,这种情况会发生很多。在这种情况下,您将目录传递给具有预定义权限的应用程序。您需要做的是定期确保从容器更新到Web服务器的权限。让我们说你的容器叫做web

docker exec web chown -R www-data / var / www / html

(/ var / www / html将替换为您的代码所在的位置)

例如。这将使其在容器中完美地工作,但如果您使用Linux,实际上可能会导致从主机操作系统访问数据的问题。我使用来自主机的卷直通Laravel和PHP多次出现此问题,因为卷的文件本身已更新为主机操作系统没有的用户ID。