[Système] Comment exécuter un script PHP sur le PC depuis un serveur Apache ?
Soit le fichier exemple ci-dessous
Code:
1 2 3 4 5 6 7
|
<?php
$Fichier = "toto.tmp";
$Canal = fopen ($Fichier,"w");
fputs ($Canal,"Coucou \n");
fclose($Canal);
?> |
je voudrais le lancer depuis un autre script qui lui tourne sur mon serveur APACHE
Code:
1 2 3 4
|
$Execution = "c:\documents and setting\xampp\php\php-win.exe -f toto.php);
$Retour = exec($Execution,$Sorties,$Erreur);
echo "Retour:".$Retour." , Sorties:".$Sorties." , Erreur:".$Erreur."!<br>"; |
je n'ai aucun retour autre que $Erreur = 1 et nulle trace d'un fichier toto.tmp (ou d'ailleurs ?)
Pourquoi tout ce bric à brac me direz vous ?
Pour tester d'abord puis exploiter ensuite une CRON table qui tournerais sur mon serveur selon l"excellent tutorat posté par Mathieu
mais néanmoins qui mériterait quelques explications pour être fonctionnel
En tout cas, chez moi, cela ne marche pas :aie:
Ben, je vais préciser mon problème !
Je voudrais pouvoir lancer un script PHP qui irait chercher périodiquement une liste de tâches à exécuter, une fois qu'il a lancé ces tâches (ou pas) il s'endort jusqu'à la prochaine fois. Une CRON table , quoi !
Code:
1 2 3 4 5 6
|
<?php
$Execution = "C:\documents and settings\rampe\php.exe -f toto.php";
$Retour = exec($Execution,$Sorties,$Erreur);
echo "Retour:".$Retour." , Sorties:".$Sorties." , Erreur:".$Erreur."!<br>";
?> |
(j'ai omis la boucle de lecture, réduit la liste à un script (toto.php) et l'attente entre 2 passages car la difficulté n'est pas là, mais bien dans l'exécution du php en mode commande (sous PHP !)
La documentation que j'ai lu et relue ne m'apporte pas de réponse
1 - Cela marche en lançant cmd sous windows .
2 - Dans un scrip php, cela me met que 'php.exe' n'est pas reconnu en tant que commande interne... :(
J'en déduit que sous EXEC, il attend une commande de l'OS ... certes, mais alors, comment éxécuter un fichier php en mode commande, dans l'aide, ils y arrivent ?
3 - J'ai bien pensé mettre le chemin de l'exécutable dans la commande include du PHP.INI, mais cela ne change rien ....
4 - J'ai essayé divers commandes, exec, system, passthrue, etc ...
Le seul truc que je n'ai pas essayé, c'est fopen (dans l'exemple de mathieu)
du fichier à exécuter car je ne comprends par quel miracle le fait d'ouvrir un fichier va d'une part l'exécuter (je cherche encore les fread ou fgets... )
Doit-je partir sur les routes en expiation de mes fautes ?:yaisse2: