如何在 Windows 上为 PHP 安装 PDO 驱动程序?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/34212578/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 23:50:57  来源:igfitidea点击:

How do I install PDO drivers for PHP on Windows?

phpmysqlwindowspdowamp

提问by Don Rhummy

I installed Apache, PHP 5.6 and MySQL 5.7 on a Windows server.

我在 Windows 服务器上安装了 Apache、PHP 5.6 和 MySQL 5.7。

In php.ini, I enabled the following:

在 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

(And restarted Apache)

(并重新启动Apache)

But when I try to use PDO in my php page, it still throws the error:

但是当我尝试在我的 php 页面中使用 PDO 时,它仍然抛出错误:

Fatal error: Uncaught exception 'PDOException' with message 'could not find driver'

What do I have to do to get PDO installed?

我需要做什么才能安装 PDO?

回答by Don Rhummy

The problem was the extension_dirdirective did not work as a relative path. Changing from extension_dir="ext"to extension_dir="c:/phpinstall_path/ext"fixed the problem.

问题是该extension_dir指令不能用作相对路径。更改extension_dir="ext"extension_dir="c:/phpinstall_path/ext"解决了问题。

回答by Drew

In my apache httpd.confI have (note I have # as remmed out because it took me 1 hour at least). So I left it to show me how notto do it.

在我的 apache 中httpd.conf我有(注意我有 # as remmed,因为它至少花了我 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

In the above folder (and seen below) I have these files:

在上面的文件夹中(如下所示),我有这些文件:

 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

And in that same folder, in the php.ini file I have the following block that are pdo-related, with the ones in force not remmed out with a ;

在同一个文件夹中,在 php.ini 文件中,我有以下与 pdo 相关的块,其中有效的块没有用 ;

;extension=php_pdo_firebird.dll extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll extension=php_pdo_odbc.dll ;extension=php_pdo_pgsql.dll ;extension=php_pdo_sqlite.dll

;extension=php_pdo_firebird.dll extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll extension=php_pdo_odbc.dll ;extension=php_pdo_pgsql.dll ;extension=php_pdo_sqlite.dll

then I have a phpinfo_xyz.phpfilefor testing purposes only (read: delete it when you are done) that contains

那么我有一个仅用于测试目的的phpinfo_xyz.php文件(阅读:完成后删除它),其中包含

<?php phpinfo(); ?>

Restart apache, point to that filefrom a browser and notice the following blocks similar to the following three.

重新启动 apache,从浏览器指向该文件并注意以下与以下三个类似的块。

enter image description here

在此处输入图片说明

...

...

enter image description here

在此处输入图片说明

...

...

enter image description here

在此处输入图片说明

In the first PHP picture above from phpinfo(), it was the getting the path right in httpd.conf that took the longest. That is why I left in the wrong path attempts seen in this Answer.

在上面的第一张 PHP 图片中,phpinfo()在 httpd.conf 中获取正确路径花费的时间最长。这就是为什么我在这个答案中看到的错误路径尝试。

So it wasn't until Loaded Configuration Fileshowed up decent that it had a chance.

所以直到Loaded Configuration File出现体面的时候,它才有机会。

Good luck. It was not fun. Half the problem was there were like 2 or 4 options of which original download to perform. Sadly I think it took me 2 or 3 hours all together. But I am not as smart as the rest of you.

祝你好运。这不好玩。一半的问题是有 2 或 4 个选项可以执行原始下载。可悲的是,我认为我总共花了 2 或 3 个小时。但我没有你们其他人那么聪明。