Executer une commande php sur le serveur unix
Fermé
Koumboloy
-
7 juil. 2009 à 15:17
dubcek Messages postés 18757 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 19 décembre 2024 - 8 juil. 2009 à 17:28
dubcek Messages postés 18757 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 19 décembre 2024 - 8 juil. 2009 à 17:28
A voir également:
- Executer une commande php sur le serveur unix
- Invite de commande - Guide
- Commande terminal mac - Guide
- Changer serveur dns - Guide
- Easy php - Télécharger - Divers Web & Internet
20 réponses
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
7 juil. 2009 à 15:44
7 juil. 2009 à 15:44
hello
le fichier ext bien exécutable ?
ls -l /etc/rc.local
il s'exécute comme root ou par sudo pour le mount ?
le fichier ext bien exécutable ?
ls -l /etc/rc.local
il s'exécute comme root ou par sudo pour le mount ?
koumboloy
Messages postés
10
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
8 juillet 2009
7 juil. 2009 à 15:59
7 juil. 2009 à 15:59
arf, je suis un newbie dans unix! Je n'y comprend rien, je sais que c'est cette commande que je dois executer mais je ne sais pas si elle s'exécute comme root ou sudo.
Pour faire marcher ce fichier rc.local sur le serveur je tape :
[root@servintranet]# /etc/rc.local
Lorsque je tape [root@servintranet]# ls -l /etc/rc.local
Cette ligne s'affiche :
lrwxrwxrwx 1 root root 13 avr 20 2006 /etc/rc.local ->rc.d/rc.local*
Je ne sais pas si sa peut t'aider, mais merci de t'occuper de mon problème en tt cas ^^
Pour faire marcher ce fichier rc.local sur le serveur je tape :
[root@servintranet]# /etc/rc.local
Lorsque je tape [root@servintranet]# ls -l /etc/rc.local
Cette ligne s'affiche :
lrwxrwxrwx 1 root root 13 avr 20 2006 /etc/rc.local ->rc.d/rc.local*
Je ne sais pas si sa peut t'aider, mais merci de t'occuper de mon problème en tt cas ^^
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
7 juil. 2009 à 16:05
7 juil. 2009 à 16:05
si cette commande fonctionne
[root@servintranet]# /etc/rc.local
c'est qu'il est exécutable et tu es root
mais ton code php ne s'exécute pas comme root, non ?
essaye exec("sudo /etc/rc.local");
ps :puisque /etc/rc.local est un lien, pour voir les droits du fichier et non du lien
ls -lL /etc/rc.local
[root@servintranet]# /etc/rc.local
c'est qu'il est exécutable et tu es root
mais ton code php ne s'exécute pas comme root, non ?
essaye exec("sudo /etc/rc.local");
ps :puisque /etc/rc.local est un lien, pour voir les droits du fichier et non du lien
ls -lL /etc/rc.local
koumboloy
Messages postés
10
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
8 juillet 2009
7 juil. 2009 à 16:13
7 juil. 2009 à 16:13
ls -lL /etc/rc.local me donne : -rwxr-xr-x 1 root root 1589 jui 7 14:54 /etc/rc.local*
Dois je changer ma ligne :
mount -t smbfs -o uid=daemon,username=dicta,password=dicta "//SERVTSE/Gestisoft" /mnt/pdf-docs
?
Merci!
Dois je changer ma ligne :
mount -t smbfs -o uid=daemon,username=dicta,password=dicta "//SERVTSE/Gestisoft" /mnt/pdf-docs
?
Merci!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
7 juil. 2009 à 16:18
7 juil. 2009 à 16:18
c'est la ligne exec qu'il faut changer, le sudo va exécuter /etc/rc.local comme root
koumboloy
Messages postés
10
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
8 juillet 2009
7 juil. 2009 à 16:21
7 juil. 2009 à 16:21
Que dois-je alors mettre a la place de: exec("/etc/rc.local"); ?
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
7 juil. 2009 à 16:24
7 juil. 2009 à 16:24
exec("sudo /etc/rc.local");
pour autant que le code php s'exécute en tant qu'un utilisateur qui peut exécuter sudo sans mot de passe
pour autant que le code php s'exécute en tant qu'un utilisateur qui peut exécuter sudo sans mot de passe
koumboloy
Messages postés
10
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
8 juillet 2009
7 juil. 2009 à 16:37
7 juil. 2009 à 16:37
Le fichier n'as toujours pas l'aire de s'exécuter :(
Sinon peut tu m'indiquer comment créer un fichier contenant la commande ci dessous sur le serveur (je suis un vrai vrai newbie ^^)
mount -t smbfs -o uid=daemon,username=dicta,password=dicta "//SERVTSE/Gestisoft
Si ce fichier créer dispose de tous les droit la commande devrai marcher?
Ps: si j'ajoute un popup dans ce fichier es que je pourrai voir cette ligne s'afficher sur le serveur pour être sur que le fichier s'éxecute?
Merci beaucoup
Sinon peut tu m'indiquer comment créer un fichier contenant la commande ci dessous sur le serveur (je suis un vrai vrai newbie ^^)
mount -t smbfs -o uid=daemon,username=dicta,password=dicta "//SERVTSE/Gestisoft
Si ce fichier créer dispose de tous les droit la commande devrai marcher?
Ps: si j'ajoute un popup dans ce fichier es que je pourrai voir cette ligne s'afficher sur le serveur pour être sur que le fichier s'éxecute?
Merci beaucoup
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
7 juil. 2009 à 17:53
7 juil. 2009 à 17:53
/etc/rc.local est exécuté au démarrage du système, non ?
dans un fichier appellé comme tu veux, disons mymount, 2 lignes
#!/bin/bash
mount -t smbfs -o uid=daemon,username=dicta,password=dicta "//SERVTSE/Gestisoft " /mnt/pdf-docs
donner les droits x
chmod u+x mymount
essayer
sudo mymount
dans un fichier appellé comme tu veux, disons mymount, 2 lignes
#!/bin/bash
mount -t smbfs -o uid=daemon,username=dicta,password=dicta "//SERVTSE/Gestisoft " /mnt/pdf-docs
donner les droits x
chmod u+x mymount
essayer
sudo mymount
koumboloy
Messages postés
10
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
8 juillet 2009
8 juil. 2009 à 10:53
8 juil. 2009 à 10:53
J'ai essayé de simplifier au maximum mon problème mais je ne l'ais toujours pas résolu!
Voici ou j'en suis:
J'ai créé un fichier huhu sur mon serveur unix dans /tmp/huhu
Le contenu est :
#!/bin/bash
reboot
mount -t smbfs -o uid=daemon,username=dicta,password=dicta "//SERVTSE/Gestisoft " /mnt/pdf-docs
echo "########################################################"
Lorsque je tape ls -l tmp/huhu sur mon serveur unix il s'affiche:
-rwxrwxrwx 1root root 2096 jui 8 09:54 tmp/huhu*
Je pense que ce fichier huhu dispose donc de tous les droits
Lorsque je tape exec tmp/huhu sur mon serveur,mon serveur redémarre bien
mais lorsque de mon autre ordinateur, je me rend sur mon site intranet hébergé par mon serveur unix et que je me rend sur la page contenant la commande
exec("/tmp/huhu"); ou meme exec("sudo tmp/huhu");
rien ne se passe, je pensais au moins en rajoutant la ligne reboot voir mon serveur se redémarrer mais rien :p
pourquoi mon exec ne marche t'il pas ?!?!
Voici ou j'en suis:
J'ai créé un fichier huhu sur mon serveur unix dans /tmp/huhu
Le contenu est :
#!/bin/bash
reboot
mount -t smbfs -o uid=daemon,username=dicta,password=dicta "//SERVTSE/Gestisoft " /mnt/pdf-docs
echo "########################################################"
Lorsque je tape ls -l tmp/huhu sur mon serveur unix il s'affiche:
-rwxrwxrwx 1root root 2096 jui 8 09:54 tmp/huhu*
Je pense que ce fichier huhu dispose donc de tous les droits
Lorsque je tape exec tmp/huhu sur mon serveur,mon serveur redémarre bien
mais lorsque de mon autre ordinateur, je me rend sur mon site intranet hébergé par mon serveur unix et que je me rend sur la page contenant la commande
exec("/tmp/huhu"); ou meme exec("sudo tmp/huhu");
rien ne se passe, je pensais au moins en rajoutant la ligne reboot voir mon serveur se redémarrer mais rien :p
pourquoi mon exec ne marche t'il pas ?!?!
koumboloy
Messages postés
10
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
8 juillet 2009
8 juil. 2009 à 11:31
8 juil. 2009 à 11:31
Pour faire encore simple
J'ai ajouter la ligne exec ('reboot') à mon script php, j'ouvre cette page et .... toujours rien !!
:p:p pourquoi?
J'ai ajouter la ligne exec ('reboot') à mon script php, j'ouvre cette page et .... toujours rien !!
:p:p pourquoi?
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
8 juil. 2009 à 13:51
8 juil. 2009 à 13:51
si tu mets reboot dans un script la suite du script ne sera jamais exécutée
met une trace dans ton script
(date ; id -a ; echo $0 exécuté)> logfile
met une trace dans ton script
(date ; id -a ; echo $0 exécuté)> logfile
koumboloy
Messages postés
10
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
8 juillet 2009
8 juil. 2009 à 14:34
8 juil. 2009 à 14:34
Merci encore de t'occuper de mon problème dubcek,
Je sais que si je mets reboot mon script il ne s'exécutera pas en entier.
J'ai mi cette ligne justement en espérant voir mon ordinateur se redémarrer pour m'assurer que ma commande exec() fonctionne
Mais il n'en est rien, le serveur ne se redémarre pas.
Que signifie cette ligne : (date ; id -a ; echo $0 exécuté)> logfile
Comment dois je l'écrire dans mon programme php , je ne l'écris pas tel quelle? ^^
j'obtiens ceci en tapant les commandes ci dessous sur mon serveur
[root@servintranet ~]# date
mer jui 8 14:44:42 CEST 2009
[root@servintranet ~]# id -a
uid=0(root) gid=0(root) groupes=0(root)
Je ne sais pas si sa peux t'aider
Dsl je débute ^^
Je sais que si je mets reboot mon script il ne s'exécutera pas en entier.
J'ai mi cette ligne justement en espérant voir mon ordinateur se redémarrer pour m'assurer que ma commande exec() fonctionne
Mais il n'en est rien, le serveur ne se redémarre pas.
Que signifie cette ligne : (date ; id -a ; echo $0 exécuté)> logfile
Comment dois je l'écrire dans mon programme php , je ne l'écris pas tel quelle? ^^
j'obtiens ceci en tapant les commandes ci dessous sur mon serveur
[root@servintranet ~]# date
mer jui 8 14:44:42 CEST 2009
[root@servintranet ~]# id -a
uid=0(root) gid=0(root) groupes=0(root)
Je ne sais pas si sa peux t'aider
Dsl je débute ^^
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
8 juil. 2009 à 14:47
8 juil. 2009 à 14:47
c'est un script shell, a mettre dans ton script huhu, enlève le reboot
ca permet de voir la date et l'id exacte root ou pas donc si il s'exécute
dans ton exec met le chemin complet, éviter tmp car beaucoup de système vide tmp au démarrage
exec ("/home/ton_nom/huhu"); ou meme exec("sudo /home/ton_nom/huhu");
ca permet de voir la date et l'id exacte root ou pas donc si il s'exécute
dans ton exec met le chemin complet, éviter tmp car beaucoup de système vide tmp au démarrage
exec ("/home/ton_nom/huhu"); ou meme exec("sudo /home/ton_nom/huhu");
koumboloy
Messages postés
10
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
8 juillet 2009
8 juil. 2009 à 15:15
8 juil. 2009 à 15:15
Mon fichier php contient les lignes suivantes
exec ("/home/userftp/huhu");
exec("sudo /home/userftp/huhu");
Mon fichier huhu contient:
#!/bin/bash
(date ; id -a ; echo $0 exécuté)> logfile
echo "mount -t smbfs -o uid=daemon,username=dictaplus,password=dictaplus "//SERVTSE/Gestisoft " /mnt/pdf-docs"
echo "###########################################"
Lorsque je tape exec /home/userftp/huhu sur mon serveur, je vois bien les ##### s'afficher rapidement
Par contre, tout de suite après je dois me reloger servintranet login: ...
Peut être ceci viens du fait que mon fichier huhu n'as pas de type?
(ce n'est pas un fichier huhu.txt ni huhu.xml mais huhu , dois je lui rajouter une extension?)
Par contre en ouvrant ma page php toujours rien :p dois je être loguer sur le serveur pour voir quelque chose à l'écran ?
C'est pour sa que j'avais mis un reboot, pour être sur de voir quelque chose sur mon serveur lorsque mon exec marchera ^^
exec ("/home/userftp/huhu");
exec("sudo /home/userftp/huhu");
Mon fichier huhu contient:
#!/bin/bash
(date ; id -a ; echo $0 exécuté)> logfile
echo "mount -t smbfs -o uid=daemon,username=dictaplus,password=dictaplus "//SERVTSE/Gestisoft " /mnt/pdf-docs"
echo "###########################################"
Lorsque je tape exec /home/userftp/huhu sur mon serveur, je vois bien les ##### s'afficher rapidement
Par contre, tout de suite après je dois me reloger servintranet login: ...
Peut être ceci viens du fait que mon fichier huhu n'as pas de type?
(ce n'est pas un fichier huhu.txt ni huhu.xml mais huhu , dois je lui rajouter une extension?)
Par contre en ouvrant ma page php toujours rien :p dois je être loguer sur le serveur pour voir quelque chose à l'écran ?
C'est pour sa que j'avais mis un reboot, pour être sur de voir quelque chose sur mon serveur lorsque mon exec marchera ^^
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
8 juil. 2009 à 15:49
8 juil. 2009 à 15:49
non, les extensions ce n'est que pour Windows
le fichier logfile est bien créé ?
interactivement, il ne faut pas taper exec, /home/userftp/huhu suffit et ne te délogera pas
je ne sais pas où le php affiche les commandes, d'ou la redirection dans un fichier > logfile
le fichier logfile est bien créé ?
interactivement, il ne faut pas taper exec, /home/userftp/huhu suffit et ne te délogera pas
je ne sais pas où le php affiche les commandes, d'ou la redirection dans un fichier > logfile
koumboloy
Messages postés
10
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
8 juillet 2009
8 juil. 2009 à 16:05
8 juil. 2009 à 16:05
En tapant exec /home/userftp/huhu sur mon serveur; oui, j'ai retrouvé un fichier logfile sur mon serveur.
Il contient :
mer jui 8 15:16:52 CEST 2009
uid=0(root) gid=0(root) groupes=0(root)
/home/userftp/huhu exécuté
mais en lançant ma page sur mon site intranet non, aucun fichier logfile, ou celui si n'est pas actualisé avec la bonne heure (elle reste a 15:16:52)
Il contient :
mer jui 8 15:16:52 CEST 2009
uid=0(root) gid=0(root) groupes=0(root)
/home/userftp/huhu exécuté
mais en lançant ma page sur mon site intranet non, aucun fichier logfile, ou celui si n'est pas actualisé avec la bonne heure (elle reste a 15:16:52)
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
8 juil. 2009 à 16:43
8 juil. 2009 à 16:43
donc le php n'exécute pas le script
ou ce sont peut-être des problèmes de droits
essaye avec > /tmp/logfile
et supprime le avant rm -f /tmp/logfile
ou ce sont peut-être des problèmes de droits
essaye avec > /tmp/logfile
et supprime le avant rm -f /tmp/logfile
koumboloy
Messages postés
10
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
8 juillet 2009
8 juil. 2009 à 16:57
8 juil. 2009 à 16:57
toujours le même problème :p
Oui je pense aussi que le commande exec ne marche pas puisque en ajoutant exec('reboot') a mon fichier php il ne reboot même pas le serveur
Oui je pense aussi que le commande exec ne marche pas puisque en ajoutant exec('reboot') a mon fichier php il ne reboot même pas le serveur
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
8 juil. 2009 à 17:28
8 juil. 2009 à 17:28
je ne connais pas le php, l'exec demande reut-être des options en raison du risque d'exécuter certaines comandes
essaye
echo exec('whoami');
ou remplace exec par system
essaye
echo exec('whoami');
ou remplace exec par system