我有一台安装了 IIS Web 服务器角色的 Windows Server 2008 R2 计算机。除了安装的默认选择外,我没有选中任何复选框,而是使用 Web 平台安装程序从 php.iis.net 下载并安装了 IIS。
我已将站点文件(Multicraft 控制面板)复制到 wwwroot 并导航到 localhost,但收到错误:
应用程序运行时路径“C:\inetpub\wwwroot\panel\protected\runtime”无效。请确保它是 Web 服务器进程可写入的目录。
它引用的文件夹存在,并且 IIS_IUSR 具有读取/列出/执行权限。但是,我猜这是一个权限问题,因为如果我将整个 wwwroot\panel 文件夹设置为“所有人”和“完全控制”,页面加载就会正常。但由于安全问题,我不想使用此设置。到目前为止,我已经了解到这可能是由于 YII 框架的原因,但仍然需要帮助,以确定应该授予哪个进程或帐户访问该文件夹的权限。
答案1
在 IIS 7.5 中,默认网站的应用程序池以 的身份运行IIS AppPool\DefaultAppPool
。如果这是运行您的应用程序池的帐户,则您需要向其授予权限。这在 IIS.net 上有记录如果你想进一步阅读。
您可以将其更改为您想要的任何用户帐户,最佳做法是在不同的身份下运行每个应用程序池,但这可能是解决第一个问题之后的一步。
答案2
看来这IIS AppPool\DefaultAppPool
不是设置权限的正确帐户 - 经过多次尝试和错误,并使用带有 php 的页面,get-current-user
我发现 IUSR 帐户也需要访问 wwwroot 文件夹。我授予 IUSR 访问该文件夹的权限 - 除删除和完全访问之外的所有权限 - 并且它加载了页面。