J'ai suivi la documentation sur https://getcomposer.org/doc/00-intro.md#globally pour installer composer globalement sur Arch Linux. Quand je fais composer self-update
, je reçois ce message:
[ErrorException]
rename(/home/hannes/.composer/cache/composer-temp.phar,/usr/local/bin/composer): Permission denied
Les autorisations dans /usr/local/bin/
(je les ai changées en 777, mais cela n’a pas aidé):
-rwxrwxrwx 1 hannes users 1104202 30. Mai 18:07 composer
Dans mon répertoire personnel, j'ai fait ceci:
Sudo chmod -R 777 .composer/
Dans /etc/php/php.ini
, le open_basedir
ressemble à ceci:
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/usr/local/bin/
J'ai aussi essayé Sudo composer self-update
mais cela n'a pas fonctionné aussi bien et ce n'est peut-être pas la bonne façon. (?) Que pourrais-je essayer de faire pour que cela fonctionne?
Maintenant, il existe un paquet pour composer dans Arch Linux qui fonctionne pour moi:
Sudo pacman -S composer
cela pourrait être le cas si vous avez téléchargé composer.phar
directement,
mais pas en exécutant php composer-setup.php
rendre composer.phar
exécutable avec la commande suivante avant de le déplacer vers /usr/local/bin/composer
ou après le déplacement
Sudo chmod 755 composer.phar
composer-setup.php fera ce changement pour nous par défaut
Utilisez la commande Sudo pour toute commande qui écrit dans les fichiers racine du dossier. Cela a fonctionné pour moi.
utilisez Sudo "votre commande"
Vous devriez vérifier les autorisations du répertoire/usr/local/bin /, pas seulement le fichier qu'il contient. Le processus doit écrire à la fois le fichier et le répertoire dans lequel les deux doivent être accordés.
En dehors de cela, un conseil général: ne définissez pas toujours tout sur 777. Il n'y a aucune raison pour cela et cela rend votre système vulnérable.
Selon la ligne que vous avez postée dans le dernier commentaire, le répertoire est actuellement accessible en écriture seulement pour l'utilisateur root lui-même. Cela expliquerait l'erreur que vous obtenez. Vous devez non désigner votre propre compte utilisateur comme propriétaire, les systèmes Linux sont des environnements multi-utilisateurs. Pensez plutôt à l'une de ces approches:
composer
à la racine du groupe (un compte d'utilisateur peut appartenir à plusieurs groupes) et rendre le groupe de répertoires accessible en écritureSudo
pour installer et mettre à jour l'utilitaire composer
La dernière option est celle généralement choisie et préférée. Il laisse les autorisations telles quelles (conservatrices) et n'utilise que les privilèges élevés pour les travaux de maintenance du système, tels que l'installation et la mise à niveau.
Sur Ubuntu SRV 16.04
PREMIER
Sudo rm /usr/local/bin/composer
ET
cd ~/.cache/composer
chmod 755 composer-temp.phar
Sudo mv composer-temp.phar /usr/local/bin/composer
Même après avoir déplacé le fichier via Sudo mv composer.phar /usr/local/bin/composer
, une erreur d’autorisation s’est produite lors de l’exécution de la commande composer
. Sudo chmod 755 /usr/local/bin/composer
a corrigé les choses pour moi.
Cela a fait le travail pour moi sur Centos 7
chown -R Apache:apache path/to/composer
chmod 755 path/to/composer
Vous pouvez ajouter temporairement les droits à votre utilisateur actif, puis mettre à jour le composeur sans erreurs et récupérer les droits.
Sudo chmod 777 /usr/bin/
composer self-update
Sudo chmod 755 /usr/bin/