mgP*_*ePe 8 permissions cakephp production-environment
我想知道以下问题的答案和解释:
哪个用户/组应该拥有蛋糕文件?
如果不同,哪个用户/组应该拥有该app/tmp
文件夹?(和子文件夹)
使用正确的用户/组,生成文件夹和文件的正确权限是什么?(如果设置正确也应该用于开发)
在哪里存储已完成的上传文件以及需要为该文件夹设置的所有权/权限.应该在哪里相对app/
?
我知道777修复了错误,但我想正确设置它.
我听说如果一切正确设置,660应该足够生产.
谁需要read
访问权限,谁需要write
访问权限,是否有人需要execute
?
mgP*_*ePe 20
注意:我想我找到了答案,因为没有人写好答案,我会写出来.如果你对这个主题更了解并看到错误或安全问题,请告诉我,我会纠正它们.
CakePHP文件应由您(机器的用户)拥有(无论您何时登录).没有root
作为所有者!
OSX:该johnsmith
部分/Users/johnsmith
Linux系统:该johnsmith
部分/home/johnsmith
根据CakePHP 文档:
...确保您的蛋糕安装中的目录app/tmp及其所有子目录都可由Web服务器用户写入.
用户所有者需要是apache的用户.组所有者可以是您所属的组,因此您还可以通过finder/CLI访问此文件夹.没有root
作为所有者!
OSX:最近在OSX上预装了Apache,而apache的默认用户是_www
.但是,如果您不确定ps aux | grep httpd
在apache运行时键入终端可以找到它.最后一行是您刚输入的命令,因此请在上面查看.
现在你知道了你的apache用户,你必须将其分配给app/tmp/
.您可以使用以下命令执行此操作:sudo chown -R _www app/tmp/
Linux: linux上的默认用户通常www-data
是group www-data
.如果您不确定,请使用ps aux | grep httpd
查找用户并将sudo chown -R _www app/tmp/
所有权分配给该文件夹的apache.
您可以将自己保留为用户所有者,但将组所有者设置为apache所属的组.默认情况下,apache拥有自己的组,但您可以创建一个新组并为其添加apache.
OSX:默认情况下OSX上的apache组与用户相同:_www
.然后,您必须运行以下命令来获取所有权:sudo chown -R :_www app/tmp/
.现在,如果您检查权限,则ls -l
应该看到您的用户名(johnsmith
)和新的群组所有者 - _www
.
Linux:*默认情况下,apache组www-data
使用相同的命令来更改所有权:sudo chown -R :www-data app/tmp/
.
注意:使用Debian/Ubuntu www-data
,而CentOS使用apache
.
对于运行的站点,apache需要read
和write
不需要execute
.为了您访问它(假设您在拥有的组中app/tmp
),您还需要read
并且write
如果您将使用终端/查找器手动编辑内容.所有其他用户都没有任何权利.所以:
OSX和Linux : sudo chmod -R 660 app/tmp/
. 该-R
部分是针对所有内部文件夹递归执行的.第一个6
是用户所有者(OSX:_www
或Linux :) www-data
,第二个6
是针对组所有者(OSX:staff
或Linux :) johnsmith
,0
是针对所有其他用户/来宾.
注意:根据CakePHP的这个拉取请求,看起来像CakePHP 2.4将能够创建子文件夹,app/tmp/
这意味着它将需要一个7
而不是6
现在用户760
.
如果要上传文件,则需要对img/uploads
文件夹或上传的任何位置进行类似的设置.所有权将相同,但权限需要具有重命名和文件夹创建的执行权限.所以以前660
应该是760
.此外,理想情况下,上传不在webroot/
目录中,需要绝对路径.
归档时间: |
|
查看次数: |
16905 次 |
最近记录: |