如何在 Windows 上为 PHP 安装 PDO 驱动程序?
How do I install PDO drivers for PHP on Windows?
我在 Windows 服务器上安装了 Apache、PHP 5.6 和 MySQL 5.7。
在 php.ini 中,我启用了以下功能:
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_oci8_12c.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
(并重新启动 Apache)
但是当我尝试在我的 php 页面中使用 PDO 时,它仍然会抛出错误:
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver'
我需要做什么才能安装 PDO?
在我的 apache httpd.conf
中我有(请注意我已经删除了 # 因为它至少花了我 1 小时)。所以我留下它是为了告诉我如何不去做。
#PHPIniDir 'c:\apps\php\'
#PHPIniDir "C:\Apache24\~PHP_download\php-5.6.11-Win32-VC11-x64\"
PHPIniDir "C:/Apache24/~PHP_download/php-5.6.11-Win32-VC11-x64"
#LoadModule php5_module "c:/apps/php/php5apache2_2.dll"
LoadModule php5_module "C:/Apache24/~PHP_download/php-5.6.11-Win32-VC11-x64/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
在上面的文件夹中(如下所示)我有这些文件:
Directory of C:\Apache24\~PHP_download\php-5.6.11-Win32-VC11-x64
07/24/2015 12:33 PM <DIR> .
07/24/2015 12:33 PM <DIR> ..
07/24/2015 12:32 PM 69,632 deplister.exe
07/24/2015 12:32 PM <DIR> dev
07/24/2015 12:32 PM <DIR> ext
07/24/2015 12:32 PM <DIR> extras
07/24/2015 12:32 PM 1,290,752 glib-2.dll
07/24/2015 12:32 PM 16,384 gmodule-2.dll
07/24/2015 12:32 PM 25,337,856 icudt54.dll
07/24/2015 12:32 PM 1,907,712 icuin54.dll
07/24/2015 12:32 PM 51,200 icuio54.dll
07/24/2015 12:32 PM 256,000 icule54.dll
07/24/2015 12:32 PM 50,176 iculx54.dll
07/24/2015 12:32 PM 63,488 icutest54.dll
07/24/2015 12:32 PM 195,072 icutu54.dll
07/24/2015 12:32 PM 1,369,088 icuuc54.dll
07/24/2015 12:32 PM 79,826 install.txt
07/24/2015 12:32 PM <DIR> lib
07/24/2015 12:32 PM 1,823,232 libeay32.dll
07/24/2015 12:32 PM 46,592 libenchant.dll
07/24/2015 12:32 PM 160,256 libpq.dll
07/24/2015 12:32 PM 237,056 libsasl.dll
07/24/2015 12:32 PM 201,728 libssh2.dll
07/24/2015 12:32 PM 3,286 license.txt
07/24/2015 12:32 PM 518,643 news.txt
07/24/2015 12:32 PM 43 phar.phar.bat
07/24/2015 12:32 PM 53,242 pharcommand.phar
07/24/2015 12:32 PM 58,368 php-cgi.exe
07/24/2015 12:32 PM 30,720 php-win.exe
07/24/2015 12:32 PM 77,824 php.exe
07/24/2015 12:32 PM 2,523 php.gif
08/29/2015 02:28 PM 74,572 php.ini
07/24/2015 12:32 PM 74,334 php.ini-development
07/24/2015 12:32 PM 74,365 php.ini-production
07/24/2015 12:32 PM 31,744 php5apache2_4.dll
07/24/2015 12:32 PM 845,830 php5embed.lib
07/24/2015 12:32 PM 167,936 php5phpdbg.dll
07/24/2015 12:32 PM 8,269,312 php5ts.dll
07/24/2015 12:32 PM 180,224 phpdbg.exe
07/24/2015 12:32 PM 21,360 readme-redist-bins.txt
07/24/2015 12:32 PM 3,634 snapshot.txt
07/24/2015 12:32 PM 353,280 ssleay32.dll
并且在同一个文件夹中,在 php.ini 文件中,我有以下块 pdo-related,其中有效的块没有用 ;
[=21 删除=]
;分机=php_pdo_firebird.dll
扩展=php_pdo_mysql.dll
;扩展名=php_pdo_oci.dll
扩展=php_pdo_odbc.dll
;扩展名=php_pdo_pgsql.dll
;分机=php_pdo_sqlite.dll
然后我有一个 phpinfo_xyz.php
文件 仅用于测试目的(阅读:完成后将其删除)包含
<?php phpinfo(); ?>
重新启动 apache,从浏览器指向 file 并注意以下类似于以下三个的块。
...
...
在上面 phpinfo()
的第一张 PHP 图片中,在 httpd.conf 中找到正确的路径花费的时间最长。这就是为什么我在这个答案中看到错误的路径尝试。
所以直到Loaded Configuration File
表现得体面才有机会。
祝你好运。这不好玩。一半的问题是有大约 2 或 4 个选项要执行原始下载。可悲的是,我认为我总共花了 2 到 3 个小时。但是我没有你们那么聪明
问题是 extension_dir
指令不能用作相对路径。从 extension_dir="ext"
更改为 extension_dir="c:/phpinstall_path/ext"
解决了问题。
我在 Windows 服务器上安装了 Apache、PHP 5.6 和 MySQL 5.7。
在 php.ini 中,我启用了以下功能:
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_oci8_12c.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
(并重新启动 Apache)
但是当我尝试在我的 php 页面中使用 PDO 时,它仍然会抛出错误:
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver'
我需要做什么才能安装 PDO?
在我的 apache httpd.conf
中我有(请注意我已经删除了 # 因为它至少花了我 1 小时)。所以我留下它是为了告诉我如何不去做。
#PHPIniDir 'c:\apps\php\'
#PHPIniDir "C:\Apache24\~PHP_download\php-5.6.11-Win32-VC11-x64\"
PHPIniDir "C:/Apache24/~PHP_download/php-5.6.11-Win32-VC11-x64"
#LoadModule php5_module "c:/apps/php/php5apache2_2.dll"
LoadModule php5_module "C:/Apache24/~PHP_download/php-5.6.11-Win32-VC11-x64/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
在上面的文件夹中(如下所示)我有这些文件:
Directory of C:\Apache24\~PHP_download\php-5.6.11-Win32-VC11-x64
07/24/2015 12:33 PM <DIR> .
07/24/2015 12:33 PM <DIR> ..
07/24/2015 12:32 PM 69,632 deplister.exe
07/24/2015 12:32 PM <DIR> dev
07/24/2015 12:32 PM <DIR> ext
07/24/2015 12:32 PM <DIR> extras
07/24/2015 12:32 PM 1,290,752 glib-2.dll
07/24/2015 12:32 PM 16,384 gmodule-2.dll
07/24/2015 12:32 PM 25,337,856 icudt54.dll
07/24/2015 12:32 PM 1,907,712 icuin54.dll
07/24/2015 12:32 PM 51,200 icuio54.dll
07/24/2015 12:32 PM 256,000 icule54.dll
07/24/2015 12:32 PM 50,176 iculx54.dll
07/24/2015 12:32 PM 63,488 icutest54.dll
07/24/2015 12:32 PM 195,072 icutu54.dll
07/24/2015 12:32 PM 1,369,088 icuuc54.dll
07/24/2015 12:32 PM 79,826 install.txt
07/24/2015 12:32 PM <DIR> lib
07/24/2015 12:32 PM 1,823,232 libeay32.dll
07/24/2015 12:32 PM 46,592 libenchant.dll
07/24/2015 12:32 PM 160,256 libpq.dll
07/24/2015 12:32 PM 237,056 libsasl.dll
07/24/2015 12:32 PM 201,728 libssh2.dll
07/24/2015 12:32 PM 3,286 license.txt
07/24/2015 12:32 PM 518,643 news.txt
07/24/2015 12:32 PM 43 phar.phar.bat
07/24/2015 12:32 PM 53,242 pharcommand.phar
07/24/2015 12:32 PM 58,368 php-cgi.exe
07/24/2015 12:32 PM 30,720 php-win.exe
07/24/2015 12:32 PM 77,824 php.exe
07/24/2015 12:32 PM 2,523 php.gif
08/29/2015 02:28 PM 74,572 php.ini
07/24/2015 12:32 PM 74,334 php.ini-development
07/24/2015 12:32 PM 74,365 php.ini-production
07/24/2015 12:32 PM 31,744 php5apache2_4.dll
07/24/2015 12:32 PM 845,830 php5embed.lib
07/24/2015 12:32 PM 167,936 php5phpdbg.dll
07/24/2015 12:32 PM 8,269,312 php5ts.dll
07/24/2015 12:32 PM 180,224 phpdbg.exe
07/24/2015 12:32 PM 21,360 readme-redist-bins.txt
07/24/2015 12:32 PM 3,634 snapshot.txt
07/24/2015 12:32 PM 353,280 ssleay32.dll
并且在同一个文件夹中,在 php.ini 文件中,我有以下块 pdo-related,其中有效的块没有用 ;
[=21 删除=]
;分机=php_pdo_firebird.dll 扩展=php_pdo_mysql.dll ;扩展名=php_pdo_oci.dll 扩展=php_pdo_odbc.dll ;扩展名=php_pdo_pgsql.dll ;分机=php_pdo_sqlite.dll
然后我有一个 phpinfo_xyz.php
文件 仅用于测试目的(阅读:完成后将其删除)包含
<?php phpinfo(); ?>
重新启动 apache,从浏览器指向 file 并注意以下类似于以下三个的块。
...
...
在上面 phpinfo()
的第一张 PHP 图片中,在 httpd.conf 中找到正确的路径花费的时间最长。这就是为什么我在这个答案中看到错误的路径尝试。
所以直到Loaded Configuration File
表现得体面才有机会。
祝你好运。这不好玩。一半的问题是有大约 2 或 4 个选项要执行原始下载。可悲的是,我认为我总共花了 2 到 3 个小时。但是我没有你们那么聪明
问题是 extension_dir
指令不能用作相对路径。从 extension_dir="ext"
更改为 extension_dir="c:/phpinstall_path/ext"
解决了问题。