我知道magento表示/ var和/ media的文件夹分别为700和600,但是当我这样做时,它破坏了我网站的某些部分。我很想知道大多数人对这些文件夹使用什么权限。
我知道magento表示/ var和/ media的文件夹分别为700和600,但是当我这样做时,它破坏了我网站的某些部分。我很想知道大多数人对这些文件夹使用什么权限。
Answers:
我很少提到使用700和600,但这通常是很好的建议。不幸的是,每个服务器的设置都是不同的,需要权衡便利性(用户对更新/编辑文件的访问权限)。
基本的方法应该是只放弃尽可能少的内容,并尽可能地将其锁定(700/600对此很有用)。在这方面,Wiki上的“官方”建议希望适用于尽可能多的情况,并建议所有人都具有读取权限(这意味着服务器上任何受感染的其他服务都将能够读取app / etc / local。 xml与您的数据库配置)。
就您而言,当前听起来文件是由与运行webserver / php进程的用户不同的用户拥有的。将文件的所有权更改为Web服务器应该可以解决您的原始问题。
请注意,使用700/600并将文件分配给Web服务器意味着普通用户将无法编辑文件。
我认为以下内容是便利还是锁定的不错折衷方案。所有文件均由user:webservergroup拥有
var和media 770/660
服务器和您的用户被允许从var和media文件夹(会话/缓存/图像)中读取和写入。
其余750/640
您的用户可以编辑/更新代码。
网络服务器能够读取文件以执行/显示。
通常,所有文件应为644
并且所有文件夹应为755
并且应由您的Web服务器在其下运行的用户拥有。该mage
可执行文件应给予550
权限,允许执行。
如果从您的Mage根目录运行,此shell脚本应该修补问题:
#!/bin/sh
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod 550 mage
来源:http://www.magentocommerce.com/wiki/groups/227/resetting_file_permissions
虽然Phil的解决方案很好,但是我使用了一些不同的方法。除了使文件的“ php / webserver用户”所有者外,我还创建了其他组。通常将其称为dev。然后将“ php用户”以及我自己和其他开发人员添加到该组dev中。然后我执行chgrp,以便Magento项目子树中的所有文件都具有dev组。我在文件夹中添加了+ s位,以确保新创建的子文件夹获得相同的权限。
我使用fix_permissions.sh脚本创建了一个公共要点。随时使用它:)它可以帮助您使整个Magento项目子树具有良好的权限。
https://gist.github.com/svenvarkel/8062778#file-fix_permissions-sh
最初的问题-var和media必须具有“ php用户”可以读取和写入这些文件夹的权限。它必须能够在var下写入缓存,会话文件等,并且必须能够在媒体下写入产品图片缓存和图片。因此,如Phil所建议的那样:将它们chown或chgrp给“ php user”,并给“ php user”赋予rw权限。
我认为在FPM(CGI)上下文中引用“ php用户”更为正确。Web服务器用户可以与运行PHP的用户不同。
文件许可为644。使用ssh在根目录中的以下代码中运行。找 。
-type f -exec chmod 644 {} \;
文件夹许可为755。使用ssh在根目录下运行以下代码。找 。
-type d -exec chmod 755 {} \;
Var文件夹的权限为777。使用ssh在根目录下运行以下代码。
chmod -R 777 var
静态文件夹许可为777。使用ssh在根目录中的以下代码运行。
chmod -R 777 pub/static
媒体文件夹的权限为777。使用ssh在根目录中的以下代码运行。
chmod -R 777 pub/media
从这里:http : //devdocs.magento.com/guides/m1x/install/installer-privileges_after.html
find . -type f -exec chmod 400 {} \;
find . -type d -exec chmod 500 {} \;
find var/ -type f -exec chmod 600 {} \;
find media/ -type f -exec chmod 600 {} \;
find var/ -type d -exec chmod 700 {} \;
find media/ -type d -exec chmod 700 {} \;
chmod 700 includes
chmod 600 includes/config.php