cron作业linux-apachessl

cron作业linux-apachessl,linux,apache,ssl,drupal,cron,Linux,Apache,Ssl,Drupal,Cron,我有一个安装了apache2和Drupal6的服务器。在我的服务器中,我安装了一个需要使用cron的模块。我也安装了SSL证书 在我的crony选项卡中,有以下配置: * * * * * wget -O --q -t 1 http://domain:8280/folder/cron.php * * * * * wget --no-check-certificate -O --q -t 1 https://domain/folder/cron.php 我的服务器正常工作,但如果我在“我的站点”中

我有一个安装了apache2和Drupal6的服务器。在我的服务器中,我安装了一个需要使用cron的模块。我也安装了SSL证书

在我的crony选项卡中,有以下配置:

* * * * * 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的模块停止工作。这是我在syslog中的错误:

grandchild #20349 failed with status 5

我需要将我的流量从http重定向到https。

首先,请确保000-default.conf中的重定向指令正确(有关详细信息,请参阅),并且不会干扰
.htaccess
文件中的配置(如果有)

然后通过以下方式修复crontab:

  • 删除第一行,因为您不再需要普通http
  • 为此更改第二行:

    wget--无检查证书-O/dev/null--安静-t1

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

    首先,确保重定向配置正确(请参阅),并且不会干扰.htaccess中的配置。其次,为cron任务创建一个独立的脚本,并将它们放在$PATH(/usr/local/或其他东西)中的某个位置。另外,当在Web服务器的用户(sudo-u www-data/usr/local/your wget task.sh)下运行时,请确保脚本是可执行的(chmod+x…),并且工作正常。最后但并非最不重要的一点是,确保您了解wget命令的作用。我不确定-O选项在没有输出文件的情况下是否有效谢谢您的回答。我认为我的重定向配置是正确的。当我尝试访问htp://domain 我的服务器将我重定向到htps://domain 正确地我认为我的脚本cron.php也可以,如果我不在000-default中编写重定向配置,我的模块和cron作业就可以正常工作。如果你在000-default.conf中启用重定向,那么试着注释掉crontab中的第一行,并将第二个命令中的命令更改为:
    wget--no-check-certificate-O/dev/null--quiet-t1https://domain/folder/cron.php
    尝试安装schedule tasks,以便轻松运行多个cronjob,将您的cronjob添加到根用户(用于测试),对于crontab,环境是最小的,因此请使用完整路径或自己传递环境。验证所有相关文件的权限。您还可以将结果输出到终端窗口:运行“tty”输出“/dev/pts/NUMBER”,并在cronjob“***cmd>/dev/pts/NUMBER”上的命令后将输出重定向到该窗口或一个文件,并观察文件更改。