我正在尝试从一个 IP 地址运行不同的网站。我的连接通过一个具有端口转发功能的路由器连接到 apache2 服务器。我需要设置一个 NameVirtualHost 系统,以便 apache 可以确定要为不同的域名查找哪些文件。
任何建议都将不胜感激。我非常确定 namevirtualhost 基本上已经不再使用了。
答案1
查看配置
/etc/apache2/sites-enabled/default.conf
您需要一个通常名为 default.conf 的文件,在其中定义虚拟主机,如下所示......
<VirtualHost yourIPaddress:80 >
ServerName www.yourdomainname.here
ServerAlias yourdomainname.here
ServerAdmin <yourmail address>
DocumentRoot /var/www/{your webroot folder}
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/{your webroot folder} >
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
# set your own filename #
ErrorLog ${APACHE_LOG_DIR}/logging_filename_errorlog.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel error
# set your own filename #
CustomLog ${APACHE_LOG_DIR}/logging_filename.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
答案2
你有一个名为 ports.conf 的文件吗?在 /etc/apache2 中它应该看起来像这样:
Listen 80
收听 443
收听 443
vim:语法=apache ts=4 sw=4 sts=4 sr noet
答案3
您不需要指向特定的端口。
<VirtualHost PUT.YOUR.IP.HERE:80 >
ServerName www.domainname1.com
ServerAlias domainname1.com
ServerAdmin [email protected]
DocumentRoot /var/www/{rootdir of site 1}
</VirtualHost>
<VirtualHost PUT.YOUR.IP.HERE:80 >
ServerName www.domainname2.com
ServerAlias domainname2.com
ServerAdmin [email protected]
DocumentRoot /var/www/{rootdir of site 2}
</VirtualHost>
将“PUT.YOUR.IP.HERE”替换为您自己的 IP,虚拟主机将引导 apache2 指向每个“ServerName”和“ServerAlias”的正确根文件夹...请注意,两个虚拟主机条目上的“端口”均设置为 :80。因此无需重新配置。如果这不起作用,我建议检查 Apache 日志记录。