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



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

这个问题和这个未回答的问题是一样的。我没有设置"维护模式"。: https://stackoverflow.com/questions/13107963/magento -文件-权限改变chmod - 666 -系统备份后

谁能告诉我如何阻止这种情况的发生?每次备份都要重新设置权限,真是太痛苦了。

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

有问题的作品是lib/Mage/Archive/Helper/File.php

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

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

如果你必须使用Magento的站点瘫痪备份,那么你必须运行一个脚本来设置文件/文件夹的权限。

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

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

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

从MagentoCommerce权限设置页面,其中也有一个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转储文件每天创建一次。这样,您就可以拥有一个连续的、最新的完整站点镜像,在等待将备份拉离站点时,不会在服务器上产生额外的存储空间。

相关内容

最新更新