Я пытался установить 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
Ответы:
Я решил проблему следующим образом:
sudo apt-get --purge remove php-common
sudo apt-get install php-common php-mysql php-cli
Теперь ошибки нет и
php -m
показывает, что в ней есть все:До сих пор не знаю, что вызвало проблему в первую очередь
источник
xampp
проблему в Ubuntu 16.04. СпасибоЯ создал ту же проблему для себя на своем рабочем ящике, вручную раскомментировав несколько
линии в
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 .источник