Я пытаюсь установить веб-сервер с 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, и поэтому имена путей и сервисы могут отличаться в зависимости от вашего распределения.
phpize
./configure
делать
make install (как root)
Это сработало для меня