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]


sudo phpenmod pdo_mysqlдарує мені/usr/sbin/phpenmod: 31: .: Can't open /usr/lib/php/php-helper
Ден Міллер

Відповідь вище говорить про те, що в ubuntu 16.04 вам не потрібно вмикати мод, спробуйте просто встановити + перезапустити.
Гжегож

о, зачекайте - ви це робите в CLI, в цьому випадку перезапуск апачі не потрібен.
Гжегож

Так, 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 працювали нормально) Чистка та інсталяція заново вирішили це і для мене
П’єр

вирішив мою xamppпроблему в ubuntu 16.04. Спасибі

Врятувало мене від дивної установки PHP
Брайан Петерсон

Так - працював і для мене
Джейсон Морган

Дякую! Це вирішило мою проблему. (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файлі кліпу .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.