2015-12-21 81 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整潔有效。