2017-10-02 5 views
1

J'ai un webhook pour mon application qui fait actuellement ceci:Amazon Linux - Exécution de Composer en tant qu'utilisateur Apache?

cd /var/www/html; git pull origin master; /usr/local/bin/composer dump-autoload; php artisan migrate 

Je suis en mesure d'obtenir toutes les commandes ci-dessus pour travailler, sauf la commande composer dump-autoload.

Lorsque je me connecte au serveur en tant que ec2-user et exécutez sudo -u apache /usr/local/bin/composer dump-autoload, la commande s'exécute. Mais si j'atteins le point de terminaison qui exécute cette commande via un script PHP en utilisant shell_exec, cela ne fonctionne pas.

Y at-il un moyen pour moi d'obtenir apache utilisateur pour exécuter cette commande par lui-même?

Répondre

0

Cela devrait être possible en modifiant votre fichier sudoers.

visudo

Ajouter la ligne:

ec2-user ALL=(apache) NOPASSWD: /path/to/script.sh

0

Ne pas oublier de vérifier si l'utilisateur apache ne disposer des droits d'écriture sous le répertoire Laravel. Le compositeur va essayer d'écrire dans le répertoire 'vendeurs'.

Cordialement.