Drush en ubuntu 14.04

Farà ja alguns mesos que vaig anotar les instruccions aquí per actualitzar o instal·lar drush en un macOSX.  Aquesta setmana m’he trobat amb la necessitat de fer el mateix però en un servidor ubuntu 14.04 en producció.  No tenia clar el procediment i per evitar sustos he preferit instal·lar una màquina test abans de tenir problemes… i sorpresa la meva és super fàcil i super estable. Només cal:

sudo apt-get install drush

I amb això ja el tens instal·lat i funcionant.   No ha calgut ni fer el chmod u+x /usr/bin/drush ni crear els enllaços o accesos directes com en anteriors ocasions. Fantàstic.

Recuperar contrasenya en drupal

Pot resultar més habitual del que voldríem oblidar la nostre clau d’accès d’administrador de drupal 7. Amb la versió 6 m’havia trobat algunes vegades i el mètdo que feia servir era accedir a la base de dades i canviar -la des de la taula d’usuaris. Amb la versió 7 això hi ha diferents maneres de recuperar-la ràpidament:

  • Generant un enllaç per que et demani una nova clau d’accés:
    Accedint mitjançant ssh al nostre servidor executarem: drush uli    i ens donarà una URL que podrem enviar per correu electrònic o accedir i ens demanarà la nova clau d’accès.
  • Forçant la contrasenya que nosaltres volguem a l’usuari que estigui afectat per l’oblit:
    Accedim de nou mitjançant ssh al nostre servidor i executarem: drush upwd –password=”novaclau” admin

Per últim, si hem insistit moltes vegades podria donar-se també el cas que tinguem el compte bloquejat, la manera més ràpida de desbloquejar l’usuari sense haver d’esperar-nos una estona és eliminar el contingut de la taula flood:

  • via mysql: delete from flood;
  • via ssh: drush php-eval ‘db_query(“DELETE FROM flood”);’

 

 

 

 

Actualitzant drush a 5.3

