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 .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.