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

我有一个使用标准端口的Apache和MySQL的工作安装,我的主机文件指向域127.0.0.1。

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

我试着将旧的apache端口切换到8080,并为旧的mysql不同的端口。 这似乎工作正常(Apache正在工作,MySQL正在侦听新的端口,但我还没有尝试数据库连接)。

然而,我的问题是,我不能映射域到8080本地主机,因为主机文件不处理端口,只是IP地址。

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

任何想法,我将如何解决这个问题,我可以使用主机文件映射域到2个不同的LAMP堆栈?

编辑

关于主机文件和虚拟主机 – 当我去本地我得到我的新的Zend apache运行,当我去本地:8080我有我的旧的Apache文档的根。 这是预期的。

但是我无法获得主机文件和虚拟主机:8080。 在我的主机文件中

127.0.0.1 example.dev:8080 

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

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

现在当我在我的浏览器中尝试example.dev时,我得到'服务器没有find',所以我认为虚拟主机不工作。

虽然主机不会映射端口,但您应该可以使用其端口和主机名(IE :http:// site1:8080 / , http:// site2:80 /)访问这两个实例。 或者如果你真的需要在一个端口上都可以访问,把新的堆栈移动到像8081这样的端口,并设置NGINX,HAProxy,Squid甚至是另外一个Apache实例来从一个端口代理这些站点。

在我的主机文件中

 127.0.0.1 example.dev:8080 

hosts文件不能理解端口。 停止尝试。

并在我的虚拟主机(httpd-vhosts.conf在我的旧的Apache实例,而不是我的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 C:/xampp/htdocs一个ServerName,然后重试。