Errore di installazione di Linux Drush: costante di classe non definita 'MYSQL_ATTR_SSL_CA' in phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php, riga 56


11

Ho provato a installare Drush con entrambi i metodi elencati nella documentazione di drush.org. Penso che potrebbero essere in conflitto tra loro, se possibile.

Quando eseguo composer global require drush/drushtutti i componenti sembrano installarsi correttamente. Tuttavia quando cambio a un sito Drupal (usando XAMPP, / opt / lampp / htdocs / sitefolder) ed eseguo drush statusottengo il seguente errore:

Errore irreversibile PHP: costante di classe non definita 'MYSQL_ATTR_SSL_CA' in phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php sulla riga 56 Comando Drush terminato in modo anomalo a causa di un errore irreversibile.
[errore] Errore: costante di classe non definita 'MYSQL_ATTR_SSL_CA' in phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php, riga 56

Ho la seguente riga nel mio ~ / .bashrc:

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

Sfortunatamente non so come risolvere i problemi da qui, poiché non sembra esserci un modo semplice per disinstallare Drush tramite il metodo principale ( http://docs.drush.org/en/master/install/ ), che non sembra funzionare per me. composer global remove drush/drushsembra funzionare correttamente.

Grazie in anticipo.


È divertente, ieri ho pubblicato un thread simile e l'ho eliminato dopo che uno degli utenti mi ha detto che è un bug.
JohnDoea,

L'ho segnalato come bug in Drush github. Stai usando WSL? Mi è successo in WSL ma non in Ubuntu.
JohnDoea,

Risposte:


20

Nel mio caso, non tutti i pacchetti PHP sono riusciti a eseguire l'aggiornamento di Ubuntu alla versione 16.04 (che ora esegue PHP 7 per impostazione predefinita). Avevo bisogno di aggiungere quello mancante, quindi Drush ha ricominciato a funzionare:

sudo apt install php-mysql

O per utenti php5

sudo apt install php5-mysql 

su distribuzioni Ubuntu / Debian molto recenti.

Per PHP 7.1:

sudo apt install php7.1-mysql

Per PHP 7.2:

sudo apt install php7.2-mysql

Puoi cercare la tua versione usando questo:

apt-cache search php-mysql

1

Ho fatto un po 'di buco nel coniglio su questo, ma credo che il problema fosse legato al drush connesso alla versione corretta di mysql. Ha bisogno della versione XAMPP, non della mia versione locale di Linux. L'aggiunta di queste due righe a ~ / .bashrc ha aiutato:

export DRUSH_PHP=/opt/lampp/bin/php

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

0

ho avuto lo stesso problema su Fedora 25. Ho fatto l'upgrade a php 5.6.32 da 5,60,30 e ho trascurato uno switch nella compilazione di 32.

facendo php -m ha mostrato che 5.6.32 ha trascurato di avere il modulo "pdo_mysql". Quindi sono tornato alla 5.6.30 che ha compilato quel modulo, fino a quando non riesco a eseguire il debug della compilazione 5.6.32.

dopo questa modifica Drush 8 ha funzionato bene.


0

Assicurati di avere le estensioni più aggiornate per la tua versione di PHP. Puoi trovare un elenco degli elementi di base che dovresti installare nei commenti sul sito della documentazione di PHP sotto l'aggiornamento a 7.1.

Raccomandano di correre: 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

In caso contrario, incontrerai almeno problemi con mbstring poiché questa è una dipendenza fondamentale. Questa è anche una potenziale soluzione per l'errore fin troppo comune "easyrdf / easyrdf 0.9.1 richiede ext-mbstring * -> l'estensione di PHP richiesta mbstring non è presente nel sistema." quando corriamo composer installper la prima volta. Per versioni diverse, basta spegnerlo nel modo appropriato. Molti di loro sono probabilmente uguali.

Spero che aiuti qualcuno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.