PHP 主机名不正确

PHP 主机名不正确

我们有一个应用程序已经运行了大约两年,没有任何问题。

今天早上我进入该网站时出现一个错误:

Session: connection failed

我检查了数据库连接、检查了用户、检查了用户的授权,一切看起来都很好。

我使用 .inc.xml 文件中的连接信息创建了一个测试页面

收到 mysql 连接错误。

这是原始文件:

   <TYPE>mysql</TYPE>
        <HOST>dbl</HOST>
        <USER>dbuser</USER>
        <PASSWORD key="PUT A KEY HERE TO DECRYPT THE PASSWORD">password</PASSWORD>

服务器的主机名不是 dbl

我把第二行改成这样:

   <TYPE>mysql</TYPE>
        <HOST>localhost</HOST>
        <USER>dbuser</USER>
        <PASSWORD key="PUT A KEY HERE TO DECRYPT THE PASSWORD">password</PASSWORD>

连接良好。

对原始 .inc.xml 文件进行了相同的更改,应用程序便恢复正常运行。

我的问题:

我检查了审计日志、连接和查询,该系统大约有 3 周无法访问了。

.inc.xml 最后一次修改是在一年多以前。

为什么应用程序会突然停止将 dbl 作为主机?

这个 dbl 主机名是从哪里来的?

系统布局:

[root@acpr-web-x ~]# cat /proc/version
Linux version 2.6.32-358.2.1.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Wed Feb 20 12:17:37 EST 2013

[root@acpr-web-x ~]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Aug 15 2014 03:02:07

[root@acpr-web-x ~]# php -v
PHP 5.3.3 (cli) (built: Oct 23 2014 06:58:46)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Mysql Server version: 5.1.73-log Source distribution

答案1

我的第一个猜测是 /etc/hosts 可以覆盖 DNS(如果主机存在 DNS),并且在 DNS 缺失时几乎完全替代正向 DNS。无论出于什么原因,这个主机 (dbl) 都在 /etc/hosts 中,然后又不在了。

其次,假设 /etc/resolv.conf 丢失了本地域的搜索选项,因此 dbl.foo.com 可以解析但 dbl 不能……这也是一种可能性。

相关内容