cron-job linux apache ssl
问题描述:
我有一台安装了apache2和drupal 6的服务器。在我的服务器中,我安装了一个需要使用cron的模块。我也安装了SSL证书。cron-job linux apache ssl
在我的crontab y具有这种配置:
* * * * * wget -O --q -t 1 http://domain:8280/folder/cron.php
* * * * * wget --no-check-certificate -O --q -t 1 https://domain/folder/cron.php
我的服务器的工作,但如果我在写这篇文章的配置站点启用/ 000默认:
redirect permanent/https://domain/
我的模块:用cron停止加工。这是我在系统日志中的错误:
grandchild #20349 failed with status 5
我需要将我的流量从http重定向到https。
答
首先,确保在000-default.conf您的重定向指令是正确的(见Apache wiki了解详细信息),并配置在.htaccess
文件不干预,如果有任何。
然后收拾你的crontab是这样的:
- 取出在前行,因为你并不需要纯HTTP了
-
改变该下联:
的wget --no -check证书-O的/ dev/null的--quiet -t 1 https://domain/folder/cron.php
wget
的选项-O
需要指向文件的路径,因此要么指定它,要么重定向到/dev/null
。此外,wget
选项-q
的某些版本认为不明确,因此最好使用--quiet
来代替抑制输出。
有时候你可能想把你比较长的命令放到一个shell脚本文件中,使其可执行(chmod + x your-script.sh),并确保它在你的web服务器下运行时,用户(sudo -u www-data /path/to/your-script.sh并检查它是否对你的drupal模块做了诀窍)。然后在crontab中使用你的脚本的路径。这将确保一切都像一个魅力,并将保持你的crontab整洁有效。
首先,确保您的重定向配置正确(请参阅[Apache wiki](https://wiki.apache.org/httpd/RedirectSSL)),并且不会干扰.htaccess中的配置。 其次,为您的cron任务创建一个独立脚本,并将它们放在$ PATH(/ usr/local /或其他)中的某个位置。另外,确保你的脚本是可执行的(chmod + x ...),并且在你的web服务器用户下运行时(sudo -u www-data /usr/local/your-wget-task.sh),它们可以正常工作。最后但并非最不重要的一点是,确保你了解你的wget命令正在做什么。我不确定-O选项在没有输出文件的情况下工作 – vrs
感谢您的回答。我认为我的重定向配置是正确的。当我尝试访问htp://域时,我的服务器正确地将我重定向到htps://域。我认为我的脚本cron.php也可以,如果我不写我的重定向配置000-default我的模块与cron-job工作没有问题。 –
如果在000-default.conf中启用重定向,则尝试在crontab中注释第一行,并在第二行中更改命令:'wget --no-check-certificate -O/dev/null - -quiet -t 1 https:// domain/folder/cron。php' – vrs