PHP 7 RC3: Как установить отсутствующий MySQL PDO

Я пытаюсь установить веб-сервер с PHP 7 RC3 + Nginx на Ubuntu 14.04 (для целей тестирования).

Я установил Ubuntu в Vagrant, используя ubuntu/trusty64 и PHP 7 RC 3 от Ondřej Surý ( https://launchpad.net/~ondrej/+archive/ubuntu/php-7.0 ).

Я не могу найти способ установить MySQL PDO (PHP видит класс PDO но не имеет ничего PDO::MYSQL_ATTR_DIRECT_QUERY с MySQL, например PDO::MYSQL_ATTR_DIRECT_QUERY и т. Д.)

Похоже, нет lib php7.0-mysql (по аналогии со стандартными php5-mysqlnd и php7.0-fpm php5-mysqlnd и т. Д. От Ondřej)

Раздел PDO в phpinfo() :

 PDO support enabled PDO drivers no value 

Как я могу его получить?

Для thoses под управлением Linux с apache2 вам нужно установить php-mysql

 apt-get install php-mysql 

или если вы используете ubuntu 16.04 или выше, просто запустить следующую команду будет достаточно, нет необходимости редактировать файл php.ini

 apt-get install php7.0-mysql 

Если вы используете ubuntu 15.10 или ниже:

Отредактируйте файл php.ini и выполните поиск pdo_mysql, вы можете найти что-то вроде этого

 ;extension=php_pdo_mysql.so 

Измените это на

 extension=pdo_mysql.so 

Сохраните файл и перезапустите apache

 service apache2 restart 

Убедитесь, что он доступен в phpinfo ()

Сначала установите php-mysql

 sudo apt-get install php7.0-mysql 

затем включите модуль

 sudo phpenmod pdo_mysql 

и перезапустите apache

 sudo service apache2 restart 

Поскольку eggyal не предоставил свой комментарий в качестве ответа после того, как он дал правильный совет в комментарии – я размещаю его здесь: В моем случае мне пришлось установить модуль php-mysql . Подробности см. В комментариях к вопросу.

Во-первых, проверьте, поддерживает ли ваш php.ini расширение «php_pdo_mysql» и «php_mysqli», а путь «extension_dir» правильный. Если вам нужна одна из вышеперечисленных настроек, вы должны перезапустить php-fpm, чтобы применить изменения.

В моем случае (где я использую ОС Windows в компании, я действительно предпочитаю OSX или Linux), я решил проблему размещения этих значений в php.ini:

 ; ... extension_dir = "ext" ; ... extension=php_mysqli.dll extension=php_pdo_mysql.dll ; ... 

Надеюсь, это поможет.

Если вы находитесь на окнах, а ваша папка php находится не в вашем PATH, вы установили абсолютный каталог в своем php.ini

например:

 extension_dir = "C:/php7/ext" 

и раскомментирование

 extension=php_mysqli.dll extension=php_pdo_mysql.dll 

Перезагрузите apache2.4, и он должен работать.

Я надеюсь, что это помогает.

У меня была, в значительной степени, та же проблема. Я смог увидеть, что PDO включен, но у меня не было доступных драйверов (с использованием PHP 7-RC4). Мне удалось решить проблему, добавив расширение php_pdo_mysql к тем, которые были включены.

Надеюсь это поможет!

Имел ту же самую проблему, разрешенную фактически включением расширения в php.ini с правильным именем файла. Он был указан как php_pdo_mysql.so, но имя модуля в / lib / php / modules было вызвано просто pdo_mysql.so

Поэтому просто удалите префикс «php_» из файла php.ini, а затем перезапустите службу httpd, и он работает как шарм.

Обратите внимание, что я использую Arch, и поэтому имена путей и сервисы могут отличаться в зависимости от вашего распределения.

  1. загрузите исходный код php 7 и извлеките его.
  2. откройте терминал
  3. переплыть каталог ext / mysqli
  4. использовать команды:

    phpize

    ./configure

    делать

    make install (как root)

  5. enable extension = mysqli.so в файле php.ini
  6. сделанный!

Это сработало для меня