Php

PHP 主機名不正確

  • June 20, 2017

我們有一個應用程序已經執行了大約 2 年,沒有任何問題。

今天早上,當我進入該網站時,遇到了一個錯誤:

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 (mockbuild@x86-023.build.eng.bos.redhat.com) (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

我的第一個猜測是 /etc/hosts 可以覆蓋 DNS(如果它存在於主機)並在它失去時幾乎完全替代轉發 DNS。無論出於何種原因,該主機 (dbl) 位於 /etc/hosts 中,然後它不在。

其次,假設 /etc/resolv.conf 失去了本地域的搜尋選項,因此 dbl.foo.com 解析但 dbl 沒有……也是一種可能性。

引用自:https://serverfault.com/questions/856885