【问题标题】:Wordpress on IIS with shared wp-contentIIS 上的 Wordpress 与共享 wp-content
【发布时间】:2015-09-02 21:37:52
【问题描述】:

我一直在尝试在 IIS 上安装 Wordpress,标准安装和 php-cgi 的处理程序映射一切顺利。

由于我有一个公共服务器 (A) 和一个私有共享服务器 (B),我需要在服务器 A 上安装一个 WP,并在服务器 B 上安装一个共享数据库和共享 wp-content。

主要问题是在 IIS 上为服务器 B 上的 wp-content 配置具有所需权限的虚拟目录。 服务器 A 上的 Wordpress 能够访问媒体资源(图像和其他文件)。通过 wp-admin,我还可以访问和上传新资源到共享的 wp-content。

当我尝试查看已安装的插件或安装新插件时,问题就开始了,因为 WP 无法访问插件文件夹,因此也无法查看网站。

为了解决上述问题,我已经尝试了几件事。

我尝试的步骤(不一定按此顺序)是:

  • 在两台机器上都创建了一个具有 wp-content 所需权限的用户;

  • 授予该用户(也包括所有人)对 wp-content 的完全访问权限;

  • 在 IIS 上创建了一个虚拟目录并以创建的用户身份连接;
  • 与该用户一起运行默认网站应用程序池;

在我所处的步骤中,wordpress 不会加载已安装的插件,并在尝试安装新插件时要求提供 FTP 凭据。

在我看来,问题可能在于我不知道的其他权限。

如果有人用 IIS 成功访问了共享的 wp-content,请在我发疯之前帮助我。

提前致谢

【问题讨论】:

  • 欢迎来到 Stack Overflow。假设服务器 B 将从服务器 A 的 wp-content 中读取。老实说,我从来没有听说过有人尝试过这个。不过也不是不可能。我的评论太长了,所以将其移至答案。

标签: php wordpress iis permissions


【解决方案1】:

假设:

+-----------+      +----------+
|  Server A | <--  | Server B |
+-----------+      +----------+

首先,让我们看看服务器 A -> 站点 A 和服务器 B -> 站点 B 的应用程序池。我建议使用模拟与服务帐户。这将允许您利用 AD 或本地用户。

使用资源管理器中从服务器 B 到服务器 A (\server-a\wp-content) 的 UNC 路径进行第二次测试。如果您尚未设置共享,则可能需要执行此操作。你会遇到速度问题等,但我认为这不会是坏事。将驱动器(例如 Z:\)映射到此路径。

如果您坚持使用服务帐户,请确保 IIS_IUSRUsers 组具有读取和执行权限,并确保服务器 B 的计算机帐户是这些组的成员(为服务器 B 创建计算机帐户如果需要)。

如果我们走到这一步,我认为我们需要一个符号链接。虚拟目录会很棒,但不适用于来自 PHP 的文件系统调用。例如,如果页面尝试不使用 URL 路径进行包含。

这应该会有所帮助:http://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/

在服务器 B 上运行类似:

mklink /J C:\inetpub\wwwroot\wp-content Z:\

调整服务器上的正确路径。

希望这会有所帮助。

【讨论】:

  • 非常感谢您的帮助。我使用了您的一些建议,并提出了一个解决方案,我将在答案中进行描述。
【解决方案2】:

假设第一个问题描述的情况

+---------------------+      +-----------------------------+
|  Server A (IIS / WP)| -->  | Server B (wp-content/mySQL) |
+---------------------+      +-----------------------------+

解决方案:

  • 在服务器 A 和 B 上使用相同的凭据创建用户 X;
  • 在服务器 B 上,与用户 X 共享 wp-content(完全权限);
  • 在服务器 B 上,为用户 X 设置 FULL CONTROL 安全权限;
  • 在服务器 A 上,将用户 X 添加到组 IIS_IUSRS;
  • 在服务器 A 上,创建由 @Twisty 引用的符号链接(例如:mklink /d c:\inetpub\wwwroot\wp-content \\);
  • 在服务器 A 上,在符号链接 (c:\inetpub\wwwroot\wp-content) 上为用户 X 设置 FULL CONTROL 安全权限;
  • 在服务器 A 上,在 IIS 上,以用户 X 身份运行默认网站(默认网站 -> 基本设置 -> 连接为... -> 特定用户);
  • 在服务器 A 上,iisreset 只是为了安全起见。

【讨论】:

    猜你喜欢
    • 2017-10-12
    • 2012-09-01
    • 2023-01-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2015-08-28
    • 2020-07-13
    • 2016-02-05
    相关资源
    最近更新 更多