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