过去几天,我一直在本地网络上设置 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。
答案3
在 apache 配置中使用...
Alias /project /var/projects/project1
或者类似的东西......我记不清了。