我正在按照本教程在 Centos 7 中设置两个虚拟主机。
问题是我在重新启动 httpd 时收到以下错误。
[userme@server ~]$ sudo systemctl restart httpd.service
[sudo] password for userme:
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
我的配置是
[userme@server ~]$ cat /etc/hosts
127.0.0.1 server.workstation.com server
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[userme@server ~]$ hostname
server.workstation.com
[userme@server ~]$ cat /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
HOSTNAME=server
[userme@server ~]$ cat /etc/resolv.conf
# Generated by NetworkManager
search workstation.com
nameserver fe80::1%p3p1
nameserver 192.168.100.1
[userme@server ~]$ domainname
(none)
编辑根据要求
[userme@server ~]$ systemctl status httpd -l
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 2018-01-18 12:55:25 +04; 57min ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 1285 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 1283 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 1283 (code=exited, status=1/FAILURE)
Jan 18 12:55:25 server.workstation.com systemd[1]: Starting The Apache HTTP Server...
Jan 18 12:55:25 server.workstation.com httpd[1283]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using server.workstation.com. Set the 'ServerName' directive globally to suppress this message
Jan 18 12:55:25 server.workstation.com systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Jan 18 12:55:25 server.workstation.com kill[1285]: kill: cannot find process ""
Jan 18 12:55:25 server.workstation.com systemd[1]: httpd.service: control process exited, code=exited status=1
Jan 18 12:55:25 server.workstation.com systemd[1]: Failed to start The Apache HTTP Server.
Jan 18 12:55:25 server.workstation.com systemd[1]: Unit httpd.service entered failed state.
Jan 18 12:55:25 server.workstation.com systemd[1]: httpd.service failed.
[userme@server ~]$ sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: p3p1
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[userme@server ~]$ apachectl configtest
Syntax OK
我的网络/主机名设置有什么问题?任何帮助,将不胜感激。
这看起来像是在 CentOS 7 上默认启用的 SELINUX 的问题。
设置
SELINUX=permissive
并重新启动服务器会将问题记录到 /var/log/audit/audit.log 以便设置适当的 SELINUX 设置以允许 SELINUX 保护服务器。此外,还需要设置
firewalld
允许访问端口 80 和 443 以允许外部连接:linode 为 firewalld 写了一篇很好的文章,但我还没有找到一个好的 SELINUX 资源......
根据您的错误消息:
Set the 'ServerName' directive globally to suppress this message
在
httpd.conf
文件中你应该找到ServerName
,在它上面你可能会发现以下注释:所以添加以下行:
应该解决您的启动问题。