executer fichier php en ligne de commande

millowas
WRInaute discret
WRInaute discret
 
Messages: 54
Inscription: 22 Jan 2006

executer fichier php en ligne de commande

Message le Ven Oct 06, 2006 11:44

sLT

VOile je sais comment exécuté un fichier php en ligne, mais pour s'exécute je dois garder la connection ssh active... Comment faire pour que cette connexion puisse se déconnecté sans interrompre le programme php ?

Jai tenté avec une tache cron mais je passe par webmin, et je n'arrive pas à exécuter la tache dans le bon repertoire...

Merci de votr aide !


tom_pascal
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 291
Inscription: 17 Nov 2003

Message le Ven Oct 06, 2006 12:00

Bonjour,

nohup ?


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Ven Oct 06, 2006 12:37

faut mettre le chemin absolu

sinon je pense qu'un shell ferait l'affaire

rog

millowas
WRInaute discret
WRInaute discret
 
Messages: 54
Inscription: 22 Jan 2006

Message le Ven Oct 06, 2006 13:42

merci de vos réponses !
Dans cron sous l'utilisateur www-data lorsque je lui demande d'exécuter un fichier php il me retourne du html alors que ce fichier est prévu pour etre utiliser en ligne de commande ainsi que via un explorateur... Je px lexécuté correctement que si sous ssh je me connect sous l'utilisateur vu2011

Je précise que j'utilise une distri Debian + VHCS2 + Webmin

Vu2011 correspond à l'utilisateur d'un des sites web hébergé pas vhcs.


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Ven Oct 06, 2006 13:52

tu peux poster une partie des sources php pour que je comprenne mieux ton prob

stp

rog

Bourriquet
WRInaute impliqué
WRInaute impliqué
 
Messages: 637
Inscription: 19 Sep 2005

Message le Ven Oct 06, 2006 16:54

Tu dois utiliser le programme screen.

Pour enlever les entêtes http, tu peux lancer ton script avec l'option" -q" de php.

Plus d'infos sur ce topic : http://www.webrankinfo.com/forums/viewtopic_47808.htm

millowas
WRInaute discret
WRInaute discret
 
Messages: 54
Inscription: 22 Jan 2006

Message le Sam Oct 07, 2006 1:46

Merci à tous pour votre aide !
Mais jai tjrs un problème avec l'utilisation de cron.

Clairement je souhaite exécuté un fichier php contenu dans le répertoire :

/var/www/virtual/humour-du-web.fr/htdocs/gestion-moteur/

et qui se nomme : spider.php

Afin d'automatisé l'indexation des pages je souhaite utiliser cron..
Via webmin pour une nouvella tache cron on me demande l'utilisateur, que dois-je mettre root ? www-data ? mysql?

Pour finir cette commande est elle ok ?
php /var/www/virtual/humour-du-web.fr/htdocs/gestion-moteur/spider.php -all ?

Car selon l'utilisateur que j'utilise lerreur varie

- Impossible de trouver le fichier
- le pages spider.php est exécuté mais me renvoi du html
- ou soit le script n'arrive pas à retrouver les fichiers qui sont inclus.


La seul façon pour moi d'exécuter cette commande, est de me connecté(ssh) avec l'utilisateur "vu2011" relatif à l'espace web attribué aux site.Ou là et seulement là la commande s'exécute parfaitement...

Encore merci pour votre aide !


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Sam Oct 07, 2006 6:36

bah lance la commande par l'utilisateur vu2011

perso je passe toujours par des shells

rog

millowas
WRInaute discret
WRInaute discret
 
Messages: 54
Inscription: 22 Jan 2006

Message le Sam Oct 07, 2006 12:49

Meme avec l'utilisateur vu2011 le cron ne fonctionne pas.... pardon pôur mon ignorance mais ce koi un shell ?


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Sam Oct 07, 2006 13:53

shell est un langage interprété qui est installé par défaut sur linux

tu pourrais aussi verifier le fichier cron une fois

crontab -e -u vu2011

et verifies que la commande est bien enregistrée

rog

Bourriquet
WRInaute impliqué
WRInaute impliqué
 
Messages: 637
Inscription: 19 Sep 2005

Message le Sam Oct 07, 2006 15:28

Pour rendre ton script php exécutable simplement:
1- mettre en première ligne #! suivi du chemin vers l'interprêteur php
Exemple :

Code: Tout sélectionner
whereis php
> /usr/local/bin/php


J'ouvre mon fichier php, je mets en première ligne

Code: Tout sélectionner
#!/usr/local/bin/php -q


L'option -q supprime les entêtes http

2- Je change les droits du script pour lui donner un droit d'exécution

chmod +x monscript.php


3- Je peux lancer mon script php en ligne de commande, je teste :

Code: Tout sélectionner
./monscript.php


4- J'installe la crontab :

Code: Tout sélectionner
crontab -e


Je donne la ligne de commande suivante

Code: Tout sélectionner
MM HH DD MM W /home/utilisateur/monscript.php


MM : minutes
HH : heures
DD : jour du mois
MM : mois de l'année (numérique)
W : jour de la semaine (de 0 à 7)

Si ton script renvoi de l'HTML, c'est que tu effectue une sortie en HTML, ou bien que tu utilises une classe ou un compossant qui le fait. Ca n'a rien à voir avec PHP, au pire, il renvoit des entête HTTP, mais pas de l'HTML, que tu peux supprimer avec l'option -q.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité