我正在尝试在 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。