web-dev-qa-db-ja.com

mod_unique_id:etc / hostsとApacheServerNameを設定しているにもかかわらず、FQDNのIPv4アドレスが見つかりません

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であることが判明しました。以下を参照してください

3
KCD

問題は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
4
KCD

私はタイプミスやその他の「ばかげて単純な」間違いを私たち全員が時々犯すのを探していますが(私は妻を校正者として使用しています)、それがうまくいかない場合は、straceを起動して何を確認しますmod_securityがやろうとしています。 /etc/hostsを読み取っていない可能性があります。DNSを介して名前を解決するのに失敗している可能性があります。代わりに、何らかのハード障害などが発生しています。

とにかく、とにかくマシンの名前をDNSに入れます。それは非常に多くの手間を省くだけです。

3
womble