我在 Fedora Linux 上运行 Apache 2.4,目前我遇到了虚拟主机问题。
我认为 2.4 需要的配置与我更习惯的另一个版本 (2.2) 不同,但我对此不确定。然而问题如下,我有一个可以工作的 documentroot,但我的 documentroot 中有两个项目,我想在不同的虚拟上分别运行,因此我将这些行添加到 etc 中 conf 目录中的 httpd.conf 文件中:
<VirtualHost localhost:80>
ServerAdmin [email protected]
DocumentRoot "/home/me/workspace/project1/"
ServerName localhost/project1
ErrorLog "logs/project1.error.log"
CustomLog "logs/project1.access.log" common
</VirtualHost>
<VirtualHost localhost:80>
ServerAdmin [email protected]
DocumentRoot "/home/me/workspace/project2/"
ServerName localhost/project2
ErrorLog "logs/project2.error.log"
CustomLog "logs/project2.access.log" common
</VirtualHost>
我不知道为什么,但是服务器是从文档根目录运行的,当我输入例如:localhost / project2时,它会给我一个未找到错误(404)..错误日志没有任何内容,而访问日志仅报告404..
我可能遗漏了一些关键信息。有人能帮忙吗?
提前致谢
答案1
这不是一个正确的服务器名称:
ServerName localhost/project1
ServerName 必须是 IP 或域名,而不是路径
你可以这样做 :
<VirtualHost localhost:80>
ServerAdmin [email protected]
DocumentRoot "/home/me/workspace/"
ServerName localhost
ErrorLog "logs/project1.error.log"
CustomLog "logs/project1.access.log" common
</VirtualHost>
就像这样,您将获得http://yourip/project1/
& http://yourip/project2/
。然后添加索引文件以/workspace
重定向到您想要的任何位置
现在,如果你想要把事情做好,你可以为你的服务器使用 2 个 IP,并使用不同的 IP 访问每个项目:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/home/me/workspace/project1/"
ServerName 192.168.0.101
ErrorLog "logs/project1.error.log"
CustomLog "logs/project1.access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/home/me/workspace/project2/"
ServerName 192.168.0.102
ErrorLog "logs/project2.error.log"
CustomLog "logs/project2.access.log" common
</VirtualHost>
如果你可以使用 DNS,你可以用 DNS 名称替换 IP(即使使用本地 DNS)