如何安装两个Apache服务

use*_*608 2 apache port compilation listen

我想在一台 Windows 机器上安装两个不同的 apache2.2 服务。我已经安装了一个并在端口 80 和 443 上运行。我复制了服务器安装目录并将其粘贴到其他地方。我进入httpd.conf并将其从Listen 80更改为Listen 8000。我也将Listen 443更改为Listen 8001。

我可以将它安装为服务,但它说httpd.conf.

当我尝试启动服务时,它说:

make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down

配置文件中没有任何地方说要侦听端口 80。

什么可能导致这种情况?

编辑

我发现如果我更改了我复制的原始 Apache 安装中的配置文件,它会更改错误消息。

例如,我更改了原始配置文件以侦听未使用的端口,并且当我尝试启动新的 Apache 服务时,错误消息将消失。但是,在任务管理器中,它没有将服务显示为正在运行,而是显示为STOPPED.

我卸载了该服务并使用该-f标志重新安装它以指向正确的配置文件,但没有任何更改。似乎必须有内部指针或我复制时保留的东西?

我还尝试从.msi安装程序安装 Apache ,但它不会安装,因为我已经安装了 Apache。

第二次编辑

希望我早点看到这个。根据在 Microsoft Windows 上使用 Apache HTTP 服务器,我可能需要从源代码构建 Apache。

请注意,您不能使用二进制安装程序在同一台计算机上安装两个版本的 Apache 2.3。但是,您可以在同一台计算机上安装 1.3 系列的版本和 2.3 系列的版本而不会出现问题。如果您需要在同一台计算机上有两个不同的 2.3 版本,则必须从源代码编译和安装 Apache。

我从来没有做过这样的事情,有人可以更清楚地解释一下吗?

use*_*608 5

解决方案是进入原始 Apache 安装目录并运行:

C:\original-apache-install\bin> httpd -k install -n "new service name" -f "new/config/file/location"
Run Code Online (Sandbox Code Playgroud)

只需复制安装并粘贴到其他地方即可与原始配置文件保持联系,并且不会让我更改它所指向的内容。当我在新安装目录中运行上述命令时,它不起作用。例子:

C:\new-pasted-apache\bin> httpd -k install -n "new service name" -f "new/config/file/location"
Run Code Online (Sandbox Code Playgroud)