web-dev-qa-db-fra.com

Est-ce que drush doit être installé en tant que root?

Par http://docs.drush.org/en/master/install/

# Download latest stable release using the code below or browse to github.com/drush-ops/drush/releases.
php -r "readfile('http://files.drush.org/drush.phar');" > drush
# Or use our upcoming release: php -r "readfile('http://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

Je l'essaie donc mais j'obtiens l'erreur suivante:

[Michael@devserver ~]$ php -r "readfile('http://files.drush.org/drush.phar');" > drush
[Michael@devserver ~]$ php drush core-status
PHP Warning:  pcntl_exec(): Error has occurred: (errno 13) Permission denied in phar:///home/Michael/drush/includes/startup.inc on line 359

Warning: pcntl_exec(): Error has occurred: (errno 13) Permission denied in phar:///home/Michael/drush/includes/startup.inc on line 359
Error has occurred executing the Drush script found at /home/Michael/drush
(errno 13) Permission denied
[Michael@devserver ~]

Alors j'essaie de l'exécuter en tant que root.

[Michael@devserver ~]$ su -
Password:
[root@devserver ~]# php /home/Michael/drush core-status
 PHP configuration      :  /etc/php.ini
 PHP OS                 :  Linux
 Drush script           :  /home/Michael/drush
 Drush version          :  8.1.2
 Drush temp directory   :  /tmp
 Drush configuration    :
 Drush alias files      :

[root@devserver ~]#

Donc, tout va bien, et j'ai juste besoin de l'installer en tant que root? Est-ce que je peux l'installer en tant qu'utilisateur normal? Merci

6
user1032531

Je ne sais pas exactement ce qui se passe là-bas, mais je peux le reproduire en utilisant les instructions d'installation.

Le problème est lié au chemin d'exécution (n'a pas été approfondi). Si vous sortez du dossier dans lequel vous avez téléchargé drush et que vous l'exécutez, cela fonctionnera. (cd ~/..; Michael/drush core-status).

C'est probablement pourquoi cela fonctionne lorsque vous su - votre directoy de travail change en/root. Malheureux hareng rouge, le problème ne semble pas du tout lié aux autorisations. Aviez-vous exécuté Sudo php drush core-status, cela n'aurait toujours pas fonctionné.

7
Clive

[~ # ~] note [~ # ~] Le problème décrit dans la question a maintenant été corrigé dans la dernière version de Drush.

Non, Drush n'a pas besoin d'être installé en tant que root.

J'ai soumis Drush pull # 2246 pour mettre à jour les instructions d'installation actuelles de Drush.

Cette méthode d'installation résout le problème selon Drush pull # 2246 :

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

# Test your install.
php /tmp/drush core-status

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

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

J'obtenais également cette erreur. Pour mon cas, cela s'est avéré être un problème d'autorisation sur le compte donné. Je devais m'assurer que le répertoire ~/.drush (et ses sous-répertoires) appartenait au bon compte:

chown -R <account_name>:<account_group> /home/<account_name>/.drush
0
nickgs

Si vous modifiez l'ordre des commandes afin de rendre drush exécutable avant de tester l'installation, cela fonctionne. (Au moins, ça l'a fait pour moi):

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

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

# Test your install.
php drush core-status

# Optional. Enrich the bash startup file with completion and aliases.
drush init
0
rjb-dev