Feia temps que tenia pendent actualitzar drush, seguia amb la versió 4 que vaig instal·lar l’any 2011 en local (http://can.nandes.cat/instal·lar-drush-a-un-mac), i m’estava donants uns problemes així que m’he decidit i he actualitzat a la versió 5.3.

Seguint la mateixa guia que l’any passat (http://drupal.org/node/508450), per mi el major problema ha sigut fer un “unlink” o trencar l’enllaç virtual per poder eliminar la carpeta drush i tornar-la a crear.

Un cop superada aquesta fase, m’he trobat amb un error al terminal alhora de poder fer updates de tot un site:

Wilhelm-2:carpeta nasinandes$ drush up –uri http://carpeta.local
PDO::__construct(): [2002] No such file or directory (trying to [warning]
connect via unix:///var/mysql/mysql.sock) environment.inc:517

Total, que no pot arribar a fer l’enllaç amb la base de dades.  Cercant com sempre trobes amb una solució (http://drupal.stackexchange.com/questions/32111/get-an-error-if-i-run-the-pml-drush-command-line) però m’ha semblat una mica lleig deixar una carpeta /var/mysql penjada.  Coneixent-me segur que demà ja no recordo per què està això.  Així que he seguit buscant i aquí: http://drupal.org/node/726970#comment-5037210 he trobat una solució que crec que és més neta.

sudo ln -f /Applications/MAMP/bin/php/php5.2.17/bin/php /usr/bin/php

En el meu cas he fet

sudo ln -f /Applications/MAMP/bin/php/php5.3.6/bin/php /usr/bin/php ja que estic ja treballant amb php5.3 en el servidor en producció  i  ja he pogut actualitzar sense problemes els meus sites locals.

 

 

 

Instal·lar drush a un mac

No diré res que no es trobi en el fil http://drupal.org/node/508450 però així ho tinc referenciat per aquí i no ho perdo.

Per instal·lar drush a un mac os 10.6.7:

descarregar drush (en aquest moment 4.4 que serveix per drupal 6 i 7)

$ tar -zxf drush.tar.gz  (descomprimim)
$ sudo mv drush /usr/lib/   (el posem a la carpeta lib )
$ chmod u+x /usr/lib/drush   (li donem permissos d’execució)
$ sudo ln -s /usr/lib/drush/drush /usr/bin/drush  (crem un enllaç / accès directe.)

Amb això podrem tenir un drush local i executar determinades accions des de el nostre mac sense necessitar shell al servidor web en producció.

per últim:  drush status

i ens mostrarà si el procòes ha acabat correctament la versió de drush que tenim:

$ drush status
PHP configuration     :
Drush version         :  4.4
Drush configuration   :
Drush alias files     :

Error 995 amb drush

Després de fer unes quantes proves, veig que el drush funciona correctament (descarrega i activa mòduls que és la seva funció principal), però froa d’aquí donna unerror “misteriòs:
Update status information on all installed and enabled Drupal projects:
<br />
<b>Fatal error</b>:  Class ‘Console_Table’ not found in <b>/home/provesla/drush/drush/includes/drush.inc</b> on line <b>955</b><br />
Drush command could not be completed.

Update status information on all installed and enabled Drupal projects:<br /><b>Fatal error</b>:  Class ‘Console_Table’ not found in <b>/home/provesla/drush/drush/includes/drush.inc</b> on line <b>955</b><br />Drush command could not be completed.

Investigant una mica he solventat el problema de la següent manera:

  • descarregar i actualitzar el drush. Havia instal·lat una versió 2, i ja van per la 3.3…
  • wget http://ftp.drupal.org/files/projects/drush-All-Versions-HEAD.tar.gz
  • tar -xvzf drush-All-Versions-HEAD.tar.gz
  • El problema potser que encara continui, llavors cal validar que:

Amb això podem fer un drush status  i veure la informació del nostre lloc web.

Instal·lant drush a un servidor remot (how to install drush)

Drush és una utilitat per gestionar i actualitzar paquets de Drupal mitjançant línies de comandes.  És super pràctic donat que no has de descarregar/descomprimir un mòdul per tonrar a carregar-lo al servidor web que tinguis.

Faig el seguit de passos que he seguit per configurar-lo al servidor que tinc al hosting ja que no he trobat cap manual al complert.

  • accedim via ssh a la nostre màquina
  • wget http://ftp.drupal.org/files/projects/drush-All-versions-3.0.tar.gz   <— amb això descarregarem al servidor la versió de drush que volguem
  • tar zxvf drush-All-versions-3.0.tar.gz   <—- amb això descomprimim el fitxer que hem descarregat.
  • rm drush-All-versions-3.0.tar.gz    <—- amb això esborrem el fitxer que hem descarregat anteriorment.

No cal que ubiquem el drush en un lloc accessible a tothom (o sigui pot estar fora de “www”).

Fet això, caldrà que configurem el nostre sistema per tal que interpreti la sentència “drush”.  Aquí és on més complicació podem tenir.   Si teni acces com administrador a la màquina podem crear un adreçament i fora problemes:

sudo ln -s /usr/local/share/drush/drush /usr/local/bin/drush

Però donat que és una màquina “compartida” aquest pas no ens serveix.  Haurem de modificar el nostre .profile del servidor per tal que tinguem una variable d’entorn que apunti cap al nostre drush.

Farem el següent:

  • which php  <—- per saber el path a on tenim el php del nostre servidor (en el meu cas /usr/bin/php)
  • nano ~/.bash_profile    <— per editar  el nostre profile de sessions
    [actualització: echo “alias drush=’php ~/drush/drush.php'” >> ~/.bash_profile ]
  • alias drush=’/usr/bin/php /home/rutacomplerta-a-la-carpeta-drush/drush.php’   <– afegim aquesta línea on primer li diem al ruta al nostre php i en segon terme la ruta a on tenim descarregat el drush
  • sortim guardant

tancarem sessió i tornarem a obrir per a que es carreguin els paràmetres en el nostre perfil.