Linux-Drush-Installationsfehler: Undefinierte Klassenkonstante 'MYSQL_ATTR_SSL_CA' in phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php, Zeile 56


11

Ich habe versucht, Drush mit beiden in der drush.org-Dokumentation aufgeführten Methoden zu installieren. Ich denke, sie könnten miteinander in Konflikt stehen, wenn das möglich ist.

Wenn ich laufe, composer global require drush/drushscheinen alle Komponenten richtig zu installieren. Wenn ich jedoch zu einer Drupal-Site wechsle (unter Verwendung von XAMPP, / opt / lampp / htdocs / sitefolder) und sie ausführe drush status, wird die folgende Fehlermeldung angezeigt :

Schwerwiegender PHP-Fehler: Nicht definierte Klassenkonstante 'MYSQL_ATTR_SSL_CA' in phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php in Zeile 56 Der Drush-Befehl wurde aufgrund eines nicht behebbaren Fehlers abnormal beendet.
[error] Fehler: Undefinierte Klassenkonstante 'MYSQL_ATTR_SSL_CA' in phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php, Zeile 56

Ich habe die folgende Zeile in meinem ~ / .bashrc:

export PATH="$HOME/.composer/vendor/bin:$PATH"

Leider kann ich von hier aus keine Fehlerbehebung durchführen, da es anscheinend keinen einfachen Weg gibt, Drush über die Hauptmethode ( http://docs.drush.org/en/master/install/ ) zu deinstallieren schien nicht für mich zu arbeiten. composer global remove drush/drushscheint erfolgreich zu laufen.

Danke im Voraus.


Es ist lustig, gestern habe ich einen ähnlichen Thread veröffentlicht und ihn gelöscht, nachdem mir einer der Benutzer einen Fehler gemeldet hatte.
JohnDoea

Ich habe es als Fehler in Drush Github gemeldet. Verwenden Sie WSL? Ist mir in der WSL passiert, aber nicht in Ubuntu.
JohnDoea

Antworten:


20

In meinem Fall haben es nicht alle PHP-Pakete durch das Ubuntu-Upgrade auf 16.04 geschafft (das jetzt standardmäßig PHP 7 ausführt). Ich musste das fehlende hinzufügen und dann fing Drush wieder an zu arbeiten:

sudo apt install php-mysql

Oder für PHP5-Nutzer

sudo apt install php5-mysql 

auf den neuesten Ubuntu / Debian-Distributionen.

Für PHP 7.1:

sudo apt install php7.1-mysql

Für PHP 7.2:

sudo apt install php7.2-mysql

So können Sie nach Ihrer Version suchen:

apt-cache search php-mysql

1

Ich bin in diesem Fall ein bisschen in ein Kaninchenbau geraten, aber ich glaube, das Problem hing mit der Drush-Verbindung mit der richtigen Version von MySQL zusammen. Es benötigt die XAMPP-Version, nicht meine lokale Linux-Version. Das Hinzufügen dieser beiden Zeilen zu ~ / .bashrc hat geholfen:

export DRUSH_PHP=/opt/lampp/bin/php

export PATH=$PATH:/opt/lampp/bin

0

hatte das gleiche problem auf fedora 25. ich hatte von 5.60.30 auf php 5.6.32 upgegradet und einen switch in der compile von 32 vernachlässigt.

Das Ausführen von php -m hat gezeigt, dass 5.6.32 das Modul "pdo_mysql" vernachlässigt hat. Also kehrte ich zu 5.6.30 zurück, in dem dieses Modul kompiliert ist, bis ich die 5.6.32-Kompilierung debuggen kann.

Nach dieser Änderung funktionierte Drush 8 einwandfrei.


0

Stellen Sie sicher, dass Sie die aktuellsten Erweiterungen für Ihre PHP-Version haben. Eine Liste der grundlegenden Elemente, die Sie installieren sollten, finden Sie in den Kommentaren auf der PHP-Dokumentationssite unter dem Upgrade auf 7.1.

Sie empfehlen das Laufen: sudo apt-get install php7.1 php7.1-cli php7.1-common libapache2-mod-php7.1 php7.1-mysql php7.1-fpm php7.1-curl php7.1-gd php7.1-bz2 php7.1-mcrypt php7.1-json php7.1-tidy php7.1-mbstring php-redis php-memcached

Wenn Sie dies nicht tun, werden Sie zumindest auf Probleme mit mbstring stoßen, da dies eine Kernabhängigkeit ist. Dies ist auch eine mögliche Lösung für den allzu häufigen Fehler "easyrdf / easyrdf 0.9.1 erfordert ext-mbstring * -> die angeforderte PHP-Erweiterung mbstring fehlt in Ihrem System." wenn wir composer installzum ersten Mal laufen . Für verschiedene Versionen schalten Sie es einfach entsprechend aus. Die meisten von ihnen sind wahrscheinlich gleich.

Hoffe das hilft jemandem.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.