我目前有四个使用 Wordpress 在共享托管公司上运行的博客。这个博客有相当多的访问量,我经常收到来自托管公司的警告,说我消耗了太多的服务器 CPU。
考虑到我在另一家公司有一台拥有大量空闲资源的专用服务器(它有一个四核 Xeon 2.5GHz 和 8GB 内存并在 Win2008 上运行),我计划将博客移至该服务器以便拥有多一些自由。我目前正在使用此服务器来托管一些使用 ASP.Net 和 SQL Express 的 Web 应用程序。
我已经安装了一个博客进行测试,它运行良好,但出现了一些问题并在我的脑海中提出了一些问题:
- 如何正确设置 wordpress 插件使用的文件夹中的权限,我的意思是,我应该为某些文件夹中的 IIS_User 设置什么权限,以便插件正常工作?
- 考虑到这是 Window Server,最好使用的缓存插件是什么?在之前的托管公司中,我使用了 WPSuperCache,但它是一个 Linux 堆栈。
- 还是我应该忽略缓存插件并使用 IIS7 的动态缓存功能?
- 如何优化在此服务器中运行的 MySQL 服务器(特别是有关内存和缓存的设置)
- 如何保护管理员文件夹免受黑客攻击?
我知道有些人会建议我不要在 Windows 堆栈中运行 Wordpress,但这是我唯一的选择。我什至不知道要开始管理和 LAMP 堆栈,没有时间这样做,也没有钱租另一台服务器。
一些答案怎么样:
我已经在我的 IIS 服务器上运行 Wordpress一段时间了,没有任何问题。如果您有任何其他问题,请给我留言。
原始博客文章内容(检索自http://web.archive.org/web/20100326200206/http://www.dscoduc.com/2009/11/acl-settings-for-wordpress-on-iis于 2014/11 /10):
IIS 上 WordPress 的 ACL 设置
获得我的 WordPress 博客后,我想确保我的文件 ACL 配置正确。此过程与配置 BlogEngine.NET 略有不同,因为 WordPress 使用模拟而不是单独的服务帐户和匿名帐户运行。
不幸的是,我升级了我的 Web 服务器以使用具有最新版本 IIS 7.0 的 Windows 2008 R2,这增加了复杂性。对 IIS 7.0 的改进包括对身份管理方式的根本性改变。具体来说,IIS 7.0 使用了两个在以前的 IIS 版本中不存在的特殊帐户:IUSR 和 IIS_IUSRS。
有关这些特殊帐户的更多信息,请参阅 IIS.NET 上题为“了解 IIS 7.0 中的内置用户和组帐户”的文章。
因此,目标是配置运行博客所需的最低访问级别。为了帮助完成这项工作,我在浏览博客和执行管理任务时使用了Sysinternals Process Monitor来观察 ACCESS DENIED 消息。
我首先删除了根文件夹中的可继承权限。接下来,我删除了除了管理文件夹所需的两个核心帐户之外的所有帐户:SYSTEM 和 Administrators。接下来,我在根文件夹向 IUSR 和 IIS_IUSR 授予了 READ 和 LIST_FOLDER 权限。在默认情况下在子文件夹上启用继承权限的情况下,此 ACL 将沿文件夹树传播。
如果我停在这里,我将能够提供内容,但将无法修改插件和上传带有附件的帖子。我希望所有博客功能都能正常工作,因此我通过为 IUSR 帐户添加 MODIFY 访问权限来修改 wp-content 文件夹的权限,该帐户授予 MODIFY 和 WRITE 访问权限。
在最后一次 ACL 设置之后,我检查了博客,发现一切正常。毕竟,我只需要在两个地方配置 ACL,根目录和 wp-content 文件夹:
更新:写完这篇文章后,我决定删除对 /wp-content 文件夹的写入权限,除非我需要更新插件。此外,我需要授予对 /wp-content/uploads 文件夹的写入权限,以支持带有附件和图像的博客文章。
我还发现,每当我想对 WordPress 核心文件执行自动更新时,都需要在 root 级别添加额外的写入权限,我也可以在需要更新时手动授予这些权限。
最后,IUSR 帐户剩下的唯一权限是网站根目录的读取/列表权限(通过站点文件夹向下继承)和上传文件夹的读取/列表/写入权限。