Данное решение можно использовать не только для мультисайтинга, но и для тех хостингов где наблюдается проблема с запуском крона. Спасибо за идею Ю.Б.
Итак, в чем суть метода. Создаем дополнительный php файл в корне сайта и называем его удобным нам именем, например, multicron.php вот с таким содержанием:
Далее указываем стандартную команду крону для запуска файла multicron.php
Например так:
/usr/local/bin/php /home/.../multicron.php, где ... это системный путь до файла согласно настройкам вашего аккаунта у хостинг провайдера.
Комментарии
У меня на хостинге конструкция вида:
не работает. Вы проверяли?
Попробуйте "/usr/local/bin/php -f /home/.../multicron.php"
Не просто проверял, а у меня именно так и работает. Хостинг www.sweb.ru
В данной идее важно именно то, что такой вариант позволяет запустить крон одним махом сразу для нескольких сайтов. Это раз.
И второе, данный вариант решает проблему с особенностью Drupal в плане крона, когда крон не работает при стандартном запуске через абсолютный путь к файлу.
Что касается запуска файла multicron.php, предложенного в решении, то попробуйте просто следовать рекомендациям вашего хостинг-провайдера.
Мне помог такой вариант на 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 с нужной нам периодичностью.
Отпадает необходимость в указании корня для скрипта.
Если у кого-то что-то не получается с запуском файлов через крон, то обратите внимание еще на права у запускаемых файлов. Вполне может быть и в этом причина. Права могут быть 705, 755 и т.п., т.е. разрешающими просмотр и запуск файла для всех.
хм, а если мултисайтинг сделан , что все сайты лежат в sites/*
а cron.php лежит в корне, он исполнится при стандартном запуске, на всех сайтах или, надо к каждому путь указывать всетаки?
Если таблицы не объединены, то cron.php надо запускать для каждого сайта. Собственно об этом и речь в топике
А какие-то идеи по поводу запуска update.php для всех сайтов есть?
Ага, попадалась как-то тема на глаза. Вот какой модуль можно использовать http://drupal.org/project/multisite_maintenance
У меня на VPS от fastvps.ru вот такая вот комманда стоит:
wget --spider http://mysite.net/multicron.php,
все отлично работает.
З.Ы. Огромное спасибо за руководство!
WiseMan, спасибо тебе. Полезный материал, всё работает.