Php
PHP 主機名不正確
我們有一個應用程序已經執行了大約 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 沒有……也是一種可能性。