簡體   English   中英

PHP 警告:PHP 啟動:無法加載動態庫“pdo_mysql.so”

[英]PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql.so'

我運行了命令:

php -v

Output:

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 -m

Output:

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

php.ini 文件包含以下行:

extension=pdo_mysql

運行此命令:

sudo apt-get install -y php-pdo-mysql

什么都沒有安裝,因為它已經安裝了。

運行此命令:

php -i

Output 顯示:

PDO

PDO support => enabled
PDO drivers =>

不知道為什么會這樣或該怎么辦。 有什么建議么?

我這樣解決了這個問題:

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

確保 pdo_mysql.so 文件的位置與 PHP extension_dir 的位置相同:

# php -i|grep extension_dir
# find / -name pdo_mysql.so

通過這樣做,並在 php.ini 上添加絕對路徑,如下所示:

extension=/usr/lib/php/20190902/pdo_mysql

這會奏效。

我有 7.4 php 版本。 我通過刪除取消注釋以下行來解決這個問題; 在 php.ini 文件中。

extension_dir = "ext"

請注意,最初,您不會有 php.ini 文件,因此首先您應該復制並粘貼 php.ini-development 文件並將其重命名為 php.ini。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM