我使用的是Windows 10,並安裝了Apache2.4、PHP7.2和MySQL。我在安裝 pdo_mysql 驅動程式時遇到問題
我已經編輯了 php.ini 文件,在擴展部分我有:
extension=pdo_mysql
我還將 extension_dir 指令設為:
"C:\php72\ext"
在命令控制台中,我輸入“php -m”,我可以看到 PDO 和 pdo_mysql 都列出了。
我已經重新啟動了 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_dir
php.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 檔案...