在本地 Web 服务器上设置多个网站

在本地 Web 服务器上设置多个网站

过去几天,我一直在本地网络上设置 CentOS 6 服务器,以便可以托管我目前正在进行的多个项目。一切都已设置好,我可以通过键入来访问服务器,192.168.1.10然后会出现 Apache 测试页面。

我的目标是通过输入 来访问不同的项目192.168.1.10/project,然后像在自己的独立服务器上一样查看项目。我曾考虑过将这些网站粘贴到服务器上的文件夹中,然后通过这种方式访问​​它们,但我的许多项目都使用 CakePHP,因此这是不可行的。

因此,我需要在 Apache 中创建 VirtualHosts 来允许我执行此操作,但不使用域名。我想坚持使用机器的 IP 地址(静态)。

有任何想法吗?

编辑
我按照彼得的建议去做了,但现在我又遇到了一个新问题。

httpd.conf文件中我输入了以下信息:

NameVirtualHost *:80

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /www/html/project1
     ServerName local.project1.com
     ErrorLog logs/local.project1.com-error_log
     CustomLog logs/local.project1.com-access_log common
</VirtualHost>

现在 Apache 表示:

启动 httpd:警告:DocumentRoot [/www/html/project1] 不存在

当它确实存在时。我已禁用 SELinux,并且可以确认它未打开。我还检查了文件夹的所有权,它归root。我还可以使用来宾 FTP 帐户(与 root 无关)将文件保存到这些文件夹,因此文件夹被列出并且可以写入。但是当我在 Web 浏览器中尝试该文件夹时,它似乎也不起作用。我还重新启动了服务器,问题仍然存在。

为了解决这个问题我应该改变什么?

答案1

您可以将虚拟 DNS 名称放入主机文件中。

例如在 Linux 中,

vim /etc/hosts

并填写:

192.168.1.10 project1 project2 project3

在 Windows XP 中(win7 等可能类似),编辑文件 c:\windows\system32\drivers\etc\hosts

并填写:

192.168.1.10 project1
192.168.1.10 project2
192.168.1.10 project3

然后,当您在浏览器中访问时http://project2/,您将拥有 project2 的 Web 根目录(如果您正确设置了虚拟主机)。

或者,如果有许多开发人员使用这些别名,或者别名一直在变化,请设置内部 DNS 服务器。(这是我的首选……我为测试网站这样做)

答案2

您可以在同一个 IP 地址、多个 IP 地址(如果有)或多个域上使用多个端口。如果我是你,我会将一些本地域(例如 p1.lan、p2.lan、p3.lan)添加到 /etc/hosts(linux)或 Windows\System32\drivers\etc\hosts(windows),并将它们指向 192.168.1.10。

VirtualHost 示例

答案3

在 apache 配置中使用...

Alias /project /var/projects/project1

或者类似的东西......我记不清了。

相关内容