fla*_*ted 13 php mysql pdo php-extension ubuntu-18.04
我运行了命令:
php -v
Run Code Online (Sandbox Code Playgroud)
输出:
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql.so' (tried: /usr/lib/php/20170718/pdo_mysql.so (/usr/lib/php/20170718/pdo_mysql.so: undefined symbol: mysqlnd_allocator), /usr/lib/php/20170718/pdo_mysql.so.so (/usr/lib/php/20170718/pdo_mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
我运行了这个命令:
php -m
Run Code Online (Sandbox Code Playgroud)
输出:
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql.so' (tried: /usr/lib/php/20170718/pdo_mysql.so (/usr/lib/php/20170718/pdo_mysql.so: undefined symbol: mysqlnd_allocator), /usr/lib/php/20170718/pdo_mysql.so.so (/usr/lib/php/20170718/pdo_mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
openssl
pcntl
pcre
PDO
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib
[Zend Modules]
Zend OPcache
Run Code Online (Sandbox Code Playgroud)
php.ini 文件包含这一行:
extension=pdo_mysql
Run Code Online (Sandbox Code Playgroud)
运行这个命令:
sudo apt-get install -y php-pdo-mysql
Run Code Online (Sandbox Code Playgroud)
什么都没有安装,因为它已经安装了。
运行这个命令:
php -i
Run Code Online (Sandbox Code Playgroud)
输出显示:
PDO
PDO support => enabled
PDO drivers =>
Run Code Online (Sandbox Code Playgroud)
不知道为什么会这样或该怎么做。有什么建议?
Alo*_*Dev 33
我是这样解决问题的:
sudo apt-get --purge remove php-common
sudo apt-get install php-common php-mysql php-cli
现在没有错误并php -m显示它拥有一切:
您可能正在使用 php7.2,因此您应该编辑php.ini文件 ( /etc/php/7.2/cli/php.ini )。
可能第906行的extension=pdo_mysql没有注释。通过添加注释此行;在行的开头。
保存并关闭 php.ini 后,错误应该会消失,但是,为确保更改生效,请重新启动 php 服务:
$ sudo systemctl restart php7.2-fpm
小智 6
确保 pdo_mysql.so 文件的位置与 PHP extension_dir 相同:
# php -i|grep extension_dir
Run Code Online (Sandbox Code Playgroud)
# find / -name pdo_mysql.so
Run Code Online (Sandbox Code Playgroud)
通过这样做,并在 php.ini 上添加绝对路径,如下所示:
extension=/usr/lib/php/20190902/pdo_mysql
Run Code Online (Sandbox Code Playgroud)
这会起作用。
| 归档时间: |
|
| 查看次数: |
32414 次 |
| 最近记录: |