Bien que tu aies ajouté ta commande et ton user dans le fichier sudoers, je me demande si il ne faut tout de même pas que tu lance ton script.sh avec un sudo devant
Bonsoir à tous.
Je veux créer des vhost (apache2) à partir de mon application symfony. Pour ce faire je dois exécuter un script bash dans lequel il y a bien évidenment des commande (root) depuis symfony.
Voici mon code php (un service)
Mon script bash
et mon fichier sudoers
Ce que j'obtiens
Lorsque j'appelle mon service, non seulement un mot de passe m'est demandé pour le rechargement d'apache mais aussi je ne vois aucun changement dans le ficher /etc/hosts, le fichier du vhost n'est pas créé et le lien symbolique non plus ne l'ai pas.
Pouvez-vous me donner des pistes ?
8 réponses
Quand je lance avec le sudo devant, ça ne fait de moulinner des secondes durant. Et après j'ai un timeout qui s'affiche
je ne parle pas de lancer le script php avec sudo, mais bien d'ajouter sudo au niveau des diverses commandes à l'intérieur de ton fichier addImmoTenantScript.sh
sudo echo "server.ip.address $domaineName" >> /etc/hosts
sudo a2ensite /etc/apache2/sites-available/$organisationName.conf
sudo service apache2 reload
sudo ln -s /home/username/Projects/immo/immo-project/public/ /var/www/$domaineName
C'est toujours la même erreur :
et quand tu lances depuis ton terminal
/home/username/Projects/immo/immo-project/addImmoTenantScript.sh
ça fonctionne bien ?
En ligne de commande, quand je lance
il me crée tous les fichier et lien mais j'ai cette erreur :
Et pourtant le fichier test_immo.conf existe bien.
Je précise que j'ai enlevé le sudo devant les commandes dans mon fichier script
Il me semble que tu as juste à faire
et non
Peu importe le dossier dans lequel tu te trouves
L'autre point c'est de savoir avec quel user tourne ton PHP. Avec Apache, par défault, c'est www-data. c'est donc ce user qu'il faut mettre dans le sudoers.
Mais peut etre que tu l'as personnalisé en utilisant le module php-fpm.
En tout cas c'est sans doute un problème de user.