Version complète: sur le forum Webmaster Hub : Crontab en PHP
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Grasshopper
Bonjour à tous,

Voici mon problème, je souhaite exécuter un script PHP à heure fixe en utilisant un cron. Le problème c'est que la technique consistant à éxécuter le script par une commande /usr/bin/php -f /dir/file.php ne fonctionne pas sur mon serveur car PHP est installé en module apache..

Vous connaissez une solution propre ?

Kioob
Bonjour,

oui : installer également PHP en cli wink.gif

Je ne sais pas ce qu'il en est des autres distributions, mais sous Debian les trois versions principales de PHP sont disponibles simultanément et sans le moindre conflit.
CODE
aptitude install php5-cli
steph29
sinon regarde du cote de wget wink.gif
captain_torche
Sinon, tu peux mettre ta page en ligne, protégée par un htaccess/htpassword, et l'appeler de la manière suivante :
CODE
/usr/bin/wget -O /dev/null http://login:motdepasse@tonsite.tld/chemin/vers/tonscript.php

Grasshopper
Bien vu pour les wget, merci wink.gif

Je connaissais pas php en cli. Si je l'installe, là, mes scripts php sur le web vont continuer à s'éxécuter en module ?
Est-ce qu'il y a moyen ensuite de définir si un script doit être appelé en cgi par apache ou en module ?
steph29
l'autre avantange du cli c'est que tu peux avoir deux config php completement differente (max execution time par exemple...)
Kioob
Il demande une solution propre et vous lui conseillez le wget tongue.gif Ca peut avoir quelques avantages dans le cas de PHP en module Apache si le serveur n'a aucune sécurité, mais quand même : ça reste la solution la moins propre... (mais la plus simple, je vous l'accorde).

Grasshoper : je ne connais pas ta distribution, mais pour reprendre l'exemple de Debian les 3 versions peuvent être installées simultanément sans soucis oui.
Grasshopper
Kioob, je suis sous debian etch. Donc ca doit être ok.

Tu me dis 3 versions ? Tu veux dire en cgi + module + ??
Ou alors tu parles d'autre chose ?
pluriels
cgi + module + cli ?
Grasshopper
Ah, j'ai cru que cli voulait dire module + cgi. J'ai pas saisi la différence...
Kioob
Pour résumer un peu ces 3 "versions principales" :
- mod_php : ce qu'on appel "module", c'est la version intégrée à Apache. Il s'agit généralement de la version la plus rapide en terme de PHP pur, mais remis dans le contexte d'un site Web complet ce n'est pas forcément le cas. Toutefois le principal soucis reste la sécurité (tous les sites et applications utilisant PHP tournent sous le même utilisateur Unix).
C'est la configuration la plus répandue sur les serveurs dédiés pour des raisons historiques d'après moi, et aussi parce que c'est la plus simple à installer.


- la version (fast)CGI, qui est compatible avec tous les serveurs web. Si utilisée via fastcgi et suexec, implique une légère baisse de performances par rapport à mod_php ; mais apporte en contrepartie une sécurité fortement accrue (un user différent par site, application, ou sous domaine, comme on le sent). Elle permet également d'utiliser des serveurs web beaucoup plus performants que le "vieux" Apache prefork : apache2 event et lighttpd par exemple.
Configuration qu'on retrouve chez la grande majorité des hébergeurs mutualisés, notamment pour l'aspect sécurité. De plus avec le safe_mode et l'open_basedir qui disparaissent de PHP 6, ce sera bientôt notre seule solution sécurisée.


- la version CLI (Command Line Interface) : totalement indépendante du moindre serveur Web. Pour utiliser ses scripts PHP comme tout autre langage de script à la Perl, SH, Python, etc. La configuration par défaut est légèrement modifiée : les erreurs ne sont pas affichées au format HTML, la bufferisation est désactivée, et il n'y a pas de "time_limit". C'est pour moi la meilleure solution pour les crons.


Bien sûr il s'agit de "généralités", il y a toujours des cas particuliers...
Grasshopper
Ok merci pour ces infos kioob ! a_thumbsup_20.gif

Je vais donc garder une version module pour le web et installer la version CLI pour les cron, comme ça je tour est joué !
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.