Drush 8 installatie

Uit De Vliegende Brigade
Versie door Jeroen Strompf (overleg | bijdragen) op 1 mei 2018 om 09:42
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

Voor Drupal 6 & 7, is Drush 8 de voordehandliggende keuze.

Nieuwe Drupal, nieuwe Drush

De versie van Drush die werkt met Drupal 6 en 7, werkt niet met Drupal 8:

drush
PHP Fatal error:  Class 'Drupal\Core\Session\AccountInterface' not found in /var/www/example.com/public/core/includes/bootstrap.inc on line 66
Drush command terminated abnormally due to an unrecoverable error.                                                                                                                                                    [error]
Error: Class 'Drupal\Core\Session\AccountInterface' not found in /var/www/example.com/public/core/includes/bootstrap.inc, line 66

Deze foutmelding kan trouwens ook onder andere omstandigheden opreden. Zie verderop.

Versies van Drush

Drush Version 	Branch 	PHP 	Compatible Drupal versions 	Code Status
-------------   ------  ------  --------------------------      ---------------
Drush 9 	master 	5.6+ 	D8                              Build - Passing
Drush 8 	8.x 	5.4.5+ 	D6, D7, D8 	                Build - Passing
Drush 7 	7.x 	5.3.0+ 	D6, D7 	 	                Build - Passing
Drush 6 	6.x 	5.3.0+ 	D6, D7 	 	                Build - Passing
Drush 5 	5.x 	5.2.0+ 	D6, D7 	                        Unsupported
Drush 4 	4.x 	5.2.0+ 	D5, D6, D7 	                Unsupported
Drush 3 	3.x 	5.2.0+ 	D5, D6 	                        Unsupported

Bron

Installatie - recommended (feb. 2017)

Dit is wat de officiele site zegt:

# Download latest stable release using the code below or browse to github.com/drush-ops/drush/releases.
php -r "readfile('https://s3.amazonaws.com/files.drush.org/drush.phar');" > drush
# Or use our upcoming release: php -r "readfile('https://s3.amazonaws.com/files.drush.org/drush-unstable.phar');" > drush

# Test your install.
php drush core-status

# Make `drush` executable as a command from anywhere. Destination can be anywhere on $PATH.
chmod +x drush
sudo mv drush /usr/local/bin

# Optional. Enrich the bash startup file with completion and aliases.
drush init

En dat werkt prima. /usr/local/bin was al opgenomen in de $PATH-variabele, maar het werkte pas na herstarten van de computer (uit- en inloggen had wellicht ook geholpen).

Installatie mbv. Composer

Drupal 8 gebruikt Composer voor installatie van PHP-projecten. Installatie Drush 8 middels Composer gaat met het commando:

composer global require drush/drush:dev-master

Output:

Changed current directory to /home/strompf/.composer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Generating autoload files

In de home-directory is nu een boom aan mappen en bestanden geplaatst onder .composer, inclusief mappen voor Drush.

PATH-variabele bijwerken

Voeg toe aan .bashrc:

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

en ververs de inhoud van .bashrc: source .bashrc. Het is belangrijk dat het nieuwe pad vóór het bestaande pad wordt ingevoerd: Anders zal-ie de oude Drush-instantie eerder vinden dan de nieuwe!

Test

Test Drush met commando

drush status

De eerste paar regels van de uitvoer, half oktober 2015:

 Drupal version                  :  8.0.0-rc1                                                                                                  
 Site URI                        :  http://default                                                                                             
 Database driver                 :  mysql                                                                                                      
 Database hostname               :  localhost                                                                                                  
 Database port                   :  3306    
 ...

Hieronder is de complete uitvoer van drush status, begin 2015. Dit betreft een situatie waarin de Drupal core-bestanden zijn geplaatst, maar er nog geen functionerende site is:

 Drupal version         :  8.0.0-rc3                                            
 PHP executable         :  /usr/bin/php                                         
 PHP configuration      :  /etc/php5/cli/php.ini                                
 PHP OS                 :  Linux                                                
 Drush script           :  /home/strompf/.composer/vendor/drush/drush/drush.php 
 Drush version          :  8.0-dev                                              
 Drush temp directory   :  /tmp                                                 
 Drush configuration    :                                                       
 Drush alias files      :                                                       
 Drupal root            :  /var/www/drush8test

Casus okt. 2015: Git not found

Commando composer global require drush/drush:dev-master gaf andere output dan tijdens eerdere installatie:

Changed current directory to /home/strompf/.composer
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing jakub-onderka/php-console-color (0.1)
    Downloading: 100%         

  - Installing jakub-onderka/php-console-highlighter (v0.3.2)
    Downloading: 100%         

  - Installing dnoegel/php-xdg-base-dir (0.1)
    Downloading: 100%         

  - Installing nikic/php-parser (v1.4.1)
    Downloading: 100%         

  - Installing symfony/var-dumper (v2.7.5)
    Downloading: 100%         

  - Installing symfony/console (v2.7.5)
    Downloading: 100%         

  - Installing psy/psysh (v0.5.2)
    Downloading: 100%         

  - Installing pear/console_table (1.2.1)
    Downloading: 100%         

  - Installing symfony/yaml (v2.7.5)
    Downloading: 100%         

  - Installing drush/drush (dev-master 4017fe6)
    Cloning 4017fe6b80b1e58137f98c82ae0cf3ff8fcfa8d1
    Failed to download drush/drush from source: Failed to clone git@github.com:drush-ops/drush.git, git was not found, check that it is installed and in your PATH env.

sh: 1: git: not found

    Now trying to download from dist
  - Installing drush/drush (dev-master 4017fe6)
    Downloading: 100%         

symfony/var-dumper suggests installing ext-symfony_debug ()
symfony/console suggests installing symfony/event-dispatcher ()
symfony/console suggests installing symfony/process ()
symfony/console suggests installing psr/log (For using the console logger)
psy/psysh suggests installing ext-readline (Enables support for arrow-key history navigation, and showing and manipulating command history.)
psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.)
pear/console_table suggests installing pear/Console_Color2 (>=0.1.2)
drush/drush suggests installing drush/config-extra (Provides configuration workflow commands, such as config-merge.)
Writing lock file
Generating autoload files

... Maar Drush bleek gewoon te werken en te zijn bijgewerkt.

Casus: Voorjaar 2018

  • Beoogde locatie: /usr/local/bin. Deze locatie is al opgenomen in $PATH
  • Drush kun je hier downloaden. Bepaal welke versie je wilt hebben, en kopiëer de URL. In dit geval: https://github.com/drush-ops/drush/releases/download/8.1.16/drush.phar
  • Op de server in m'n home directory (oid): wget https://github.com/drush-ops/drush/releases/download/8.1.16/drush.phar
  • Dit phar-bestand kun je desgewenst testen op integriteit middels php drush.phar core-status
  • Dit bestand is eigenlijk gewoon een php-bestand. Tijd om 'm te verplaatsen naar de uiteindelijke locatie + naam: sudo mv drush.phar /usr/local/bin/drush (dus zonder .phar). Je hebt hier sudo nodig, want als gebruiker heb je geen schrijftoegang op /usr/local/bin
  • Maak 'm executeerbaar: sudo chmod +x /usr/local/bin/drush
  • Uitvoeren: drush.

Zie ook

Bronnen