过去,我一直在尝试在运行 Windows Server 2008 的服务器上安装 Joomla。我已经成功安装了 PHP(使用 Microsoft 的 Web 工具通过 IIS 安装 PHP)和 MySQL,现在正尝试运行基于浏览器的安装。
一切都显示为绿色,我填写了有关站点名称、MySQL 信息等的适当信息,没有出现任何错误。但是,当我到达要求我删除安装目录的步骤时,我无法这样做,因为 Windows 指出它正在被另一个程序使用(我无法理解这是怎么回事)。此外,没有创建 configuration.php 文件,所以如果我设法删除此文件夹,我感觉会有问题。
我认为存在某种权限问题,并已将 IIS_IUSRS 的权限设置为对 Joomla 所在的整个文件夹具有读取、写入和执行权限,但这没有帮助。
非常感谢对此事的任何帮助。;)
格雷格
编辑:我决定尝试通过手动编辑 configuration.php 文件来手动安装 Joomla。这种方法效果很好,现在我确定存在某种权限问题,因为我可以执行涉及 MySQL 数据库的所有操作(创建文章、编辑菜单项等),但涉及更改 Joomla 安装目录的所有操作均无法执行(安装插件、使用 Joomla 中的全局配置菜单编辑配置设置等)。我已授予 IIS_IUSRS 除完全控制之外的所有权限(阅读 Joomla!论坛显示这足以使一切正常运行)。这让我很困惑,我被这个问题困扰了很久。
编辑2: 奇怪的是,在目录权限下的系统信息中,所有内容都显示为可写,但每当我尝试实际使用 Joomla(例如,使用界面编辑 configuration.php 文件)时,它都会说无法编辑该文件。
答案1
有人提到您需要授予 IUSR_ 和 IWAM_ 对需要的文件夹的读写权限。不确定 PHP 在什么上下文中执行,但 IIS 可能不会使用您认为的帐户执行某些操作。据我所知,IWAM_ 用于运行 CGI 之类的脚本。
administrator/backups,
administrator/components,
administrator/modules,
administrator/templates,
cache,
components,
configuration.php,
images,
images/stories,
language,
mambots,
media,
modules,
plugins,
plugins/content,
plugins/editors,
plugins/editors-xtd,
plugins/search,
templates
您是否对 PHP 使用 FastCGI 或 ISAPI?
答案2
运行该程序的用户可能是匿名访问的默认用户。要找出 IIS7 中的哪个用户,请执行以下操作:
- 选择 Joomla 所在的站点或虚拟目录。
- 打开身份验证图标(在 IIS 部分下)。
- 选择匿名访问,这应该是唯一启用的。
- 从右侧选择编辑。
出现的对话框提供了两个选项:使用指定的用户帐户或使用应用程序池标识。
默认情况下,它设置为使用 IUSR 帐户,因此我只需授予该帐户访问权限即可。请注意,此帐户不属于 IIS_IUSER 组。
如果设置为使用应用程序池标识,则需要授予 IIS_IUSER 组访问文件的权限。应用程序池标识在运行时添加到 IIS_IUSER 组。因此,不要指望在 IIS_IUSER 的成员中找到您的应用程序池。
完整解释见“了解 IIS 7 中的内置用户和组帐户“在IIS站点上。
答案3
在 Windows Server 2008 上的 IIS7 中,网站默认以“网络服务”帐户运行。用户范围太广,而且恰好可以工作,因为“网络服务”是您编辑权限的“用户”组的成员。
当您无法重命名安装目录时,是因为运行网站的应用程序池在您尝试通过浏览器访问文件时保持文件打开。转到“开始”>“运行”>“inetmgr”以打开 IIS 的管理工具。找到“应用程序池”部分,默认情况下将使用您的网站名称创建一个。右键单击它,选择“停止”,重命名目录,然后右键单击并选择“开始”以重新启用您的网站。