按照我在网上可以找到的所有指南,我花了几个小时在圈子里转。
我想让两个站点在一个 apache 实例上运行,就像这样 - 192.168.2.8/site1 和 192.168.2.8/site2
我一直在兜圈子,但目前我在“可用站点(符号链接到启用站点)”中有两个 conf 文件,看起来像这样 -
<VirtualHost *:2000>
ServerAdmin webmaster@site1.com
ServerName site1
ServerAlias site1
# Indexes + Directory Root.
DirectoryIndex index.html
DocumentRoot /home/user/site1/
# CGI Directory
ScriptAlias /cgi-bin/ /home/user/site1/cgi-bin/
Options +ExecCGI
# Logfiles
ErrorLog /home/user/site1/logs/error.log
CustomLog /home/user/site1/logs/access.log combined
</VirtualHost>
和
<VirtualHost *:3000>
ServerAdmin webmaster@site2.com
ServerName site2
ServerAlias site2
# Indexes + Directory Root.
DirectoryIndex index.html
DocumentRoot /home/user/site2/
# CGI Directory
ScriptAlias /cgi-bin/ /home/user/site2/cgi-bin/
Options +ExecCGI
# Logfiles
ErrorLog /home/user/site2/logs/error.log
CustomLog /home/user/site2/logs/access.log combined
</VirtualHost>
http.conf 看起来像这样-
NameVirtualHost *:2000
NameVirtualHost *:3000
目前我收到此错误-
[error] VirtualHost *:80 — mixing * ports and non-* ports with a NameVirtualHostaddress is not supported, proceeding with undefined results
Ports.conf 看起来像这样——(尽管没有指南提到需要编辑它)
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
任何人都可以给出一些简单的说明来让它运行吗?我发现的每一个指南都说要以不同的方式来做,每一个都会导致不同的错误。我显然做错了什么,但没有找到可能是什么的明确解释。
只希望一个站点可在端口 2000 上访问,而另一个站点可在端口 3000 上访问(或其他任何站点,只需选择这些端口进行测试)。
我正在运行 Ubuntu 服务器 12.04…</p>
==============
编辑
跟随另一个'指南'......
我现在已经在可用的站点中进行了设置:
<VirtualHost *:80>
DocumentRoot "/home/user/site1/"
ServerName 192.168.2.10/site1
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/home/user/site2/"
ServerName 192.168.2.10/site2
</VirtualHost>
已在 apache2.conf 中设置:
ServerName site1
ServerName site2
已将此添加到 ports.conf:
Listen 192.168.2.10:80
===============
编辑
它现在可以工作了,我把它放在启用站点的 conf 文件中:
<VirtualHost *:81>
DocumentRoot "/home/user/site1/"
ServerName site1
</VirtualHost>
<VirtualHost *:82>
DocumentRoot "/home/user/site2/"
ServerName site2
</VirtualHost>
我在ports.conf中有这个:
Listen *:80
Listen *:81
Listen *:82
我在 apache2.conf 中有这个:
ServerName site1
ServerName site2
我在任何指南中都没有找到这个,我只是通过一整天的反复试验让它工作,所以我不知道这是否是一个好的解决方案。但它至少现在按照我想要的方式工作。