phpinfo() 沒有加載顯示mysql只有myslnd的解決方案

在window環境下搭建我的php(5.6)+nginx+mysql環境(獨立安裝)。
搭建完畢後嘗試在php中使用mysql,但是在調用mysql_connect()函數時,一直報錯顯示該函數未定義。
然後打印phpinfo(),發現缺少了mysql,在php.ini裏將mysql擴展打開後,還是沒有,只有mysqlnd。
然後各種谷歌,嘗試各種解決方案也沒有,最普遍的說法是說在window目錄下放入一個dll文件,也是解決不了,話說也沒人解釋下爲什麼要放在那裏。
    然後偶然注意到在phpinfo打印出出來的內容有兩個參數:
Configuration File (php.ini) PathC:\WINDOWS
Loaded Configuration Filenone
以及在php.ini的開頭部分有個註釋寫着:
; 6. The directory from the --with-config-file-path compile time option, or the
; Windows directory (C:\windows or C:\winnt)

查找了一下這方面的資料,原來加載php.ini文件順序是:如果在Loaded Configuration File目錄找不到php.ini文件, 就會默認加載Configuration File (php.ini) Path這裏的配置默認信息(不知道這是不是大家說要把擴展文件放這裏的原因)。所以一旦Loaded Configuration File這裏爲none時, 不管你怎麼修改那個配置文件,都是不起作用的。那麼現就就要找出爲什麼不能加載到php.ini的原因了。
下面是我的php.ini的目錄 以及啓動php.cgi:
RunHiddenConsole.exe  D:\Program Files (x86)\anmp\php56\php-cgi.exe -b 127.0.0.1:9000 -c D:\Program Files (x86)\anmp\php56\php.ini
其實php-cgi.exe可以啓動起來。有可能是加載php.ini那句沒起作用。路徑應該沒錯。
谷歌不到的情況下我去下載了一個xampp的集成環境。打開mysql擴展,然後打印phpinfo,是有mysql擴展的。 然後將xampp的php整個文件夾放到自主安裝的anmp目錄下,啓動服務。發現還是爲none,沒有mysql信息。
於是開始猜測是否有可能目錄命名有問題:Program Files (x86)
於是將整個anmp提到D盤目錄下,就成了:  D:\anmp
再次啓動服務,打印phpinfo,此時就發現有值了:
Loaded Configuration FileD:\anmp\php56\php.ini
mysql的信息也有了。
所以整個問題的解決思路我想應該可以歸納到兩點:
一是Loaded Configuration File 的路徑是否正確
二是看php.ini的mysql相關擴展是否有打開,dll是否缺少。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章