Aller au contenu

Sujets conseillés

Posté

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 ?

Posté

Bonjour,

oui : installer également PHP en cli ;)

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.

aptitude install php5-cli

Posté

Sinon, tu peux mettre ta page en ligne, protégée par un htaccess/htpassword, et l'appeler de la manière suivante :

/usr/bin/wget -O /dev/null http://login:motdepasse@tonsite.tld/chemin/vers/tonscript.php

Posté

Bien vu pour les wget, merci ;)

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 ?

Posté

Il demande une solution propre et vous lui conseillez le wget :P 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.

Posté

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 ?

Posté (modifié)

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...

Modifié par Kioob
Posté

Ok merci pour ces infos kioob ! :thumbsup:

Je vais donc garder une version module pour le web et installer la version CLI pour les cron, comme ça je tour est joué !

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...