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

Прислано: WiseMan

ср, 28/05/2008 - 12: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, где ... это системный путь до файла согласно настройкам вашего аккаунта у хостинг провайдера.

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано VladSavitsky в ср, 28/05/2008 - 17:16.

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

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

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


Опубликовано Гость (гостевой логин) в ср, 28/05/2008 - 18:42.

Попробуйте "/usr/local/bin/php -f /home/.../multicron.php"


Опубликовано WiseMan в чт, 29/05/2008 - 13:45.

VladSavitsky написал(а):

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

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

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

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

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

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

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


Опубликовано koluband в чт, 29/05/2008 - 17: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 в пт, 13/06/2008 - 06:49.

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


Опубликовано PaV в ср, 03/12/2008 - 12:24.

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


Опубликовано WiseMan в ср, 03/12/2008 - 22:34.

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


Опубликовано VladSavitsky в чт, 04/12/2008 - 23:54.

А какие-то идеи по поводу запуска update.php для всех сайтов есть?


Опубликовано WiseMan в пт, 05/12/2008 - 09:04.

Ага, попадалась как-то тема на глаза. Вот какой модуль можно использовать http://drupal.org/project/multisite_maintenance


Опубликовано solomenikm в сб, 30/05/2009 - 00:30.

У меня на VPS от fastvps.ru вот такая вот комманда стоит:
wget --spider http://mysite.net/multicron.php,
все отлично работает.
З.Ы. Огромное спасибо за руководство!


Опубликовано romsk1983 в вт, 01/12/2009 - 16:21.

WiseMan, спасибо тебе. Полезный материал, всё работает.


Новое на сайте