Как эффективно различать тестовую и производственную площадку?
Иногда вам может понадобиться клонировать ваш производственный сайт на сайт TEST. После клонирования они выглядят идентичными, кроме URL.
Проконсультируйтесь с вашей рекомендуемой практикой , чтобы быстро и эффективно отличать внешний и конечный сайты вашего сайта TEST , чтобы PROD и TEST не могли быть случайно запутаны.
Цель:
- запретить пользователям вводить производственные данные на сайт TEST по ошибке
- запретить разработчикам (, тестировщикам и т. д.) выполнять тестирование на производственном сайте по ошибке
4 ответа
Это довольно технологичное решение, поскольку для его настройки требуется некоторый опыт настройки Apache. Преимущество в том, что вам не нужно взломать файлы в Joomla! самой установки.
В принципе, я хочу добавить несколько HTML на любую страницу (почти любую страницу).
Для этого я буду использовать модуль mod_substitute Apache . Сам модуль должен быть активирован (как правило, просто нужно удалить комментарий #) внутри httpd.conf
.
LoadModule substitute_module modules/mod_substitute.so
Далее в файле виртуальных хостов (httpd-vhosts.conf
):
<VirtualHost *>
DocumentRoot "C:\...."
ServerName joomla-development
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s|</body>|<div style='position:fixed; left:100px; top:50px; background-color:red'><h1>DEV WEBSITE</h1></div></body>|i"
<Directory "C:\....">
AllowOverride All
Require all granted
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
В основном с Substitute
Я заменяю тег </body>
на некоторый HTML. Таким образом, я стараюсь держаться подальше от любого запроса Ajax.
Конечный результат:
Практика, которой мы следуем, -
- Изменить название сайта в глобальной конфигурации на [TEST] оригинальное название.
- Измените конфигурацию электронной почты, чтобы указать на mailtrap.io
- Если тестовый сайт находится на одном сервере, измените данные базы данных.
- Измените интеграцию сторонних производителей на тестовую учетную запись (услуги за пределами joomla), например.
- Memcache или redis
- внешняя база данных /хранилище
- платежный шлюз,
- система рассылки новостей (mailchimp)
- учетная запись и домен CDN
- Учетная запись службы аналитики (google analytics, new-relic)
У меня такая же проблема с клиентами, иногда создавая контент на версию разработки, а не на производство. Для этого я использую следующее:
- Измените все имена базы данных и паролей
- Измените шаблон администратора с помощью
- Другой фон для экрана входа в систему
- Другой цвет для верхней панели
- Используйте модуль в видном положении на лицевой стороне, что ясно показывает, что это производственный сайт
- На некоторых сайтах я также заставляю логин видеть сайт разработки
Другой подход - позволить вашему браузеру добавлять стили CSS на ваш сайт.
Стильный плагин для браузера ( для Firefox и для Chrome ) предназначен для этой задачи , Он применяет дополнительный пользовательский CSS к каждой странице с заданным URL. Фактически вы определяете правила [URL] => [CSS].
Вышеприведенный пример: можно сделать, добавив сплошную или пунктирную линию влево
Красный = производство, Желтый = pre -prod., Зеленый = ТЕСТ, Синий = Обучение, Серый = DEV и т. д.
Преимущества:
- Может применяться к производственной площадке, которая обычно не очищается от наглядных пособий.
- Может быть временно отключен пользователем при необходимости (например, для снятия скриншотов).
- Универсальное решение может применяться к любому сайту или его части (на основе URL-адреса).
- Может использоваться без доступа администратора к данному веб-сайту.
- Настройка один раз, без обслуживания, если сайт изменяется.
Недостатки:
- В настоящее время ограничено Firefox и Chrome. (Все еще не проблема для групп DEV /TEST /Support, которые внутренне согласовали свой основной браузер.)
- Частное разделение ваших настроек стиля с другими пользователями требует немного больше работы. Для общедоступных веб-сайтов это не проблема - userstyles.org (плагин home) тысячи стилей уже существуют. Хотите видеть StackOverflow в черном или с меньшим пространством между разделами страницы?