質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

2回答

3015閲覧

CentOS6, httpd の自動起動の設定が無効になり困っています。

Web_akira

総合スコア34

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

0クリップ

投稿2019/04/02 02:49

Vagrant で CentOS6 をベースに Apache/2.2 をインストールしました。
自動起動の設定が無効になり、困っています。

chkconfig httpd on

自動起動は on になっているようなのですが…。

chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
/etc/rc.d/init.d/httpd reload

上記の設定反映で [失敗] になります。

ただ、手動で service httpd start とすれば、起動します。
phpinfo(); を書いた index.php も出力されます。
service httpd configtest で httpd.conf の文法チェックもしましたが、問題ありません。

以上のような状況です。

単純な設定なので、何か見落としているとは思いますが、
これ以上はどこをチェックすればいいのか分かりません…。

ご教示、よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

/var/log/boot.logに、Starting httpd: ~と出ていますか?
OS起動時刻に/var/log/httpd/error_logに何か出ていませんか?

投稿2019/04/02 03:04

otn

総合スコア84559

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Web_akira

2019/04/02 03:12

/var/log/boot.logに、Starting httpd: ~ は出ていませんでした。 /var/log/httpd/error_log を見ると、以下の通りです。 [Tue Apr 02 11:33:25 2019] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Tue Apr 02 11:33:25 2019] [notice] Digest: generating secret for digest authentication ... [Tue Apr 02 11:33:25 2019] [notice] Digest: done [Tue Apr 02 11:33:25 2019] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 configured -- resuming normal operations [Tue Apr 02 11:33:59 2019] [notice] caught SIGTERM, shutting down (2)No such file or directory: httpd: could not open error log file /var/www/html/logs/cms.hoge.jp-error_log. Unable to open logs バーチャルホストで設定している、ログ・ファイルが開けないようです。 他にもログファイルは設定していて、権限は同じなのですが…。 いったん、バーチャルホストの設定を見直してみます。
Web_akira

2019/04/02 03:17

httpd.conf の文法は service httpd configtest でチェックできますが、 /etc/httpd/conf.d に設置したバーチャルホストの設定ファイルをチェックするコマンドはあるのでしょうか?
Web_akira

2019/04/02 03:20

/etc/init.d/httpd configtest も試しましたが、Syntax OK でした。
Web_akira

2019/04/02 03:24

問題のログの設定を無効にしたところ、 /etc/rc.d/init.d/httpd reload をたたくと、httpd を再読込... に変わりました。 これでサーバを再起動したのですが、自動起動はしていませんでした…。
otn

2019/04/02 03:30

> /var/log/boot.logに、Starting httpd: ~ は出ていませんでした。 なのに、/var/log/httpd にログがあるんですか?ちょっと不可思議。 1.OS起動が11:33だとして、その2分後に、手動で終了させているように見えますが、それで正しいですか? 2.boot.logに他のデーモンの"Starting "のメッセージは出ていますか? 3.service httpd start と手動起動の時にも"Starting httpd"もしくは"httpdを起動中"のメッセージは出ませんか?
Web_akira

2019/04/02 03:39

