2015-12-21 61 views
1

我有一台安装了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。

+1

首先,确保您的重定向配置正确(请参阅[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

+0

感谢您的回答。我认为我的重定向配置是正确的。当我尝试访问htp://域时,我的服务器正确地将我重定向到htps://域。我认为我的脚本cron.php也可以,如果我不写我的重定向配置000-default我的模块与cron-job工作没有问题。 –

+0

如果在000-default.conf中启用重定向,则尝试在crontab中注释第一行,并在第二行中更改命令:'wget --no-check-certificate -O/dev/null - -quiet -t 1 https:// domain/folder/cron。php' – vrs

回答

0

首先,确保在000-default.conf您的重定向指令是正确的(见Apache wiki了解详细信息),并配置在.htaccess文件不干预,如果有任何。

然后收拾你的crontab是这样的:

  1. 取出在前行,因为你并不需要纯HTTP了
  2. 改变该下联:

    的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整洁有效。