Для того чтобы, запустить php скрипты, использующие API битрикса, нужно определить серверные переменные переменные, отключить статистику и подключить ядро без header'а с заголовками шаблона битрикса:
#!/usr/bin/php
<?php
$_SERVER["DOCUMENT_ROOT"] = "/home/bitrix/www"; // или можно еще так: realpath(dirname(__FILE__)."/../..");
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
set_time_limit(0);
//пишем код
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); //если ругается на него php, то комментим и дальше пользуемся
?>
#!/usr/bin/php - обычно можно не указывать путь к интерпретатору, но если он другой, то нужно указать, дабы исключить в дальнейшем ошибки
Далее ставим права на выполнение:
chmod +x /home/bitrix/www/../myscript.php
Кратко для тех кто не знает про chmod:
Запускаем в терминале наш скрипт:
php -f /home/bitrix/www/../myscript.php
Видим, что если мы не применили бы наши переменные и не отключили бы статистику, у нас бы была страница с авторизацией вместо скрипта, а так, сам скрипт выполняется, теперь его можно вешать на крон, не боясь, что он "не откроется на выполнение".
Чтобы повесить на крон, допустим каждую минуту (например проверка почты), нужно в терминале:
crontab -e
Добавить строчку:
*/1 * * * * /usr/bin/php/ -f /home/bitrix/www/../myscript.php
Допустим ситуация такая, что на хостинге нет интерпретатора php, а только сам модуль с php для апача, тогда скрипт будет таким:
<?php
if ($_SERVER['REMOTE_ADDR']!='127.0.0.1') die(); // Защита от постороннего запуска
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
set_time_limit(0);
//пишем код
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); //если ругается на него php, то комментим и дальше пользуемся
?>
Вот, такие пироги, удачи из прошлого! ^_^