系统备份后Magento文件权限更改 - 导致500错误

时间:2013-01-15 04:31:19

标签: linux magento file-permissions

我在进行系统备份时遇到了Magento的问题。每次进行系统备份时,Magento都会更改文件权限,并在备份完成并重新加载管理屏幕时导致500服务器错误。

问题与这个悬而未决的问题相同。我没有设置“维护模式”。 :https://stackoverflow.com/questions/13107963/magento-file-permissions-changing-to-chmod-666-after-system-backup

任何人都可以告诉我如何阻止这种情况发生。每次进行备份时都必须重置权限,这很痛苦。

1 个答案:

答案 0 :(得分:5)

问题出现是因为Magento Backup设置了文件权限。

违规作品是lib/Mage/Archive/Helper/File.php

在其中找到一个函数public function open($mode = \'w+\', $chmod = 0666)

这会导致全局更改权限的问题。

如果必须使用Magento的站点严重备份,则必须运行脚本来设置文件/文件夹权限。

ssh命令(可以作为shell脚本运行)

对于通过FastCGI,suPHP或LSAPI运行PHP的Magento:

find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod 500 pear
chmod 500 mage #for magento 1.5+

对于Magento,其中PHP作为Apache下的DSO模块运行:

find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod o+w var var/.htaccess app/etc
chmod 550 pear
chmod 550 mage #for magento 1.5+
chmod -R o+w media

要使Magento正常工作,可能需要将var /和media /递归设置为777

From MagentoCommerce permissions settings page其中还有一个PHP脚本链接到中途,可以运行来设置权限。

另一个选择是转储Magento的备份系统,并使用tarmysqldump执行自己动手操作的方法。 注意:除非您排除媒体/文件夹并以不同的方式备份媒体文件夹,否则这将需要足够的可用空间来临时存储tar文件,直到您下载它为止。

tar -czf magentobu.tgz --exclude="public_html/var/*" --exclude="public_html/media/catalog/product/cache/*" public_html
mysqldump -u $USER -p$PASS $DBASE > magentodb.sql

将生成的文件复制到您的非现场存储,无论是您的工作站,S3存储桶还是vps。

另一个选择是建立一个系统,您可以rsync您的Magento系统,以及拉过每天创建一次的mysql转储文件。这样做,您可以拥有一个连续的,最新的完整站点镜像,在您等待将备份提取到异地时,不会在服务器上产生额外的存储空间。