如何在 Centos7 中设置虚拟主机?

如何在 Centos7 中设置虚拟主机?

我正在尝试在 Centos7 中设置虚拟主机。我遵循了这个指南:

http://twohlix.com/2011/05/setting-up-apache-virtual-hosts-on-centos/

但是我不断收到以下错误:

Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' `for details.`

Journalctrl的相关输出如下:

-- Unit httpd.service has begun starting up.
Aug 17 14:21:54 [8235]: AH00548: NameVirtualHost has no effect and will be removed in the next release
Aug 17 14:21:54 [1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Aug 17 14:21:54 [1]: Failed to start The Apache HTTP Server.
-- Subject: Unit httpd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

我不知道这是什么。我还尝试使用不同的方法,其中 VirtualHost 容器位于 httpd.conf 文件内,但仍然没有成功。我正在使用以下配置。

Server version: Apache/2.4.6 (CentOS)
Server built:   Jul 23 2014 14:48:00

我没有配置 DNS 等,这会对其产生影响吗?这是我唯一能想到的其他事情。任何帮助将不胜感激,我在过去的几天里一直试图弄清楚这可能是什么,但我尝试的一切都失败了。

答案1

对于基本的虚拟主机来说,这是一个相当小的配置。创建一个新的配置文件/etc/httpd/conf.d/并以您的域名命名(例如)。但它必须以以下方式结束.conf

# nano /etc/httpd/conf.d/example.net.conf

<VirtualHost example.net:80>
    DocumentRoot /var/www/example.net/
</VirtualHost>

确保其中有可查看的内容/var/www/example.net

重新加载您的网络服务器:

# systemctl reload httpd

确保您可以example.net从客户端解析到主机的 IP 并进行测试。任何错误都应该在/var/log/httpd/error_log.

答案2

还要考虑到默认 SELinux 配置将阻止 httpd 访问您的虚拟主机目录。您需要为它们设置适当的上下文:

# chcon -R -u system_u -r object_r -t httpd_sys_content_t <DocumentRoot>

另一个选项是禁用 SELinux。

相关内容