my11502207 发表于 2015-8-3 10:07:43

httpd: apr_sockaddr_info_get() failed for apache 启动问题

  httpd: apr_sockaddr_info_get() failed for hoteel
  httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
  我在service httpd restart的时候提示上述信息的。虽然启动成功了,但是也是很郁闷的。
  这是因为我在配置DNS的时候hostname hoteel造成的。
  重新hostname localhost就可以了。
  我在网上找来一些有关这方面的信息,就顺便贴在这里了。
  1
在啟動 httpd 時出現
  Starting httpd: httpd: apr_sockaddr_info_get() failed for MYHOST
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName.
  這個問題應該是沒有在 /etc/httpd/conf/httpd.conf 中設定 ServerName 所以它會用主機上的名稱來取代,首先會去找 /etc/hosts 中有沒有主機的定義。
  所以要解決這個問題可以設定 ServerName 或者在 /etc/hosts 中填入自己的主機名稱 MYHOST,像這樣:
  >vi /etc/hosts
  127.0.0.1 localhost.localdomain localhost MYHOST
2


在Linux下安装完Apache 2.2.6,启动HTTP服务就报错,似乎不影响服务的使用,但是也挺别扭的。
# ./apachectl start
httpd: apr_sockaddr_info_get() failed for linux(在BSD上是apr_sockaddr_info_get() failed for freebsdla)
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
经分析发现是apache的conf目录下的配置文件httpd.conf中关于hostname设置和/etc/sysconfig/network中的HOSTNAME设置不统一导致的,修改成统一的主机名即可解决该问题。
注:/etc/sysconfig/network 默认主机名是:HOSTNAME=localhost.localdomain
PS:网上有这种办法,似乎是没用的,因为我认为apache在编译安装过程中会编译ARP的,因此下述操作有点多余。
apr和apr-util包含在Apache httpd的发行源代码中,并且在绝大多数情况下使用都不会出现问题。当然,如果apr或apr-util的1.0或1.1版本已经安装在你的系统中了,则必须将你的apr/apr-util升级到1.2版本,或者将httpd单独分开编译。要使用发行源代码中自带的apr/apr-util源代码进行安装,你必须手动完成:
# 编译和安装 apr 1.2

apr
./configure --prefix=/x/httpd/apr
make
make install
apr-util
./configure --prefix=/x/httpd/apr_util --with-apr=/x/httpd/apr
make
make install
apache
./configure --prefix=/x/httpd/apache2 \
--enable-so \
--enable-cgi \
--enable-rewrite \
--enable-mods-shared=all \
--with-apr=/x/httpd/apr \
--with-apr-util=/x/httpd/apr_util


LDFLAGS="-L/usr/lib64 -L/lib64"
页: [1]
查看完整版本: httpd: apr_sockaddr_info_get() failed for apache 启动问题