我有一个 ubuntu 服务器(主机)和一个 windows 2008 r2 服务器(客户端)虚拟机。
我所有基于 IIS 的站点都位于主机上,与客户端虚拟机共享的位置。
我有一个反向代理设置,用于将站点引导到正确的位置,并且在 IIS 中设置了一个站点(当前)。
在初始设置时,我将此站点位于虚拟机的 C 盘上,并且从那里提供服务没有任何问题。
一旦我将位置更改为共享文件夹,就会出现 500.19 错误。我尝试在该文件夹上添加 IUSR 帐户权限,但我认为它们没有起作用,因为该文件夹是 ubuntu 主机上的一个位置。
我还尝试将应用程序池标识更改为 NetworkService(如其他站点所建议的那样),甚至将“Everyone”帐户添加到共享,但仍然出现 500.19 错误页面。
有什么想法我可以这样做吗?我有点“需要”这样做,因为我想保持虚拟机的大小,因此需要网络共享卸载。我认为这是虚拟机上的 Windows 用户帐户与主机上的 Linux 用户帐户之间的冲突,所以如果我能让哪怕一个帐户进行网格化,这样就可以正常工作,而不会弄乱当前通过主机上的 Apache 托管的站点,那就太好了!
答案1
做这个:
- 在 Windows Server 2008 中,转到服务器管理器 > 存储 > 磁盘管理
- 右键单击“磁盘管理”>“创建 VHD”
- 选择网络共享上的位置(单击浏览)
- 创建固定大小的 VHD。如果可能的话,我个人会将 VHD 的大小设为当前数据集的两倍。这实际上取决于您托管的内容。
- 通过右键单击磁盘管理器中的新 VHD 并选择“初始化磁盘”来初始化磁盘。
- 在磁盘管理中格式化新卷。
- 现在,将您的网站复制到您格式化的新虚拟硬盘上。
- 配置 IIS 以从 VHD 上的位置托管您的网页。
这可以解决您遇到的文件权限问题,因为对于 Web 服务器来说,您是从本地硬盘驱动器托管,而不是通过网络共享。
我唯一能想到的问题是,如果您需要访问由 Linux 中的 IIS 托管的网站上的数据。您可以通过 Web 访问它,但我不知道有什么 Linux 工具可以用来挂载 VHD(尽管很可能存在!)
顺便说一句,我刚刚试过,成功了!请记住,在我的情况下,共享的主机不是 Linux 机器,而是 Windows 机器 - 但我创建的 VHD 仍然位于另一台机器的网络共享上。