Копия сайта не открывается на стенде - разбор причин
Файлы и база перенесены, а стенд отдаёт белую страницу или чужой домен. Разбираем причины по убыванию частоты, начиная с подключения к базе.
С чего начать
Проверяем, подключается ли база теми же реквизитами:
grep -A 8 "'connections'" /home/stend/bitrix/.settings.php | grep -E 'host|database|login'mysql -h 127.0.0.1 -u stend -p stend_base -e 'SELECT COUNT(*) FROM b_lang;'# отказ на этом шаге объясняет и белую страницу, и бесконечную загрузкуРеквизиты боевой базы в файле настроек - самая частая причина мёртвой копии. Файл переносят вместе с сайтом, и стенд честно стучится на недоступный сервер, пока не упрётся в предел времени ожидания.
Смотрим, какой домен записан у сайтов:
SELECT LID, SERVER_NAME, DIR FROM b_lang; -- домен каждого сайта копииUPDATE b_lang SET SERVER_NAME = 'stend.local' WHERE LID = 's1';-- после правки обязательно сбрасывают кэш: адреса попадают в него тожеДомен сайта участвует в ссылках писем, в редиректах и в правилах обработки адресов. Со старым значением стенд уводит разработчика на боевой сайт, и правки проверяются совсем не там.
Ищем внешние хранилища кэша и сессий:
grep -nE "memcache|redis|'cache'" /home/stend/bitrix/.settings.php# боевой сервер кэша недоступен со стенда: страница висит до предела времениПроверяем права на служебные каталоги:
sudo chown -R www-data:www-data /home/stend/{bitrix/cache,bitrix/managed_cache,upload}rm -rf /home/stend/bitrix/cache/* /home/stend/bitrix/managed_cache/*# перенесённый кэш чужого домена и чужих прав мешает больше, чем помогаетСравниваем окружение стенда и боевого сервера:
php -v && php -m | sort > /tmp/stend.txtssh boevoy 'php -v && php -m | sort' > /tmp/prod.txtdiff /tmp/stend.txt /tmp/prod.txt # разные расширения дают ошибки на ровном местеПричины
-
В настройках остались реквизиты боевой базы примерно 30% случаев
ПризнакБелая страница или долгая загрузка без единой записи в журнале ошибок.
ПроверкаЧитаем секцию подключений файла настроек и пробуем подключиться этими реквизитами из консоли.
Что делатьПрописываем локальные реквизиты в файле настроек и файле подключения к базе данных.
-
В базе записан боевой домен сайта примерно 20% случаев
ПризнакСтенд открывается, но ссылки и формы уводят посетителя на боевой сайт.
ПроверкаСмотрим значение домена у каждого сайта в таблице языков и сайтов.
Что делатьМеняем домен на локальный, сбрасываем кэш и проверяем правила обработки адресов.
-
Кэш или сессии настроены на внешний сервер примерно 20% случаев
ПризнакСтраница висит до предела времени выполнения, ошибок в журнале при этом нет.
ПроверкаИщем в файле настроек секции внешнего кэша и хранилища сессий по имени сервиса.
Что делатьПереводим стенд на файловый кэш и обычные сессии либо поднимаем сервис локально.
-
Права на служебные каталоги не те примерно 15% случаев
ПризнакОшибки записи в каталоги кэша и загрузок, страницы собираются частично.
ПроверкаСмотрим владельца каталогов кэша и загрузок и сравниваем с пользователем веб-сервера.
Что делатьМеняем владельца служебных каталогов и удаляем перенесённый с боевого сервера кэш.
-
На стенде другая версия PHP или набор расширений примерно 10% случаев
ПризнакОшибки о неизвестных функциях и классах, которых на боевом сайте никогда не было.
ПроверкаСравниваем версию языка и список расширений на стенде и на боевом сервере.
Что делатьДоставляем недостающие расширения и приводим версию языка к боевой хотя бы по старшему номеру.
-
Правила веб-сервера уводят на боевой адрес примерно 5% случаев
ПризнакЛюбой адрес стенда заканчивается переходом на боевой домен в браузере.
ПроверкаЧитаем правила перенаправления в файле веб-сервера и в настройках виртуального хоста.
Что делатьОтключаем правила с жёстко прописанным доменом на время работы стенда.
Частые вопросы
Почему белая страница вместо текста ошибки?
Вывод ошибок на копии обычно выключен настройками боевого сайта. На стенде его включают сразу: разбор без текста ошибки превращается в гадание.
Нужно ли переносить каталог кэша?
Нет, он собирается заново и только мешает при переносе. Кэш и уменьшенные копии картинок исключают из копирования целиком.
Копия открылась, но админка требует ключ.
Лицензионный ключ привязан к боевому домену, и это нормально для стенда. Работать можно, а обновления на копии не ставят.
Почему на стенде уходят письма покупателям?
Почта и обмен перенеслись вместе с настройками и продолжают работать. Их отключают сразу после подъёма копии, до первой проверки заказа.
Стенд работает, но данных нет.
База восстановлена не полностью или подключена другая база. Сверяют число записей в основных таблицах с боевым сайтом.
Смежное
- Локальный стенд - оглавление подтемы
- Стенд из копии боевого сайта: перенос, обрезка, обезличивание - как поднимают такую копию правильно
- Приёмка чужого проекта: что проверить в первый день - первый заход на незнакомый сайт
- Настройки проекта: файл ядра, опции модуля, разные стенды - где лежат реквизиты и настройки
- Кэш и сессии в памяти: memcached, Redis, проверка и отказ - секции внешних хранилищ
- Смена домена сайта: настройки, ссылки, письма - что ещё завязано на домен
- Основы работы с 1С-Битрикс - устройство окружения
- Восстановление из копии не проходит: разбор причин - когда копия даже не развернулась
- После переезда часть сайта молчит - копия открылась, но стоят агенты, почта и обмен