無法讓 Apache 找到 PDO 驅動程式

無法讓 Apache 找到 PDO 驅動程式

我使用的是Windows 10,並安裝了Apache2.4、PHP7.2和MySQL。我在安裝 pdo_mysql 驅動程式時遇到問題

我已經編輯了 php.ini 文件,在擴展部分我有:

extension=pdo_mysql

我還將 extension_dir 指令設為:

"C:\php72\ext"

在命令控制台中,我輸入“php -m”,我可以看到 PDO 和 pdo_mysql 都列出了。

顯示 php -m 的命令控制台螢幕截圖

我已經重新啟動了 Apache,但是當我運行包含 或 的 .php 檔案時print_r(PDO::getAvailableDrivers());phpinfo(); 我可以看到我沒有為 PDO 安裝任何驅動程式。

在我的 httpd.conf 檔案中

PHPIniDir “C:\php72\”

我嘗試將其更改為使用正斜杠和反斜杠,並包含和刪除尾部斜杠,在每次更改後重新啟動 Apache。我仍然無法加載 pdo_mysql 驅動程式。

在我看來,問題出在 Apache 而不是 PHP(因為當我在命令控制台中運行 php -m 時出現 pdo_mysql 模組),但我不明白我做錯了什麼。我搜尋了其他有相同問題的人,但解決方案似乎總是 PHPIniDir,我認為我已經設定正確。

我使用的機器已經在運行 IIS,因此我讓 Apache 偵聽連接埠 8090,而不是預設連接埠。我不確定這是否相關。

任何幫助,將不勝感激!

答案1

我卸載了 Apache 服務,刪除了 C:\Apache24 並從頭開始安裝,並按照先前的步驟安裝 pdo_mysql ,效果很好。

答案2

我遇到了同樣的問題,透過 cli 運行時加載了模組,但透過 Apache 運行相同的 php 配置時則沒有加載。

在我的例子中,解決方案是將extension_dirphp.ini 檔案中的 設定為模組資料夾的絕對路徑(在我的例子中為 C:\php80\ext)。

現在 cli 和 Apache 都可以正確載入模組。

答案3

對我來說,我遵循的使用 Apache 設定 Fast CGI 的愚蠢說明讓我將 exe 檔案放在 ini 檔案應該放置的位置。

# Where is your php.ini file?
FcgidInitialEnv PHPRC "c:/Program Files/php/php.exe" // should be ini

我把它改成ini並且它起作用了。我很驚訝 php 讓我將 php.exe 設定為 ini 檔案...

相關內容