Ubuntu 16.04中带有pdo-mysql的PHP


11

我一直在尝试在启用PDO的Ubuntu(16.04)中安装php(7.2)。我不需要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
Dan Miller

上面的回答说,在ubuntu 16.04中,您不需要启用mod,只需尝试安装并重新启动即可。
Grzegorz

哦,等等-您在CLI中完成操作,在这种情况下,无需重新启动apache。
Grzegorz

是的,apache2处于非活动状态
Dan Miller,

Answers:


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中解决了我的问题。谢谢
AN

从怪异的PHP安装中救了我
Brian Peterson

耶-为我工作太
贾森·摩根

谢谢!这解决了我的问题。(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

对我来说,答案是重新注释;extensioncli php.ini文件中的这些行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.