私はフォローしていますこれCentos 7で2つの仮想ホストを設定する方法のチュートリアル。
問題は、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
自分のネットワーク/ホスト名の設定にどのような問題がありますか?どんな助けでも大変感謝します。
答え1
これはCentOS 7でデフォルトで有効になっているSELINUXの問題のようです。
サーバーを設定しSELINUX=permissive
て再起動すると、問題が/var/log/audit/audit.logに記録されるため、SELINUXがサーバーを保護できるように適切なSELINUX設定を設定できます。
firewalld
また、外部接続を許可するには、ポート80と443へのアクセス許可を設定する必要があります。
firewall-cmd --add-service=http
firewall-cmd --add-service=https
linodeにはファイアウォールに関する良い記事があります。しかし、まだ良いSELINUXリソースが見つかりませんでした。
答え2
エラーメッセージによると:Set the 'ServerName' directive globally to suppress this message
そのhttpd.conf
ファイルで検索する必要があり、ServerName
その上には次の説明があります。
ServerName gives the name and port that the server uses to identify itself.
This can often be determined automatically, but we recommend you specify
it explicitly to prevent problems during startup.
If your host doesn't have a registered DNS name, enter its IP address here.
したがって、次の行を追加します。
ServerName server:[PORT]
これにより、起動の問題が解決されます。