VirtualHost confファイルを追加した後、apacheが再起動しないのはなぜですか?


14

CentOS 7、私が入力したときに、サーバー、私は次のエラーを取得するsudo apachectl restart私はの下部にあるファイルをインクルード追加した後httpd.conf

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

次に、と入力するsudo systemctl status httpd.service -lと、結果は次のようになります。

httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: failed (Result: exit-code) since Tue 2014-12-23 20:10:37 EST; 2min 15s ago
  Process: 2101 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
  Process: 2099 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 2099 (code=exited, status=1/FAILURE)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"

Dec 23 20:10:37 ip-address httpd[2099]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Dec 23 20:10:37 ip-address systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 23 20:10:37 ip-address systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 20:10:37 ip-address systemd[1]: Unit httpd.service entered failed state.

apacheincludeディレクティブをコメント化すると再起動できます。includeディレクティブのコメントを外すと、エラーを再作成できます。 インクルードファイルの内容を使用して適切に起動するにはどうすればよいapacheですか?

httpd.confエラーの原因となっているその下の行は次のとおりIncludeOptional sites-enabled/*.confです。フォルダー内の唯一の.confファイルはで、次の内容が含まれています。 sites-enabledmydomain.com.conf

<VirtualHost *:80>
    ServerName www.mydomain.com
    ServerAlias mydomain.com
    DocumentRoot /var/www/mydomain.com/public_html
    ErrorLog /var/www/mydomain.com/error.log
    CustomLog /var/www/mydomain.com/requests.log combined
</VirtualHost>

httpd.confがプレインストールされていますものと同じであるhttpd1行を除いては、上記のディレクティブが含まれます。私が知っていたのはsudo yum remove httpd mod_sslsudo yum install httpd mod_sslこのエラーをトリガーする直前でしたからです。このリンクをクリックするhttpd.confと、ファイル共有サイトで全体を読むことができます。

このチュートリアルの手順を明示的に実行すると、この問題が発生しました。

インクルードファイルをコメントアウトすると、に定義されhttp/mydomain.comているにある静的コンテンツが正常に提供されます。この問題は、上記のインクルードファイルのディレクティブに起因しているようです。 診断を支援するために、以下のEDIT#3 に、3つのincludeディレクティブに含まれるすべてのファイルへのリンクを含めました/var/www/htmlDocumentRoothttpd.confVirtualHost.confhttpd.conf

編集#1

/etc/hostname定義するためmydomain.comにm32のアドバイスをしようとすると、apacheまだ再起動せず、systemctl status httpd.service結果は次のようになります。

[sudo_user_account@server-ip-address ~]$ sudo systemctl status httpd.service -l
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: failed (Result: exit-code) since Tue 2014-12-23 14:25:35 EST; 20s ago
  Process: 31993 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
  Process: 31991 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 31991 (code=exited, status=1/FAILURE)
   Status: "Total requests: 1; Current requests/sec: 0; Current traffic:   0 B/sec"

Dec 23 14:25:35 hostname systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 23 14:25:35 hostname systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 14:25:35 hostname systemd[1]: Unit httpd.service entered failed state.  

編集#2

/etc/hosts次の画像で定義されているように、eyoung100のアドバイスを試してファイルの内容を変更しましたが、上記のEDIT#1で定義されたのと同じエラーが表示されます。

編集#3

DerekCのリクエストごとに、私は走ってsudo apachectl configtest、次のものを得ました

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Syntax OK

さらに、GarethTheRedの提案に従って、httpd.confの includeディレクティブを調べました。httpd.confには3つのincludeディレクティブがあります。各ディレクティブのフォルダーにあるすべてのファイルとともに、以下の3つをリストしました。これらはすべて、.confとともにインストールされる標準ファイルですhttpd。まだ変更していません。.conf以下のリンクをクリックして、ファイル共有サイトで各ファイルを表示できます。

Include conf.modules.d/*.confconf.modules.dディレクトリ内の次のファイルを参照します: 00-base.conf
00-dav.conf
00-lua.conf
00-mpm.conf
00-proxy.conf
00-ssl.conf
00-systemd.conf
01-cgi.conf

IncludeOptional conf.d/*.conf参照で、次のファイルconf.dのディレクトリは: autoindex.conf
のssl.conf
userdir.conf
welcome.conf
私はここに省略していますことをREADMEファイルもあります。

さらに、IncludeOptional sites-enabled/*.confディレクティブとその内容は、上記のOPで徹底的に概説されています。

これらのいずれかには、のVirtualHost設定と競合するファイルが含まれていますmydomain.com.confか?

編集#4

garethTheRedの提案に従ってmydomain.com.confconf.dディレクトリに移動し、再起動できるようになるmydomain.com.confまで1 行ずつコメントアウトし始めましたhttpd。次に、コメントを外す行を開始して、残りの行数がどれだけ残っていて、httpdまだ再起動できるかを調べました。httpd再起動することはできましたがsystemctl status httpd.service -l、同じ警告が引き続き発生します。

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message

VirtualHost可能な構文httpdは次のように(上記の警告を生成し続けるが)開始することです。

<VirtualHost *:80>
    ServerName www.mydomain.com
    ServerAlias mydomain.com
    DocumentRoot /var/www/mydomain.com/public_html
</VirtualHost>  

次の行を省略する必要があったことに注意してください。この行があると、警告がエスカレートしてhttpを起動できなくなります。

# ErrorLog /var/www/mydomain.com/error.log
# CustomLog /var/www/mydomain.com/requests.log combined

また、私は走りましたsudo journalctl -xelu httpd、そして、端末は以下を何回も繰り返すことによって答えました:

-- 
-- Unit httpd.service has finished shutting down.
Dec 24 17:48:43 server-ip-address systemd[1]: Stopped The Apache HTTP Server.
-- Subject: Unit httpd.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit httpd.service has finished shutting down.
Dec 24 17:48:48 server-ip-address systemd[1]: Starting The Apache HTTP Server...
-- Subject: Unit httpd.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit httpd.service has begun starting up.
Dec 24 17:48:48 server-ip-address httpd[10364]: AH00558: httpd: Could not reliably d
Dec 24 17:48:48 server-ip-address systemd[1]: Started The Apache HTTP Server.
-- Subject: Unit httpd.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit httpd.service has finished starting up.
-- 
-- The start-up result is done.
lines 887-909/909 (END)

注:上記の結果は、eyoung100のhostsファイルまたはm32のホストファイルのどちらを使用しても同じです。 この質問に答えるためには、ログファイルを作成し、サーバー名の警告を回避できる必要があると思います。 そうしないと、httpdを構成する後続のステップでエラーが残る可能性があります。


1
ServerNameディレクティブを追加すると、正確な「曖昧な」エラーが発生しますか?質問に追加してください。
ウルテル

1
の出力はapachectl configtest何ですか?
DerekC

そこにあるIncludeOptionalオリジナルの終わりにhttpd.confファイル?デフォルトのインストールがあると思います。問題はIncludeOptional、最後に余分なものを追加しているapacheために、含まれている構成ファイルを強制的に2回読み取ってしまい、結果として失敗する可能性があることです。
garethTheRed 14

はじめに、に移動mydomain.com.conf/etc/httpd/conf.d(他のすべての場所)、削除/etc/httpd/sites-enabled(Debian / Ubuntuのことです)して、IncludeOptionalに追加する必要がありますhttpd.confAH00558メッセージは止まらないので、今は無視してかまいませんapache。次にconf、犯人が見つかるまでファイルから行を削除します(または、空の行から始めて、一度に1行ずつ復元します)。
garethTheRed 14

1
@garethTheRedとGoogleのユーザーは、IncludeOptional sites-enabled / *。confを削除する必要はありません。それは赤いニシンでした。本当の問題は、以下にgarethTheRedが指摘したログファイルでした。OPと同じチュートリアルに従いましたが、同じ問題がありました。仮想ホストのconfファイルからログファイルの行を削除すると、修正されました。
ルイーズエグルトン

回答:


19

apacheウェブサイトのルートに書き込めないため、ログがエラーの原因です。ファイルのパーミッションを修正したとしても、SELinuxによってブロックされます。のみにapacheログを書き込むことができます/var/log/httpd。最も簡単な解決策は、このディレクトリにログインするようにWebサイトを変更することです。他のログと区別するために、Webサイト名を含むファイル名を使用することもできます。

ErrorLog /var/log/httpd/mydomain_com_error.log
CustomLog /var/log/httpd/mydomain_com_requests.log combined

サーバーのホスト名を設定し、AH00558警告を取り除くには、次を使用します。

hostnamectl set-hostname --static <FQDN of your machine>

例えば

hostnamectl set-hostname --static mydomain.com

この作業を続けると、別のエラーが発生しました。あなたも私を助けてくれますか?リンクは次のとおり
questions

2

マシンのホスト名を設定するのを忘れたときにこのエラーが発生しました。あなたはそうしましたか?
次のコマンドを実行します:

echo 'example.com' >> /etc/hostname  

で確認 hostname

編集:
更新されたOPでは、hostsファイルが正しくセットアップされていないようです。これが私のものです。

127.0.0.1 localhost.localdomain localhost
# Auto-generated hostname. Please do not remove this comment.
166.66.666.66 m32.me m32
::1     ip6-localhost ip6-loopback

そのような単純なものに設定してみてください。もちろん、すべての情報を自分のものに置き換えてください。ドメインのある
166.66.666.66独自のIP
m32.me and m32、およびTLDのないドメイン


それでも問題は解決しませんでしたがAH00558、サンプルホストファイルを使用すると、ipとでエラーが発生しますmydomain.com mydomain
CodeMed 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.