系统备份后Magento文件权限发生变化 – 导致500错误

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

问题与这个未解答的问题是一样的。 我没有设置“维护模式”。 : https : //stackoverflow.com/questions/13107963/magento-file-permissions-changing-to-chmod-666-after-system-backup

谁能告诉我如何阻止这种情况发生。 每次执行备份时都必须重置权限是一件痛苦的事情。

问题的出现是因为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+ 

对于PHP在Apache下作为DSO模块运行的Magento:

 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转储文件。 这样做,你可以有一个连续的,最新的全站点镜像,当你等待将异地备份的时候,不会在服务器上产生额外的存储空间。