Mod_securityを取得しようとしていますが、非常に一般的なホスト名エラーが発生します。
[alert] (EAI 2)Name or service not known: mod_unique_id: unable to find IPv4 address of "computername.domain.com"
これは通常、hostsファイルにエントリが必要であることを意味します。ただし、ホスト名のすべての組み合わせを試しました。ローカルホスト(127.0.0.1)、ローカルIPアドレス(192.168。..)およびパブリックIPアドレス( "122.56.11.156")。また、ApacheのServerNameのすべての組み合わせを試しました。 computer.domain、ドメイン、IPアドレスであり、まったく設定されていません。私には何もうまくいかないようです。
現在、私の/ etc/hostsファイルは次のようになっています。
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 computername.domain.com computername localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.0.102 computername.domain.com computername
#192.168.0.102 computername.hostingprovider.local computername # NIC <eth0>
#122.56.11.156 computername.domain.com computername
Pingは機能し、ホスト名も表示されます
[root@computername~]# hostname
computername.domain.com
パブリックDNSにはサブドメインとしてコンピューター名がないので、使用する正しいIPアドレス/サーバー名の組み合わせは何ですか?ホスト上の重複エントリはどうなりますか? mod_unqiue_idは何をチェックして失敗する可能性がありますか?
あなたが提供できる助けをありがとう
Straceの提案をありがとう。 Apacheを起動すると、次のようになりました。
1377 open("/etc/hosts", O_RDONLY) = -1 EACCES (Permission denied)
非常に迅速にサニティチェックの権限と:
# ll /etc/hosts
-rw-r--r-- 2 root root 608 Jul 22 16:01 /etc/hosts
しかし、SELinuxであることが判明しました。以下を参照してください
問題はSELinuxでした
#less /var/log/audit/audit.log
type=AVC msg=audit(1311546944.235:1040): avc: denied { read } for pid=1396 comm="httpd"
name="hosts" dev=dm-0 ino=262931
scontext=user_u:system_r:httpd_t:s0
tcontext=system_u:object_r:initrc_tmp_t:s0 tclass=file
私の場合、以下がそれを解決しました:
# ls -lZ /etc/hosts
-rw-r--r-- root root system_u:object_r:initrc_tmp_t /etc/hosts
# setenforce 0
# restorecon -R -F -v /etc/hosts
# setenforce 1
# ls -lZ /etc/hosts
-rw-r--r-- root root system_u:object_r:etc_t /etc/hosts
私はタイプミスやその他の「ばかげて単純な」間違いを私たち全員が時々犯すのを探していますが(私は妻を校正者として使用しています)、それがうまくいかない場合は、straceを起動して何を確認しますmod_security
がやろうとしています。 /etc/hosts
を読み取っていない可能性があります。DNSを介して名前を解決するのに失敗している可能性があります。代わりに、何らかのハード障害などが発生しています。
とにかく、とにかくマシンの名前をDNSに入れます。それは非常に多くの手間を省くだけです。