6

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

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

谁能告诉我如何阻止这种情况发生。每次进行备份时都必须重置权限,这很痛苦。

4

1 回答 1

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+

对于 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 文件,直到您下载它,除非您排除了 media/ 文件夹并以不同的方式进行媒体文件夹备份。

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

于 2013-08-17T20:32:09.677 回答