我在做系统备份时遇到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的备份系统,并对tar
和mysqldump
执行自己的滚动方法。注意:这将需要大量的空闲空间来临时存储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转储文件每天创建一次。这样,您就可以拥有一个连续的、最新的完整站点镜像,在等待将备份拉离站点时,不会在服务器上产生额外的存储空间。