我知道这个问题已经被问了上千次,我也尝试了几乎所有的解决方案,但我仍然无法让它工作。我试图从内部和外部访问 example.com。我对服务器还很陌生,所以我真的不知道我做错了什么,或者没有做什么。
根据大家的指示,我在以下位置设置了网站:/etc/apache2/sites-available/example.com
以下是文件中的内容:
<VirtalHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example/httpdocs
<Director />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/example/httpdocs>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow, deny
allow form all
</Directory>
ErrorLog /var/www/example/logs/error.log
LogLevel warn
CustomLog /var/www/example/logs/access.log combined
</VirtualHost>
以下是我的/etc/hosts
文件中的内容:
12.345.67.89 example.com
然后我按照提示执行了sudo a2ensite example.com
,然后sudo service apache2 reload
。现在,我在我的内部 IP(192.168.1.100)上进行了端口转发,将端口转发到端口为 80 的外部 IP(12.345.67.89),如果我进入浏览器并输入 12.345.67.89/example/httpdocs,我可以看到我的页面。但是,如果我输入 example.com 或 www.example.com,我会看到 DNS 搜索页面。我做错了什么,还是我遗漏了什么?提前谢谢您...
答案1
我假设,您的 example.com vhost 文件以字母 a、b、c 或 d 开头。因此它按字母顺序位于默认 vhost conf 文件之前。
如果是这种情况,您可以将默认配置文件重命名为 000-default(例如)
另请确保您的默认配置文件中没有相同的 ServerName。