mon script php : testenvoi.php situé sur le serveur dans un repertoire :/home/testmail/
#!/usr/local/bin/php
mail("test@test.com","sujet","corps du sujet");
ma crontab :
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
# vpopmail
40 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
# envoi email automatique
25 12 * * 3 root /home/testmail/testenvoi.php
Ou est l'erreur ? le chemin d'acces au fichier php est il le bon ? oui à priori ?
J'ai fait des tests : lancement du script testenvoi.php à partir du navigateur => ça marche parfaitement (en modifiant évidemment
la ligne magique par <?php ?>).
En ligne de commande :
/usr/local/bin/php /home/testmail/testenvoi.php => marche pas
Status: 404
Content-type: text/html
X-Powered-By: PHP/4.3.8
No input file specified.
Ne trouve pas le fichier alors que j'ai fait les chmod 755 approprié.
Qui peut m'aider ?
# shebang
Posté par jerome (site web personnel) . Évalué à 3.
Dans foobar.php :
#!/usr/bin/php
<?php
phpinfo();
?>
Puis :
$ chmod u+x foobar.php
$ ./foobar.php | tail -n 2
phpinfo()
PHP Version => 4.3.10-8
[^] # Re: shebang
Posté par jerome (site web personnel) . Évalué à 2.
«shebang» vient sharp+bang = #!
Je ne vois pas trop l'utilité de php pour envoyer un mail, les commandes mail et formail sont peut être plus indiquées, fais comme tu préfères.
[^] # Re: shebang
Posté par arnbret . Évalué à 0.
Je vais tester mais je trouve ça étrange qu'en ligne de commande cela ne fonctionne pas. du style :
<code>
usr/bin/local/php /home/tesmail/testenvoi.php
</code>
avec testenvoi.php
<code>
<?php
mail("test@test.fr","sujet","message");
?>
</code>
alors que via un click sur le programme du navigateur, cela fonctionne bien et que la commande php se trouve bien dans usr/bin/local/php
[^] # Re: shebang
Posté par arnbret . Évalué à 0.
<code>
./testenvoi.php | tail -n 2
</code>
avec testenvoi.php :
<code>
#!/usr/local/bin/php
<?php
mail("arnbret2004@yahoo.fr", "Mon Sujet", "test");
?>
</code>
réponse :
./testpage.php | tail -n 2
sh: ./testpage.php: bad interpreter: No such file or directory
[^] # Re: shebang
Posté par _jean . Évalué à 1.
A priori il te manque le support de php en ligne de commande
Il faut que tu installes php-cli
[^] # Re: shebang
Posté par arnbret . Évalué à 0.
usr/local/bin/php
mais je n'ai pas /usr/bin/php.
Le script ne se lance pas en ligne de commande. J'ai l'impression que c'est plus une erreur de chemin du fichier vu le message d'erreur?
mais pourtant il est bien là mon fichier :
dans /home/testmail/testenvoi.php.
D'où cela peut il venir, mince alors ?
[^] # Re: shebang
Posté par jerome (site web personnel) . Évalué à 2.
$ whereis php
ça te dira ou est ton interpréteur php. On se fout complètement de l'endroit où il est à partir du moment ou tu indiques le bon chemin dans ton shebang.
Ensuite, essaie :
$ php tonscript.php
Si ça chie, ya un problème dans ton script.
NB: le head -n 2, c'était juste pour ne garder que les deux premières lignes de la sortie, tu n'en as pas besoin.
[^] # Re: shebang
Posté par arnbret . Évalué à 0.
#!/usr/local/bin/php
<?php
mail("test@test.fr", "Mon Sujet", "test");
?>
commande :
usr/local/bin/php testenvoi.php
ou php testenvoi.php
Ca marche pas, je ne comprends vraiement pas.
message erreur :
Status: 404
Content-type: text/html
X-Powered-By: PHP/4.3.8
No input file specified.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.