我正在设置我的第一个虚拟主机,但域名不起作用。我已经sudo a2ensite SITENAME
完成了并重新启动了 apache,但仍然无法访问。我已验证 IP 是正确的,因为我目前通过 IP 登录到 splunk。
更新
我NameVirtualHost *:80
在 上有我的apache2.conf
。我更新的网站 VirtualHost 配置如下:
<VirtualHost xx.xxx.xxx.xxx:80>
ServerName www.domain.com
ServerAlias domain.com
ServerAdmin [email protected]
DocumentRoot /home/source/public_html/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/source/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /home/source/log/error_log
TransferLog /home/source/log/access_log
</VirtualHost>
我还更新了 /etc/hosts 以显示:
127.0.0.1 localhost
127.0.1.1 productionserver
127.0.0.1 www.domain.com
答案1
您使用的是哪个版本的 Apache?如果您使用的是版本 2,则默认 VirtualHost 配置应该可以满足您的需求。使用以下命令创建新的 VirtualHost:
$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/www.yoursite.com
使用您最喜欢的文本编辑器编辑指令:
$ gksudo gedit /etc/apache2/sites-available/www.yoursite.com
激活您的网站:
$ sudo a2ensite www.yoursite.com
重新加载Apache:
$ sudo /etc/init.d/apache2 reload
使用 IP 地址和域名更新 /etc/hosts 文件:
127.0.0.1 www.yoursite.com
浏览至 www.yoursite.com。
希望这可以帮助!
麦克风
答案2
NameVirtualHost *:80
<VirtualHost xxx.xxx.xxx.xxx:80>
</VirtualHost>
更好的是,如果您不需要(或不关心)将其绑定到特定的 IP 地址,只需在 VirtualHost 指令中使用 *:80。
NameVirtualHost *:80
<VirtualHost *:80>
</VirtualHost>
答案3
您的 hosts 文件中只有 www.domain.com,服务器名称是 domain.com。
您可以通过在 hosts 文件中的 domain.com 后添加 www.domain.com 或在 apache 配置中的 ServerName 指令后添加此行来修复此问题:
服务器别名 www.domain.com
然后重新加载 apache 配置。
谢谢,-Kamil