我习惯使用 Ubuntu,它有一个专门用于包含虚拟主机的文件。但我的印象是,在 CentOS 中,虚拟主机列在主配置文件中。
有人可以证实这一点吗?
编辑-尝试过这个,但没有用:
将其添加到 httpd.conf
<VirtualHost *:80>
ServerName example.com
ErrorLog /var/www/example_apache_errors.log
DocumentRoot /var/www/html/example
<Directory /var/www/html/example/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
没用。我创建的 /var/www/html/example/index.html 测试页面没有显示。相反,显示的是 /var/www/html/index.html 默认页面。
编辑:在任何人问之前,是的,我在每次配置更改后都会重新启动 apache。
编辑:
名称虚拟主机 *:80在配置文件中默认被注释掉,而我没有取消注释。我相信这就是问题所在。
但是我决定使用基于 ip 的,如下所示:
<VirtualHost 69.175.xxx.xxx:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example/
# etc. etc.
</VirtualHost>
这很有效。我们有 5 个 IP,希望以后我可以使用此方法来分配其他 IP。
答案1
你知道你可以坚持这样的事情:
Include conf.d/*.conf
Include sites-enabled/*.conf
进入 /etc/httpd/conf/httpd.conf,运行“mkdir -p /etc/httpd/sites-enabled /etc/httpd/sites-available”并获得类似于 Apache 的 Ubuntu 目录结构,对吗?
更新(来自评论中的信息):
您还应该验证端口 80 的 NameVirtualHosts 是否已打开。
答案2
由于 Centos 有 ,Include conf.d/*.conf
我将我的配置放在那里。但是我通常有一个conf.d/00_NameVirtualHost.conf
。NameVirtualHost *:80
我猜你没有在 apache 配置中设置它。