win2003 iis整合php後 環境變數無法讀取到

來源:互聯網
上載者:User
關鍵字 win2003 iis整合php後 環境變數無法讀取到

一般情況下,都能實現顯示phpinfo()的頁面。就從能夠顯示該頁面之後出現的問題說起

php的問題都會顯示在phpinfo()頁面上

首先查看自己的php.ini的路徑是否正確

Q:我已經配置了php.ini檔案,但重新啟動伺服器後為什麼沒有任何效果?
A:這個問題主要有這幾種情況。
第一個原因是由於系統所讀取的php.ini檔案與你當時修改的php.ini檔案不一致造成的
 1、 可以通過phpinfo()的Configuration File (php.ini) Path選項查看當前PHP伺服器讀取的是哪一個php.ini
 2、 如果你要更改php.ini的檔案存取位置,可參考php.ini的搜尋順序,如下所示:
  a)    SAPI 模組所指定的位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令列選項,NSAPI 中的 php_ini 參數,THTTPD 中的 PHP_INI_PATH 環境變數)
  b)    HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath(Windows 註冊表位置)
  c)   PHPRC 環境變數
  d)    當前工作目錄(對於 CLI)
  e)    網頁伺服器目錄(對於 SAPI 模組)或 PHP 所在目錄(Windows 下其它情況)
  f)    Windows 目錄(C:\windows 或 C:\winnt),或 --with-config-file-path 編譯時間選項指定的位置
 3、 一般做法:通過設定PHPRC 環境變數,
  a)    操作:右擊我的電腦->屬性->進階->環境變數
  b)    在系統變數下建立一個“變數名為PHPRC  ,變數值為你的php.ini檔案所地檔案路徑”的環境變數

第二個原因是:PHP沒有找到相應的擴充庫
 1、 查看PHP找到的擴充庫位置:在phpinfo()的extension_dir選項可以看到
 2、 在php.ini更改extension_dir檔案

第三個原因:沒有完全重啟IIS
 1、 對php.ini的修改必須完全重啟IIS才能起作用,而不能只是對當前網站進行重啟。
 2、 進入cmd,停止伺服器:net stop iisadmin;啟動伺服器:net start w3svc

Q:我的PHP怎麼沒有辦法啟用MySQL擴充庫
A:在PHP5.0以上版本,MySQL 預設未啟用,因此需要咱們進行手工啟用。
  1、 在PHP運行MySql,必須在 php.ini 中啟用 php_mysql.dll 動態串連庫,另外還需要訪問 MySQL 用戶端串連庫即libmysql.dll檔案
  2、 可以通過php.ini中的extension啟用 php_mysql.dll 動態串連庫;而libmysql.dll檔案必須放在Windows 的系統路徑 PATH才能訪問,可以通過把libmysql.dll複製到system32目錄下,也可以在PATH環境變數中新增一個路徑。
  3、 建議做法:通過設定PATH,方便以後的php升級,在系統內容變數中的PATH後增加“libmysql.dll”所在的檔案夾即可。記得通過“;”號隔開
  4、 [案例]最近,伺服器總是找不到MySql擴充庫,導致程式無法運行。因此,把所有檔案刪除後重新設定PHP伺服器。但最後在安裝MySql的時候,卻始終無法啟用MySql擴充庫。
  在phpinfo()中找到的資訊如下:
  PATH:c:\php
  PHPRC:C:\php
  extension_dir:c:\php\ext\
  另外,我測試了將其它的庫啟用,如msql、gd2、xml,在phpinfo()都可以正常顯示
  證明PHP能找到php_mysql.dll 動態串連庫,而MySql的啟動並執行另一個條件是能夠訊問MySQL 用戶端串連庫即libmysql.dll檔案,看來問題就在這裡了。
  我對C盤搜尋libmysql.dll檔案,發現在system32和php檔案夾各有一個檔案,做好備份後,我嘗試刪除system32的libmysql.dll檔案,發現被鎖死,無法刪除,卻可以重新命名,我隨便修改了名稱,再重新啟動IIS,伺服器運行正常。

補充一點:如果Configuration File (php.ini) Path 顯示為C:\Windows

就說明,php.ini檔案沒有讀取到。

另外,我發現,在用IIS整合php時,有兩種方式:ISAPI與CGI模式

這兩種方式,我們都可以看到phpinfo頁面

但是使用ISAPI模式,無法讀取環境變數,所以通過環境變數PHPRC設定的php.ini路徑無法找到。

使用CGI就可以,這樣就不必把好多檔案拷到系統檔案下

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.