PHP-Warnung: PHP-Start: Dynamische Bibliothek „pdo_mysql.so“ kann nicht geladen werden

Lesezeit: 2 Minuten

Benutzer-Avatar
verblüfft

Ich habe den Befehl ausgeführt:

php -v

Ausgabe:

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

Ich habe diesen Befehl ausgeführt:

php -m

Ausgabe:

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

Die Datei php.ini enthält diese Zeile:

extension=pdo_mysql

Habe diesen Befehl ausgeführt:

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

Nichts wird installiert, weil es bereits installiert ist.

Habe diesen Befehl ausgeführt:

php -i

Ausgabe zeigt:

PDO

PDO support => enabled
PDO drivers =>

Nicht sicher, warum das so ist oder was zu tun ist. Irgendwelche Vorschläge?

Ich habe das Problem so gelöst:

sudo apt-get --purge remove php-common

sudo apt-get install php-common php-mysql php-cli

Jetzt gibt es keinen Fehler und php -m zeigt, dass es alles hat:

  • Das hat geholfen. In meinem Fall habe ich gerade php-* durch php7.4-* ersetzt.

    – jiv-e

    4. November 2020 um 10:38 Uhr

  • Ich habe gerade sudo apt-get install php7.4-common php7.4-mysql php7.4-cli ersetzt

    – Suliman Farzat

    31. März 2021 um 22:57 Uhr


Benutzer-Avatar
Thyago Ghelere

Sie verwenden wahrscheinlich php7.2, also sollten Sie die php.ini Datei (/etc/php/7.2/cli/php.ini).

Und wahrscheinlich extension=pdo_mysql online 906 ist unkommentiert. Kommentieren Sie diese Zeile durch Hinzufügen ; am Zeilenanfang.

Nach dem Speichern und Schließen der php.ini sollte der Fehler verschwinden, aber um sicherzustellen, dass die Änderungen wirksam werden, starten Sie den php-Dienst neu:

$ sudo systemctl restart php7.2-fpm

Benutzer-Avatar
malkew

Stellen Sie sicher, dass der Speicherort der Datei pdo_mysql.so mit dem von PHP extension_dir übereinstimmt:

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

Indem Sie dies tun und den absoluten Pfad in der php.ini wie folgt hinzufügen:

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

das wird funktionieren.

  • Für den ersten Befehl bekomme ich: extension_dir => /usr/lib/php/20170718 => /usr/lib/php/20170718 und für den zweiten Befehl bekomme ich /usr/lib/php/20170718/pdo_mysql.so. Ich nehme an, das bedeutet, dass es an der richtigen Stelle ist?

    – fassungslos

    9. Juni 2020 um 3:02 Uhr


  • Ich habe das Problem nach diesem Ratschlag gelöst askubuntu.com/a/187278/885417

    – fassungslos

    9. Juni 2020 um 4:02 Uhr

1018460cookie-checkPHP-Warnung: PHP-Start: Dynamische Bibliothek „pdo_mysql.so“ kann nicht geladen werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy