PHP с pdo-mysql в Ubuntu 16.04

11

Я пытался установить php (7.2) в Ubuntu (16.04) с включенным PDO. Мне не нужен php как модуль apache, потому что я хочу использовать встроенный сервер PHP (в режиме cli, например php -S localhost:80).

Итак, вот что я делаю:

sudo apt-get install php

sudo apt-get install php-mysql

sudo cp /usr/lib/php/7.2/php.ini-production.cli /etc/php/7.2/cli/php.ini

Теперь в php.ini без комментариев:

extension=pdo_mysql

И все же, когда я бегу, php -vя получаю ошибку:

PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20170718/pdo_mysql (/usr/lib/php/20170718/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_mysql.so (/usr/lib/php/20170718/pdo_mysql.so: undefined symbol: pdo_parse_params)) in Unknown on line 0

php -m вывод:

[PHP Modules]
Core
date
filter
hash
libxml
openssl
pcntl
pcre
Reflection
session
sodium
SPL
standard
zlib
[Zend Modules]
Дэн Миллер
источник
попробуйте это stackoverflow.com/a/42929132/299774
Гжегож
sudo phpenmod pdo_mysqlдает мне/usr/sbin/phpenmod: 31: .: Can't open /usr/lib/php/php-helper
Дэн Миллер
Ответ выше говорит о том, что в Ubuntu 16.04 вам не нужно включать мод, попробуйте просто установить + перезапустить.
Гжегож
о, подождите - вы делаете это в CLI, в этом случае перезапуск apache не требуется.
Гжегож
Да, apache2 неактивен
Дэн Миллер

Ответы:

32

Я решил проблему следующим образом:

sudo apt-get --purge remove php-common

sudo apt-get install php-common php-mysql php-cli

Теперь ошибки нет и php -mпоказывает, что в ней есть все:

[PHP Modules]
calendar
Core
ctype
date
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib

[Zend Modules]
Zend OPcache

До сих пор не знаю, что вызвало проблему в первую очередь

Дэн Миллер
источник
1
У меня была та же проблема с Debian и PHP 7.2 (5.6, 7.0, 7.1 и 7.3 работали нормально). Очистка и установка заново решили и меня тоже
Pierre
решил мою xamppпроблему в Ubuntu 16.04. Спасибо
Спасло меня от странной установки PHP
Брайан Петерсон
Yay - работал и для меня
Джейсон Морган
Спасибо! Это решило мою проблему. (Ubuntu 19.04 | Php 7.2)
PlayHardGoPro
-1

Я создал ту же проблему для себя на своем рабочем ящике, вручную раскомментировав несколько

;extension=<module>

линии в php.ini. Который был на самом деле я второй угадать apt-get installпроцесс. Я думаю, что современный php7 + обрабатывает эти расширения, используя conf.dопределенные файлы, такие как:

  • /etc/php/7.3/cli/conf.d/10-pdo.ini
  • /etc/php/7.3/cli/conf.d/20-pdo_mysql.ini

Тогда ответом для меня было повторное комментирование этих ;extensionстрок в php.iniфайле cli .

Drupal Development Коста-Рика
источник