Крон для мультисайтинга и не только...

Главные вкладки

Аватар пользователя WiseMan WiseMan 28 мая 2008 в 16:45

Данное решение можно использовать не только для мультисайтинга, но и для тех хостингов где наблюдается проблема с запуском крона. Спасибо за идею Ю.Б.

Итак, в чем суть метода. Создаем дополнительный php файл в корне сайта и называем его удобным нам именем, например, multicron.php вот с таким содержанием:

<?php
/* запускаем крон для нескольких сайтов. Здесь site1, site2 и т.д. это
адреса ваших сайтов из связки мультисатинга */

readfile("http://site1/cron.php");
readfile("http://site2/cron.php");
readfile("http://site3/cron.php");
readfile("http://site4/cron.php");

?>

Далее указываем стандартную команду крону для запуска файла multicron.php

Например так:
/usr/local/bin/php /home/.../multicron.php, где ... это системный путь до файла согласно настройкам вашего аккаунта у хостинг провайдера.

Комментарии

Аватар пользователя WiseMan WiseMan 29 мая 2008 в 17:45

VladSavitsky wrote:
У меня на хостинге конструкция вида:

/usr/local/bin/php /home/.../multicron.php

не работает. Вы проверяли?

Не просто проверял, а у меня именно так и работает. Хостинг www.sweb.ru

В данной идее важно именно то, что такой вариант позволяет запустить крон одним махом сразу для нескольких сайтов. Это раз.

И второе, данный вариант решает проблему с особенностью Drupal в плане крона, когда крон не работает при стандартном запуске через абсолютный путь к файлу.

Что касается запуска файла multicron.php, предложенного в решении, то попробуйте просто следовать рекомендациям вашего хостинг-провайдера.

Аватар пользователя koluband koluband 29 мая 2008 в 21:53

Мне помог такой вариант на valuehoste.

создаём файл cron.sh

"
#!/bin/sh
/usr/local/bin/lynx -source http://MYSITE_0/cron.php > /dev/null 2>&1
/usr/local/bin/lynx -source http://MYSITE_1/cron.php > /dev/null 2>&1
...
/usr/local/bin/lynx -source http://MYSITE_N/cron.php > /dev/null 2>&1
"
chmod +x cron.sh

в crontab добавляем запуск cron.sh с нужной нам периодичностью.

Отпадает необходимость в указании корня для скрипта.

Аватар пользователя WiseMan WiseMan 13 июня 2008 в 10:49

Если у кого-то что-то не получается с запуском файлов через крон, то обратите внимание еще на права у запускаемых файлов. Вполне может быть и в этом причина. Права могут быть 705, 755 и т.п., т.е. разрешающими просмотр и запуск файла для всех.

Аватар пользователя PaV PaV 3 декабря 2008 в 15:24

хм, а если мултисайтинг сделан , что все сайты лежат в sites/*
а cron.php лежит в корне, он исполнится при стандартном запуске, на всех сайтах или, надо к каждому путь указывать всетаки?

Аватар пользователя WiseMan WiseMan 4 декабря 2008 в 1:34

Если таблицы не объединены, то cron.php надо запускать для каждого сайта. Собственно об этом и речь в топике Wink