Wordpress on IIS with shared wp-content


Wordpress on IIS with shared wp-content

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

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

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

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

我已经尝试了几件事来解决提到的问题。

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

  • 在两台计算机上创建了一个对 wp 内容具有所需权限的用户;

  • 授予该用户(也是所有人)对 wp 内容的完全访问权限;

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

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

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

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

提前致谢

假设:

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

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

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

如果坚持使用服务帐户,请确保IIS_IUSR组和Users组具有读取和执行权限,并确保服务器 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:'

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

希望这有帮助。

假设初始问题中描述的情况

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

溶液:

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