Методология разработки сайтов на Битрикс. На правах идеи.

752  |  3

Данная методология разработки на битрикс не является каким-то открытием. Возможно не будет удобна для всех и каждого и не решит большинства проблем. Я использую ее относительно не давно, пока полностью устраивает. Но возможно, позже, выведу что-нибудь новое. В общем бета тест методологии- если можно так выразиться.

Как я работал раньше. И почему меня это не устраивало.

Все было до ужаса просто: арендовался виртуальный сервер, на него ставилось Битрикс веб окружение, устанавливался Битрикс и вся работа шла прямо на сервере по SFTP. При необходимости, я делал полную резервную копию сайта и разворачивал ее на локальном сервере.

Как правило параллельно с разработкой сайта, контент-менеджер клиента или мой контент-менеджер (это уже по финансовой договоренности), набивал контент. На это время, пока сайт находился у меня, просил клиента ни чего не делать на сайте. Так как по мимо работы с файлами, часто приходится вносить изменения в базу данных: создавать инфоблоки для слайдеров, для хранение форм, настройки рекламы итд.

Само собой, если я, после локальной разработки, разворачиваю копию на сервере- то затираю и все изменения внесенные контент-менеджером.

В общем, это все сильно затягивало процесс разработки. Казалось бы: достаточно, просто не разрабатывать сайт локально, а постоянно работать на сервере. Но на сервере не возможно работать с sass- не устроив помойку из css в шаблоне сайта и не увеличивая нагрузку на пустом месте.

Ведь при использовании sass приходится хранить и самое печальное, для производительности сайта, подключать все стили одним разом. Не зависимо от того, нужны ли они в конкретном разделе сайта. В общем не буду размусоливать данную проблему- думаю она очевидна.

Еще очевиднее, данная проблема, становится при редизайне давно работающего сайта, там в базу данных идет постоянная запись- покупки, заказы, регистрации пользователей, комментарии

Решение лежало на поверхности

Итак: очевидное решение это хранить файлы сайта в двух местах- на сервере и у себя локально, но использовать общую базу данных. То есть: настраиваем веб сервер на своем локальном компьютере, разворачиваем резервную копию сайта с сервера. На своей установке подключаемся удаленно к базе данных на сервере и все.

Теперь, на обоих установках, базы данных полностью синхронизированы. Изменения вносимые на сервере сразу появляются на локальной версии, в свою очередь изменения локальные появляются на сервере. Остается только, периодически (тут уже каждый выбирает свою периодичность) подгружать измененные файлы с локальной версии, по большей сути только папку local- так как в ней все шаблоны и самописные компоненты/модули. И структуру сайта- если в нее, вообще, вносились изменения. Данная процедура- проходит достаточно быстро (пока в ручную)

Как подключиться к Mysql базе на сервере с локальной версии сайта

Самое главное это подключиться к Mysql удаленно, по умолчанию, это не возможно сделать так как в "Битрикс веб окружение", доступ к базе извне закрыт.

Подключаемся к серверу через терминал и вводим следующие команды:

Заходим в управлением mysql

#mysql
>use mysql;

Создаем пользователя localremote с очень надежным паролем

>insert into user set Host='%',User='localremote',Password=PASSWORD('СЮДА_ОЧЕНЬ_НАДЕЖНЫЙ_ПАРОЛЬ');

Даем ему полные привелегии на управление

>grant all on *.* to 'localremote'@'%';

У пользователя root базы данных, по умолчанию пустой пароль. Так как планируем открыть доступ извне, его нужно тоже надежно запаролить

>update user set password=PASSWORD('СЮДА_ОЧЕНЬ_НАДЕЖНЫЙ_ПАРОЛЬ_root-a') where user='root';

В IPTABLES открывам доступ к порту на котором работает Mysql (команды выполняем по очереди)

iptables -I INPUT -p tcp --dport 3306 -m state --state NEW -j ACCEPT
service iptables save
/etc/init.d/iptables restart

Открываем на редактирование файл /etc/my.cnf любым удобным способом (через nano, mc, просто через SFTP) и после строчки port = 3306, вносим еще одну

bind-address = 0.0.0.0

И перезапускаем mysql (выполнять поочереди)

service mysqld stop
service mysqld start

Подключаемся к базе с локальной установки

После всего проделанного, осталось указать локальной уставновке, где же находится база данных. Для этого открываем файлы .settings.php и dbconn.php и в секциях подключения к базе данных, вместо localhost указываем "IP_сервера:3306", пользователь localremote, пароль - тот пароль котрый для него придумали, база данных- таже самая, что на сервере

И не большое предупреждение

В принципе все должно заработать, проверено. Однако все манипуляции вы производите на свой страх и риск, я не несу ответсвенности за ваши действия. Предварительно сделайте бекап всех данных. После окончания разработки, закройте доступ извне к базе данных:

В my.cnf замениете bind-address = 127.0.0.1
Закройте порт 3306 в iptables

Этого достаточно, но для полного феншуя, удалите пользователя localremote

Расскажи друзьям-то:
Уважаемый читатель! В связи с участившимся спамом в комментариях, возможность писать доступна только для зарегистрированных пользователей
Зарегистрироваться Войти Напомнить пароль
Или войти через социальную сеть:
Никита
Попробуй php storm) Тебе понравится. ;)
Немного тяжеловат, но умеет все.
Михаил Базаров
Цитата
Никита написал:
Попробуй php storm) Тебе понравится.
Немного тяжеловат, но умеет все.
Тут немножко не про то) А среда разработки....тут на вкус и цвет
Никита
Цитата
Михаил Базаров пишет:
Цитата
Никита написал:
Попробуй php storm) Тебе понравится.
Немного тяжеловат, но умеет все.
Тут немножко не про то) А среда разработки....тут на вкус и цвет
Я тебе про то? что он и к базе подключится, и подгружать изменения будет :)

© 2011—2016 Частный вебмастер: ИП Базаров, ОГРНИП: 315784700173692. Работает на 1С-Битрикс.
Копирование материалов запрещено: "ГК РФ, часть 4, раздел VII: Права на результаты интеллектуальной деятельности".

Информация размещенная на сайте, не является публичной офертой. Политика конфеденциальности
x
Как к Вам обращаться? *
Ваша электронная почта: *
Доп. материалы (логотип, тех. задание):
 
Обзор
Текст сообщения: