2017-04-03 46 views
0

我试图运行容器内的CakePHP 2应用程序。我有一切设置和PHP正常工作,但有一个问题:/ var/www/app/tmp具有不正确的写入权限。此目录从卷中加载从容量更改目录的chmod

回答

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

+0

在容器意义上,没有命令行用户。只有根存在于容器中。这与实际的叠加过程有关。 – Dockstar

0

如果您通过容器直通运行PHP,会发生很多事情。在这种情况下,您将通过预定义权限将应用程序传递给应用程序。你需要做的是定期确保权限正在从容器更新到Web服务器。比方说,你的容器被称为Web

泊坞窗EXEC网络乔敦 - R的WWW的数据的/ var/www/html等

(在/ var/www/html等用无论你的代码位于被替换)

对于例。这将使它在容器中工作得很好,但如果您使用的是Linux,可能实际上会导致从主机操作系统访问数据的问题。由于卷的文件本身已更新为主机操作系统没有的用户ID,因此我通过使用主机的卷传递使Laravel和PHP多次出现此问题。