我需要每小时和每天发送电子邮件。我已经尝试了几乎所有的东西,但看起来我的crontab不起作用。如果我通过浏览器运行脚本,例如
http://localhost/Maisha/Functions/sendhourlymails.php
我的电子邮件发送得很漂亮。(我将默认网站localhost移到了public_html。)我不知道什么是错的。我在堆栈溢出中读了一些帖子,包括php的可执行路径帮助因此我把/ usr / bin / php放在实际脚本之前,cronned会工作,但事实并非如此。删除/ usr / bin / php不起作用。在实际脚本无效之前添加php。 我的crontab中有以下条目。
# m h dom mon dow command
0 * * * * /usr/bin/php /home/maxwell/public_html/Maisha/Functions/sendhourlymails.php
0 0 * * * /usr/bin/php /home/maxwell/public_html/Maisha/Functions/senddailymails.php
答案 0 :(得分:6)
尝试使用wget调用脚本,如下所示:
* * * * * wget http://mysite.com/myscript >/dev/null 2>&1
答案 1 :(得分:0)
是的,wget是不错的选择,也可以尝试使用:
0 * * * * / usr / sbin / php / usr / bin / php /home/maxwell/public_html/Maisha/Functions/sendhourlymails.php
但由于相对路径,它可能会出错。
答案 2 :(得分:0)
尝试将其放入.php文件
<?php
#!/usr/local/bin/php -q
//your code here
?>
然后,如果您在此文件中包含任何文件,则必须使用以下内容:
include"/var/www/../your_absolute_path_from_root_folder/connect.php";
Finnaly确保此文件具有正确的权限。尝试
chmod 755 /var/www/.../file.php
然后,如果使用以下命令编辑crontab文件
vi /etc/crontab
像
这样的东西10 6 * * * root php /var/www/..path../file.php
并使用此命令重新启动服务
/etc/init.d/cron restart
你已经完成了工作!!