我在进行系统备份时遇到了Magento的问题。每次进行系统备份时,Magento都会更改文件权限,并在备份完成并重新加载管理屏幕时导致500服务器错误。
问题与这个悬而未决的问题相同。我没有设置“维护模式”。 :https://stackoverflow.com/questions/13107963/magento-file-permissions-changing-to-chmod-666-after-system-backup
任何人都可以告诉我如何阻止这种情况发生。每次进行备份时都必须重置权限,这很痛苦。
答案 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的备份系统,并使用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转储文件。这样做,您可以拥有一个连续的,最新的完整站点镜像,在您等待将备份提取到异地时,不会在服务器上产生额外的存储空间。