Добрый день! Сайт на Битрикс распологается на хотинге reg.ru У фрилансеров заказали подсайты для регионов. После этого начались проблемы на основном сайте с планировщиком. При выполнении задачи для агентов в crontab /opt/php/7.2-bx-optimized/bin/php -c ~/php-bin/php.ini -f ~/www/site.ru/bitrix/modules/main/tools/cron_events.php в планировщике возникает ошибка u0111111$ /opt/php/7.0-bx-optimized/bin/php -c ~/php-bin/php.ini -f ~/www/site.ru/bitrix/modules/main/tools/cron_events.php PHP Warning: require_once(/var/www/u0111111/data/www/sbx15.hosting.reg.ru:1500/bitrix/modules/main/start.php): failed to open stream: No such file or directory in /var/www/u0111111/data/www/site.ru/bitrix/modules/main/include.php on line 10 PHP Fatal error: require_once(): Failed opening required '/var/www/u0111111/data/www/sbx15.hosting.reg.ru:1500/bitrix/modules/main/start.php' (include_path='.:') in /var/www/u0111111/data/www/site.ru/bitrix/modules/main/include.php on line 10 на 2 подсайтах теже самые задачи выполняются без проблем. Скрипты полностью идентичны, т.к. подсайты были полностью скопированы с основного. В поддержке регру сначала посоветовали: "Сравнили скрипты, различий не выявлено. Как мы можем видеть ,сейчас tlt.site.ru добавлен как автоподдомен для site.ru. Учитывая особенности CMS Битрикс, которая некорректно работает с автоподдоменами, мы рекомендуем добавить tlt.site.ru как отдельный www-домен и проверить актуальность проблемы." Но это результатов не дало. После этого они открестились: "Как уже сообщалось ранее проблем со стороны хостинга не наблюдаем. Задание в планировщике написано корректно. Вопрос диагностики работы скриптов сайта выходит за рамки услуг, оказываемых специалистами технической поддержки хостинга. Для решения подобного вопроса мы рекомендуем вам обратиться к специалистам, которые занимались разработкой вашего сайта. Кроме того, интересующую вас информацию вы можете найти на тематических ресурсах, посвящённых разработке используемой вами CMS." Заранее благодарю за помощь! 1С-Битрикс: Управление сайтом 17.5.16. --- Добавлено --- Проблема как я понимаю в том, что он указывает неправильный путь к файлу в 10 строке require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/start.php"); Когда добавляю 2 команды echo __DIR__; echo $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/start.php"; в первой имею вывод /var/www/u0111111/data/www/site.ru/bitrix/modules/main а во второй /var/www/u0111111/data/www//bitrix/modules/main/start.php А если выполнять через планировщик на ISP Manager хостинга, то ошибка такая же, но между www и bitrix он вставляет sbx15.hosting.reg.ru:1500
Выяснил, что по каким то неведанным причинам после строки require_once(substr(__FILE__, 0, strlen(__FILE__) - strlen("/include.php"))."/bx_root.php"); переменная $_SERVER["DOCUMENT_ROOT"]. обнуляется.... Подскажите куда дальше копать?)
Это не из командной строки, а я добавляю в тело скрипта. Точнее это уже есть в скрипте битрикса, я просто проверял когда начинается проблема, методом подстановки echo $_SERVER["DOCUMENT_ROOT"] после каждой строки кода))
Порешал вопрос, в bx_root.php неправильно переопределялась переменная $_SERVER["DOCUMENT_ROOT"] для основного сайта.
Есть еще одна небольшая проблемка. Сайт все тот же на Битрикс распологается на хотинге reg.ru В панировщик на ISP Manager хостинга висит все тот таже команда) /opt/php/7.2-bx-optimized/bin/php -c ~/php-bin/php.ini -f ~/www/site.ru/bitrix/modules/main/tools/cron_events.php ~/cron_log_main 2>&1 Заглядываю в лог а там ошибки по несколько штук в час: Fri Nov 30 19:11:01 2018 (17832): Fatal Error Zend OPcache cannot allocate buffer for interned strings Fri Nov 30 19:12:01 2018 (24015): Fatal Error Insufficient shared memory! Кто может подсказать, что с этим делать? Пробовал в php.ini прописывать следующее: opcache.interned_strings_buffer=24 - не работает, в phpinfo.php по прежнему показывает значение 16 opcache.memory_consumption=256 - не работает, в phpinfo.php по прежнему показывает значение 128 realpath_cache_size=32 - работает, но результатов не дает. memory_limit=256 - стандартно стоит 128, пробовал ставить 256, 512, 1024 но после этого сайт валится с ошибкой Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 20480 bytes) in /var/www/u0418839/data/www/site.ru/bitrix/modules/main/tools.php on line 868
Ну на сколько я вижу у меня 3 процесса для 3 сайтов жрут по 360 мб. А на моём тарифе выделяется не более 1гб на процесс... USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND u0111111 8481 6.2 0.0 362496 57308 ? S 00:57 0:35 /opt/php/7.2-bx-optimized/bin/php-cgi php u0111111 12560 5.2 0.0 364128 46032 ? S 01:03 0:12 /opt/php/7.2-bx-optimized/bin/php-cgi php u0111111 18819 0.4 0.0 361868 43724 ? S 01:03 0:00 /opt/php/7.2-bx-optimized/bin/php-cgi php Т.е. по факту не в этом причина
Поменял 2 настройки realpath_cache_size=32 memory_limit=512M Но это один хрен не помогло, так и валятся 2 ошибки.. Кто может помочь?)
https://github.com/Fourdee/DietPi/issues/2293 opcache.interned_strings_buffer opcache.memory_consumption
Проблема в том, что он и так 16 стоит по умолчанию для php с редакцией под битрикс. А поменять его на хостинге у меня нет прав.
@XFNeo memory_limit ты где менял? в скрипте через init_set? Что тебе мешает так же менять и остальные параметры? Плюс ты можешь cli запускать с параметром php -d memory_limit=128M script.php. Если менял в htaccess или в php.ini то в первом случаи эти параметры только для апач а во втором не факт что правил нужный конфиг.
Вот что мне сказали в тех поддержке Для решения данной проблемы рекомендуем создать отдельный файл php.ini для заданий Cron, к примеру /var/www/u0111111/data/php-bin/php_cron.ini куда скопировать содержимое /var/www/u0111111/data/php-bin-php72-bx/php.ini удалив из него opcache.interned_strings_buffer и добавив в данный файл директиву для отключения opcache: opcache.enable=Off После чего необходимо указать для соответствующего задания Cron путь к этому изменённому php_cron.ini. Тогда задание будет запускаться корректно, и указанная проблема не должна возникнуть. в принципе ошибки в логах крон задач прекратились, но хз правильно это или нет отключать opcache для крон задач)