Как разграничивать одинаковые хосты между локалью и удалённым сервером?
Веду разработку над одним веб-ресурсом. Исходный код разрабатывается и тестируется локально, затем пушится на удалённый сервер, который под открытым доменом доступен для соединения всем. Для корректного тестирования в windows хостах прописал альтернативу localhost в виде нужного мне домена. Однако из-за этого возникает такая проблема, что в моменте не всегда понятно к чему именно мы подключены - к локали, или к public версии, они могут между собой переключатся после переходов. В качестве универсального решение использую простое отключение инета на время локальных тестов, но осознаю, что это не слишком элегантное решение. Есть ли решение получше? Например как-нибудь блокировать временно удалённый домен, на этапе тестирования? Или может сразу весь айпишник банить?
Дополнительно:
Ответы:
используйте связку
site.ru
site.local
первый боевой
второй ваш тестовый
- Боюсь не получится изменить домен. Там достаточно много зависимостей в коде...
Есть ли альтернатива? - Davidaa_WoW, эта самая зависимость должна быть в переменной и вынесена в конфиг.
- Davidaa_WoW, wordpress что ли? Если нет, у меня для вас плохие новости...
Обычно всегда есть глобальная переменная в ENV , которая содержит идентификатор контура - local, dev, prod, etc. Если у вас такой нет - добавьте и при деплое на сервер выставляйте в значение prod
В зависимости от нее (например, если не prod) можно показывать сверху большую плашку.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для разграничения одинаковых хостов между локальным и удаленным сервером можно использовать различные подходы в зависимости от конкретных требований и условий проекта. Ниже приведены несколько способов, которые могут быть полезны в данной ситуации:
1. Использование виртуальных хостов (Virtual Hosts):
- На локальной машине можно настроить виртуальные хосты в файле конфигурации веб-сервера (например, Apache или Nginx).
- Для каждого хоста создается отдельная запись, указывающая на директорию с файлами проекта.
- Таким образом, можно легко различать локальные и удаленные хосты по настройкам виртуальных хостов.
2. Использование переменных окружения:
- В конфигурации проекта можно определить переменные окружения, которые будут отличаться для локальной и удаленной среды.
- Например, можно задать переменную ENVIRONMENT со значением "local" или "remote" и использовать ее в коде для определения текущей среды.
- Таким образом, можно управлять настройками проекта в зависимости от среды выполнения.
3. Использование конфигурационных файлов:
- Создание отдельных конфигурационных файлов для локальной и удаленной среды.
- В зависимости от среды выполнения, проект будет загружать соответствующий конфигурационный файл.
- Это позволяет легко изменять настройки проекта и подключаться к различным базам данных или API в зависимости от среды.
Пример использования переменных окружения в PHP:
if ($_SERVER['ENVIRONMENT'] === 'local') { // Локальная среда $dbHost = 'localhost'; $dbUser = 'root'; $dbPass = 'password'; } elseif ($_SERVER['ENVIRONMENT'] === 'remote') { // Удаленная среда $dbHost = 'remotehost'; $dbUser = 'remoteuser'; $dbPass = 'remotepassword'; }
Эти подходы помогут вам эффективно управлять различиями между локальной и удаленной средой, обеспечивая безопасность и удобство разработки и тестирования вашего проекта.