> 1.はい、正しいです。 > 2.以下、ログです。"Starting "のメッセージが出ているものもあります。 ^[%G Welcome to CentOS udev を起動中: ^[%G[ OK ]^M ホストネームを localhost.localdomain に設定中: [ OK ]^M 論理ボリューム管理を設定中: [ OK ]^M ファイルシステムを検査中 すべてのファイルシステム検査します。 [/sbin/fsck.ext4 (1) -- /] fsck.ext4 -a /dev/sda1 /dev/sda1: clean, 50919/2621440 files, 1503363/10485504 blocks [ OK ]^M ルートファイルシステムを読み書きモードで再マウント中: [ OK ]^M ローカルファイルシステムをマウント中: [ OK ]^M ローカルファイルシステムのクォータを有効化中: [ OK ]^M /etc/fstab スワップスペースを有効化中: [ OK ]^M 非対話起動モードに移行中 Calling the system activity data collector (sadc)... Loading OpenIB kernel modules:[ OK ]^M ip6tables: No config file.[警告]^M iptables: No config file.[警告]^M ループバックインターフェイスを呼び込み中 [ OK ]^M インターフェース eth0 を活性化中: eth0 のIP情報を検出中... 完了。 [ OK ]^M インターフェース eth1 を活性化中: デバイス eth1 は存在しないようですので、初期化を遅らせます。 [失敗]^M インターフェース eth2 を活性化中: デバイス eth2 は存在しないようですので、初期化を遅らせます。 [失敗]^M インターフェース eth3 を活性化中: デバイス eth3 は存在しないようですので、初期化を遅らせます。 [失敗]^M インターフェース eth4 を活性化中: Determining if ip address 192.168.33.11 is already in use for device eth4... [ OK ]^M インターフェース eth5 を活性化中: Determining if ip address 192.168.11.203 is already in use for device eth5... [ OK ]^M VirtualBox Guest Additions: Starting. auditd を起動中: [ OK ]^M システムロガーを起動中: [ OK ]^M irqbalance を起動中: [ OK ]^M rpcbind を起動中: [ OK ]^M NFS statd を起動中: [ OK ]^M > 3. service httpd start を実行すると以下の通りです。 httpd を起動中: [ OK ] これで、ブラウザからアクセスできます。
otn

2019/04/02 03:57

boot.logにメッセージが出ないのは謎ですが、error_logに起動メッセージが出ている以上、自動起動はしていると言う事だと思います。 > 自動起動の設定が無効 というのは、何を見て判断しましたか?
Web_akira

2019/04/02 04:09

OS 起動後に、service httpd status で確認し、停止しているのを見て判断しました。 chkconfig --list httpd の設定では有効になっているのに、おかしいですよね…。
otn

2019/04/02 04:18

そうなると、error_logにある起動メッセージは、本当にOS起動時のものですか? 時刻の勘違いで、手動起動時のメッセージでは?
Web_akira

2019/04/02 04:57

試しにOSを再起動して error_log を再確認しましたが、追記されていましたので、OS 起動時のもののようです。
otn

2019/04/02 05:12

error_logにあったのは、 Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 configured -- resuming normal operations までで、手動で停止してないので、 caught SIGTERM, shutting down は出ていませんよね?
guest

0

自己解決

バーチャルホストのファイルをいったん除去して OS を再起動したところ、httpd が自動起動しました…。
バーチャルホストの設定に問題がありました。今回分かったことを整理いたします。

文法チェックのコマンドについて。
こちらは「文法」のみがチェックされ、httpd が起動するかは別問題ということが分かりました。
試しにバーチャルホストの設定ファイルでエラーが出るように書き換えてみたところ、ちゃんとチェックされ、エラー箇所が出力されました。

今回の現象をまとめると、①自動起動の設定は on になっていたので、httpd は OS 起動時にいったん起動し、②バーチャルホストの設定に不備があったためエラーを出力して停止していた、ということになります。

ただ不可解なのは、バーチャルホストの設定に不備がある状態でも、SSH で入って service httpd start とすれば、起動することです…。
OS 起動時に httpd が落ちてしまうのに、手動では起動する、ということで混乱しておりました。

今後は問題の切り分けが出来そうです。
ご回答いただいたユーザー様、最後まで詳しくご解説いただき、ありがとうございました。

投稿2019/04/02 05:03

編集2019/04/02 07:00
Web_akira

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2019/04/02 06:13

> 文法チェックのコマンドは基本、httpd.conf に対してのみ /etc/httpd/conf.d/ の下のファイルをチェックしないと思ったと言う事であれば、それは間違いですね。echo aaaa > /etc/httpd/conf.d/invalid.conf とかしてみればわかります。 > バーチャルホストの設定に不備があると自動起動にしていても無効になる これも間違いですね。起動しない事には設定ファイルを見ないので、想定通りでない原因が設定ファイルの不備であれば、起動したに決まっている。 設定ファイルに誤りがあれば、起動した後、エラーメッセージが出たり、エラー終了したりします。
otn

2019/04/02 06:15

> (2)No such file or directory: httpd: could not open error log file /var/www/html/logs/cms.hoge.jp-error_log. Unable to open logs のような、アクセス権のエラーは、service httpd configtest ではチェック出来ないでしょうね。このエラーは直したのでしょうか?
Web_akira

2019/04/02 06:39

> 文法チェックのコマンド 承知しました。チェックしてもエラーが出ないというのは、文法的に正しいだけで、それを元に正しく起動できるかはまた別問題ということですね。やっと理解できました。 >設定ファイルの不備であれば、起動したに決まっている。 こちらは認識不足と言葉足らずだったようです。 起動のログは残っていますので、いったん起動はしたものの、バーチャルホストの設定ファイルに不備があったため、エラー終了した、ということですね。結果的に起動しなかったという意味で、「無効」と書きました。不正確な書き方をしてしまい、申し訳ありません。今後気をつけます。 ただ、こちらも手動で service httpd start とすれば、起動するのが不可解です。自動では起動しないのに、手動ではバーチャルホストの不備を無視して起動するので…。 今は、ServerRoot の /logs 内にログを出力して様子を見ています。 > (2)No such file or directory: のエラーですが、ServerRoot からの相対パスで指定したところ、バーチャルホストの設定ファイルも有効になり、指定した場所にログも作成されました。 ただ、当初はドキュメントルート(/var/www/html)以下にログを出したく、そのようにパスを書き、ログもちゃんとそちらに出ていたので、時間をおいてから起動した際、何が原因で今回のような事態になったのかまだよく分かっていません。ServerRoot からの相対パスで書くのが一般的なのでしょうが、開発機で、社内のオンプレミスであるため、アクセスしやすいドキュメントルートの中を指定した次第です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問