带有共享wp内容的IIS上的Wordpress

时间:2015-06-17 14:54:43

标签: php wordpress iis permissions

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

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

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

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

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

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

  • 在具有wp-content所需权限的两台计算机上创建用户;

  • 在wp-content上为该用户(也包括所有人)提供完全访问权限;

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

在我正在执行的步骤中,wordpress不会加载已安装的插件,并在尝试安装新插件时请求FTP凭据。

在我看来,问题可能在于我不了解的额外权限。

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

提前致谢

2 个答案:

答案 0 :(得分:0)

假设:

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

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

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

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

希望这有帮助。

答案 1 :(得分:0)

假设初始问题描述的情况

+---------------------+      +-----------------------------+
|  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上的
  • ,在符号链接上为用户X设置FULL CONTROL安全权限(c:\ inetpub \ wwwroot \ wp-content);
  • 在服务器A上,在IIS上,以用户X(默认网站 - &gt;基本设置 - &gt;连接为... - &gt;特定用户)运行默认网站;
  • 在服务器A上,iisreset只是为了安全。