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

Aar*_*ron 6 linux file-permissions magento

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

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

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

Fia*_*abs 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+
Run Code Online (Sandbox Code Playgroud)

对于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
Run Code Online (Sandbox Code Playgroud)

要使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
Run Code Online (Sandbox Code Playgroud)

并将生成的文件复制到您的异地存储,无论是您的工作站,S3存储桶还是vps.

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