web-dev-qa-db-ja.com

Redhat「httpd」はもう起動できません。 「suEXEC」および「SELinux」の通知の表示

RHEL 6.5とApache 2.2.15を使用しています。 restart the httpdを実行すると、もうhttpdを開始できなくなります。 /var/log/httpd/error_logに次のものを表示しています:

[Fri Aug 01 18:31:48 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Aug 01 18:32:35 2014] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Fri Aug 01 18:32:35 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Aug 01 18:42:46 2014] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Fri Aug 01 18:42:46 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Aug 01 18:43:15 2014] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Fri Aug 01 18:43:15 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Aug 01 18:43:59 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Aug 01 18:44:12 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Aug 01 18:45:03 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

実際、私はすでにdisabledSELinuxを使用して再起動しています。
どうしたらいいですか?

5
夏期劇場

申し訳ありません、理由を見つけました。これは完全にSSL CERT問題。実際には上記のnoticesが原因ではありません。


上記のメッセージとは関係ありませんでした。
したがって、それらを無視してください。


どのようにすれば、Apache Detailed Logsを有効にして、それが本当の動きです。これは、Apacheの起動中にmod_sslモジュールのロードの失敗を示すことで、実際に何が起こっているかを示します。それから私はそれがssl.conf(またはそれぞれのVhostファイル)内にSSL証明書構成があります。

そこで2つの間違いをしました。まず、CERT関連のファイル(.crt/.key/.csr)に読み取り権限を与えませんでした。その後、さらにひどいことに、ファイルの1つが間違っていました。

9
夏期劇場
Apache Error [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

ある晴れた朝、Apache(httpd)サービスがダウンしていて開始できないことがわかりました:)

ステップ1:httpdサービスのステータスを確認する:

#/etc/init.d/httpd status

httpdは停止していますが、pidファイルが存在します

ステップ2:httpdプロセスを検索してそれらを強制終了する

#ps -ef | grep httpd

# killall -9 httpd

手順3:httpdロックファイルが存在する場合は削除する

# rm -f /var/lock/subsys/httpd

ステップ4:Apache/httpdサービスを再起動します

# service httpd restart
Stop httpd    [FAILED]
Start httpd   [FAILED]

さらに掘り下げる必要があります。

手順5:httpdエラーログファイルを確認する

# grep suexec /var/log/httpd/error_log
[Sun Sep 22 10:32:06 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sun Sep 22 10:33:51 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sun Sep 22 10:38:03 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sun Sep 22 10:45:53 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

手順6:httpd nssエラーログファイルを確認する

#tail -300 /var/log/httpd/nss_error_log
[Sun Sep 22 04:03:27 2013] [error] Certificate not verified: 'Server-Cert'
[Sun Sep 22 04:03:27 2013] [error] SSL Library Error: -8181 Certificate has expired
[Sun Sep 22 04:03:27 2013] [error] Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.

[Sun Sep 22 10:38:03 2013] [error] Certificate not verified: 'Server-Cert'
[Sun Sep 22 10:38:03 2013] [error] SSL Library Error: -8181 Certificate has expired
[Sun Sep 22 10:38:03 2013] [error] Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.
[Sun Sep 22 10:45:53 2013] [error] Certificate not verified: 'Server-Cert'
[Sun Sep 22 10:45:53 2013] [error] SSL Library Error: -8181 Certificate has expired
[Sun Sep 22 10:45:53 2013] [error] Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.

この問題の根本的な原因は、nssというモジュールにあります。 mod_nssmod_sslの代替です。 mod_sslが実行できないことをいくつか実行し、mod_sslと一緒に実行できます。詳細については、リンク[mod_nssとは、Mod_NSSのセットアップについて、詳細]を参照してください。

手順7:httpd conf.dディレクトリからnss.confファイルを削除する

#cd /etc/httpd/conf.d
#mv nss.conf nss.conf.orig
#mv ssl.conf ssl.conf.orig
#/etc/init.d/httpd start
Start httpd   [OK]
2
Kiran Prasad

これは私の問題を修正しました。

yumpurge () 
{ 
    if [[ $# -eq 0 ]]; then
        echo "usage:
            removes packages including config files
            example:
            $0 ['pkg1 pkg2 pkgn']
            ";
        return 0;
    fi;
    for package in "$*";
    do
        echo "removing config files for $package";
        for file in $(rpm -q --configfiles $package);
        do
            echo "removing $file";
            echo "enter any key to confirm";
            rm -i -f $file;
        done;
        rpm -e $package;
    done
}


yumpurge  mod_ssl   httpd
yum install -y httpd mod_ssl
0
Akhil Jalagam