在一个实例上运行 2 个 LAMP 堆栈

在一个实例上运行 2 个 LAMP 堆栈

我有一个使用标准端口的 apache 和 mysql 的工作安装,并且我的主机文件将域指向 127.0.0.1。

我正在将我的 LAMP 堆栈切换到 Zend Server,但希望我的旧设置同时运行。

我尝试将旧的 apache 端口切换到 8080,并将旧的 mysql 切换到另一个端口。这似乎工作正常(apache 正在运行,mysql 正在监听新端口,但我还没有尝试数据库连接)。

但是我的问题是我无法将域映射到本地主机上的 8080,因为主机文件不处理端口,只处理 IP 地址。

我应该提到我在一台 Windows 机器上。

有什么想法可以解决这个问题,以便我可以使用 hosts 文件将域映射到 2 个不同的 LAMP 堆栈?

编辑

关于 hosts 文件和虚拟主机 - 当我转到 localhost 时,我的新 Zend apache 正在运行,当我转到 localhost:8080 时,我得到的是旧的 apache 文档根目录。这是预期的。

但是我无法让主机文件和虚拟主机在 :8080 上运行。在我的主机文件中,我有

127.0.0.1     example.dev:8080

在我的虚拟主机(我的旧 apache 实例上的 httpd-vhosts.conf,而不是我的 Zend 实例)中,我有

NameVirtualHost *:8080

<VirtualHost *:8080>
    DocumentRoot "C:/xampp/htdocs"
</VirtualHost>

<VirtualHost *:8080>
    DocumentRoot "C:\xampp\htdocs\example.dev"
    ServerName example.dev
</VirtualHost>

现在,当我在浏览器中尝试 example.dev 时,出现“未找到服务器”的提示,所以我认为虚拟主机没有工作。

答案1

虽然主机不会映射端口,但您应该能够使用它们的端口和主机名访问这两个实例,IEhttp://site1:8080/http://site2:80/或者,如果您确实需要通过单个端口访问两者,请将新堆栈移动到 8081 之类的端口,并设置 NGINX、HAProxy、Squid 甚至另一个 Apache 实例来从一个端口代理站点。

答案2

在我的主机文件中我有

127.0.0.1     example.dev:8080

hosts 文件无法识别该端口。停止尝试。

在我的虚拟主机(我的旧 apache 实例上的 httpd-vhosts.conf,而不是我的 Zend 实例)中,我有

NameVirtualHost *:8080

<VirtualHost *:8080>
    DocumentRoot "C:/xampp/htdocs"
</VirtualHost>

<VirtualHost *:8080>
    DocumentRoot "C:\xampp\htdocs\example.dev"
    ServerName example.dev
</VirtualHost>

VirtualHost 意味着您可以在一个 IP 地址上运行多个网站。因此,将端口更改为 80,为 DocumentRoot 指定一个 ServerName C:/xampp/htdocs,然后重试。

相关内容