1С—Битрикс веб—окружение 7
Свершилось, 1С—Битрикс анонсировали выход «Веб—окружение 7», версию обосновали возможностью установки на Centos 7 с php 7. Большой шаг для увеличения скорости сайта за счет новенькой php 7, mysql и обновления системного программного обеспечения на сервере. Centos зарекомендовал себя стабильной версией для сайтов на 1С-Битрикс, лучше чем Windows Server.
Ставить Centos 7 и веб—окружение 7 однозначно надо, за счет php 7 Битрикс показывает производительность в 2 раза больше, по сравнению с предыдущими версиями.
Опишем задачи: установка Centos 7, установка «Веб-окружение», перенос сайта на сервер, настройка сервера, установка сертификатов SSL и перевод с http на https. Столкнулись с осложнениями в виде установки программного обеспечения, поэтому делимся опытом. Установкой Centos делиться не будим, любой дата-центр предоставит вам установке с покупкой vps.
Предполагаем ос стоит, начинаем установку окружения:
wget http://repos.1c-bitrix.ru/yum/bitrix-env.sh # chmod +x bitrix-env.sh
Запускаем скрипт ./bitrix-env.sh установки bitrix окружение. Для установки необходимо отключить Selinux, и скрипт просит произвести отключение и перезагрузку через команду reboot.
Нажимаем Y, означающий согласие на отключение Selinux и производим перезагрузку. Зайдя в систему, перезапускаем скрипт. В нашем случае мы получили повторное уведомление об отключении Selinux. При повторной попытке заметили сообщение ./bitrix-env.sh: line 29: sestatus: command not found. Оказывается на сервере отсутствует Selinux, из-за этого не происходит установка.
Хочу поделиться, что такая проблема теперь везде, как на centos 6, centos 7.
Написали ругательное письмо в техподдержку и стали смотреть скрипт bitrix-env.sh на косяки и нашли начиная с 28 строки.
disable_selinux(){ sestatus=$(sestatus | awk -F':' '/SELinux status:/{print $2}' | sed -e "s/\s\+//g") seconfigs="/etc/selinux/config /etc/sysconfig/selinux" if [[ $sestatus != "disabled" ]]; then print "You must disable SElinux before installing the Bitrix Environment." 1 print "You need to reboot the server to disable SELinux" read -r -p "Do you want disable SELinux?(Y|n)" DISABLE [[ -z $DISABLE ]] && DISABLE=y [[ $(echo $DISABLE | grep -wci "y") -eq 0 ]] && print_e "Exit." for seconfig in $seconfigs; do [[ -f $seconfig ]] && \ sed -i "s/SELINUX=\(enforcing\|permissive\)/SELINUX=disabled/" $seconfig && \ print "Change SELinux state to disabled in $seconfig" 1 done print "Please reboot the system! (cmd: reboot)" 1 exit fi }
На строке 476 строке эта функция запускается на выполнение. Надо закомментировать #disable_selinux функцию. Поясним почему ошибка возникла: в функции выше не существует проверки на существование Selinux в системе, а просто ею пользуется (if [[ $sestatus != "disabled" ]]; then).
Убрав из выполнения эту функцию, процесс установки происходит нормально. Осталось подождать установку и начать пользоваться.
Установка прошла успешно. Заходим в ./menu.sh и создаем pool. Далее стандартно переносим файлы сайта и разворачиваем их. Произошла следующая ошибка, после развертывания сайта мы не смогли его открыть в браузере - сайт не доступен.
Оказывается необходимо теперь самим открывать порты сайта.
iptables -I INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT iptables -I INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT iptables -I INPUT -p tcp --dport 5222 -m state --state NEW -j ACCEPT iptables -I INPUT -p tcp --dport 5223 -m state --state NEW -j ACCEPT iptables -I INPUT -p tcp --dport 8090 -m state --state NEW -j ACCEPT iptables -I INPUT -p tcp --dport 8891 -m state --state NEW -j ACCEPT service iptables save
Открыв порты и получив доступ к сайту, наблюдаем ошибку работы с mysql. Проблема в новом подключении с базой данных. В файле dbconn.php прописываем следующее:
define( "BX_USE_MYSQLI" , true);
В файле .settings.php заменяем строку, у нас 46:
'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
напоминаем, что перезапуск служб сервера в Centos 7 выполняются так:
systemctl restart httpd.service systemctl restart nginx systemctl restart mysqld
Свершилось второй раз, установка прошла успешно, пользуемся сайтом. Не забываем подключить Sphinx, curl и SSL. Если вы сочли информацию полезной, ставим просто лайк вк.
Техническая поддержка сайтаПосле обнаружения ошибки и описание проблемы в техподдержку 1С—Битрикс, получили ответ:
Автоматическое сообщение о создании заявки в разработку
На основе информации из данного обращения была создана заявка в отдел разработок.
"не ставится окружение без selinux"
Категория: Ошибки.
Номер обращения в разработку: 80839