[RESOLU] CRON pour exécuter du php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] CRON pour exécuter du php

par AB » 21 sept. 2007, 02:54

Est-ce qu'on ne pourrait pas mettre "Résolu" à ce sujet?
M'enfin "Patriboom", tu as changé de pseudo et l'ancien était stefane321 ? Sinon c'est plutôt à l'auteur du message de mettre Résolu, tu penses pas ?

...à moins que Sékiltoyai ait répondu de manière exhaustive à tous les cas de figure qui peuvent se présenter. Mais ça je suis pas assez qualifié pour en juger.

par Patriboom » 20 sept. 2007, 21:45

Est-ce qu'on ne pourrait pas mettre "Résolu" à ce sujet?

par Sékiltoyai » 09 sept. 2007, 19:41

car wget est un programme qui télécharge des fichiers sur internet.

par Patriboom » 09 sept. 2007, 19:33

Il me reste une question ...

Qu'est-ce que ce wget ?
- une fonction/ une commande CRON ?
- une commande Unix ?
- un sous-programme ?
- une classe ?

Merci de soigner mon ignorance.

par Patriboom » 07 sept. 2007, 04:57

Mais, mais, mais!!!!!

D'une simplicité et d'une clarté, celui-là!
Merci

Ça marche enfin.

:D :) :D

par Sékiltoyai » 07 sept. 2007, 04:15

En ligne de commande, si tu utilises php, ca ne sert à rien de préciser une url, il n'y a aucune raison que ce soit reconnu par php, et si c'était reconnu, cela reviendrait à faire exécuter par php le résultat de ton script php. L'url est une adresse vers un serveur web, ce qui veut dire que cela fait appel au serveur apache (ou autre serveur web). Et que l'url fasse référence à la machine courante ne change rien, pour un programme qui s'exécute sur le serveur, ça ne représente rien qu'une url quelconque.

Pour exécuter un script php sur la machine courante, on peut utiliser :

Code : Tout sélectionner

php -f /chemin_absolu_du_script/script.php php -f ./chemin_relatif_du_script/script.php
Sachant que le chemin relatif du script est le chemin relatif à partir du cron et non du script courant. Pour les autres utilisations, faire 'man php' ou 'php --help' sous linux/BSD/OS X ou bien 'man php' sur google.

Pour exécuter un script sur n'importe quelle machine, on peut utiliser :

Code : Tout sélectionner

wget http://sous_domaine.domaine.tld/chemin_du_script/script.php >/dev/null
En spécifiant l'url du script. Avec wget on peut spécifier une url car wget est un programme qui télécharge des fichiers sur internet. Donc dans ce cas, quelquesoit l'url, même si le site est hébergé sur la même machine, il cherchera le serveur à appeler et fera une requète http vers apache, lequel exécutera le script et lui servira le résultat, lequel résultat sera renvoyé vers /dev/null puisque l'on n'en a pas besoin.

par Patriboom » 07 sept. 2007, 03:39

Le message précédent est de moi.

Merci

par Invité » 07 sept. 2007, 03:36

J'ai la même question, le même fournisseur (Plesk).
J'ai tenté un tas de truc.
Mon fichier PHP fonctionne très bien lorsqu'il est appelé par le navigateur, mais il semble impossible de l'appeler par CRON.

Voici les messages d'erreur:

/bin/sh: php -f agit.php: No such file or directory
/bin/sh: php http://www.cartefoi.net/agit.php: No such file or directory
/bin/sh: php http://public_html.cartefoi.net/agit.php: No such file or directory
/bin/sh: php http://www.cartefoi.net/public_html/agit.php: No such file or directory

Et à : php -f http://www.cartefoi.net/public_html/agit.php dev>null
Le message d'erreur est: "No input file specified."

Avec -f, sans -f
Avec chemin d'accès complet ou partiel
Avec chemin de recul /../..www

Toujours la même chose!

Ceux qui testeront ma page "agit.php" n'y verront rien, car cette page ne fait que m'envoyer un courriel.

Merci à l'avance de votre aide.

par zeus » 05 sept. 2007, 08:00

Modération :
icebreak, merci de surveiller ton langage.

J'ai repris ton message pour en sortir quelque chose d'acceptable, tu vois donc qu'il est possible de dire la même chose sans être vulgaire

par icebreak » 05 sept. 2007, 02:14

Ne t'embêtes pas, fais comme moi.

La ligne de commande ne marchait pas à cause des appels objets et autres.
Du coup je met mes cron en WGET

un truc genre wget http://www.trucmuche.com/test.php
Et tu diriges la sorties de wget dans le dev>null

par stefane321 » 05 sept. 2007, 01:13

Je n'ai pas accès au serveur en ligne de commande.

Mon fournisseur d'hébergement me fournie un control panel (Plesk) ou il y a un outil CRON MANAGER.

par zeus » 04 sept. 2007, 22:38

Tu laisses l'extension .php, mais en ligne de commande, en CGI, l'association entre l'extension .php et le serveur PHP n'est pas forcément automatique ...

Est-ce que tu as essayé de lancer l'exécution de ton script en ligne de commande, sans passer par le cron ?

par stefane321 » 04 sept. 2007, 21:01

Le post invité c'est moi j'ai pas remarqué que j'étais déconnecté.

Et quel extension je donnerais à ce fichier?

Oui

par Invité » 04 sept. 2007, 20:59

C'est la première chose que j'ai faite avant même de penser le faire exécuter par CRON.

par zeus » 04 sept. 2007, 20:59

Normalement, quand tu exécutes un script PHP depuis un cron, il est exécuté en ligne de commande, il en donc possible qu'il faille donner le chemin vers l'exécutable PHP.

Une ligne de ce genre
#!/bin/php

<?php
//Ton code PHP
?>