2015-12-10 1 views
0

Я установил Apache, PHP 5.6 и MySQL 5.7 на сервер Windows.Как установить драйверы PDO для PHP в Windows?

В 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)

Но когда я пытаюсь использовать PDO в моей странице PHP, он по-прежнему бросает ошибку:

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

Что мне нужно сделать, чтобы установить PDO?

+0

_ «попытаться использовать PDO» _ Как? – AbraCadaver

+0

@AbraCadaver На странице php. Я просто называю 'new PDO (...)' –

+0

. Некоторые расширения требуют предустановок предыдущих предыдущих расширений и некоторые изменения, внесенные в конфигурацию PHP, проверяют PHP-сайт и MySQL на требования и настройки для расширения PDO и MySQL расширение – umlcat

ответ

2

В моем 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-родственные , с тем, в силе не remmed с ;

с; удлинительным = 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(); ?> 

Restart apache, укажите на файл из браузера и обратите внимание на следующие блоки, похожие на следующие три.

enter image description here

...

enter image description here

...

enter image description here

В первом РНР картинке выше от phpinfo(), это было получение путь прямо в httpd.conf, который занял самое длинное место. Вот почему я оставил неправильные пути, увиденные в этом ответе.

Так получилось, что только Loaded Configuration File оказался приличным, чтобы у него был шанс.

Удачи. Это было не весело. Половина проблемы заключалась в том, что было 2 или 4 варианта, из которых загружалась оригинальная загрузка. К сожалению, мне кажется, мне потребовалось 2 или 3 часа. Но я не такой умный, как остальные.

+0

У меня все те же настройки (но разные пути), и он все еще дает ошибку –

+0

ну, я не там: P ... и есть только некоторые попытки отладки, которые хорошо подходят для небольших блоков комментариев. – Drew

+0

Может ли быть, что я использую 32-битный Apache/PHP на 64-битной машине? –

0

Проблема была в директиве extension_dir, которая не работала как относительный путь.Исправлена ​​ошибка с extension_dir="ext" - extension_dir="c:/phpinstall_path/ext".

+0

. Желательно показать людям, которые помогут вам ответить на ваши общие приличия голосуя за свои ответы. В отличие от создания тривиального и не признающего его. Голосование усиливает стремление людей, которые прилагают усилия для решения ваших проблем ... с желанием продолжать делать это для других. – Drew

+0

@Drew Я рад дать вам преимущество для ваших усилий (это было много, поэтому я и сделал), но ваш ответ не помог мне открыть эту проблему. Как я уже упоминал, у вас были такие же настройки, как у меня, и это сработало для вас, но не на моем сервере. –

+0

Потому что, глядя на мой ответ, вы узнали о том, как должно идти косая черта? Во всяком случае, у нас обоих есть PDO, удачи: P – Drew

 Смежные вопросы

  • Нет связанных вопросов^_^