Как разграничивать одинаковые хосты между локалью и удалённым сервером?

Ссылка скопирована
1 ответ

Веду разработку над одним веб-ресурсом. Исходный код разрабатывается и тестируется локально, затем пушится на удалённый сервер, который под открытым доменом доступен для соединения всем. Для корректного тестирования в windows хостах прописал альтернативу localhost в виде нужного мне домена. Однако из-за этого возникает такая проблема, что в моменте не всегда понятно к чему именно мы подключены - к локали, или к public версии, они могут между собой переключатся после переходов. В качестве универсального решение использую простое отключение инета на время локальных тестов, но осознаю, что это не слишком элегантное решение. Есть ли решение получше? Например как-нибудь блокировать временно удалённый домен, на этапе тестирования? Или может сразу весь айпишник банить?

Дополнительно:

Ответы:

используйте связку

site.ru
site.local

первый боевой
второй ваш тестовый

  • Боюсь не получится изменить домен. Там достаточно много зависимостей в коде...
    Есть ли альтернатива?
  • Davidaa_WoW, эта самая зависимость должна быть в переменной и вынесена в конфиг.
  • Davidaa_WoW, wordpress что ли? Если нет, у меня для вас плохие новости...

Обычно всегда есть глобальная переменная в ENV , которая содержит идентификатор контура - local, dev, prod, etc. Если у вас такой нет - добавьте и при деплое на сервер выставляйте в значение prod

В зависимости от нее (например, если не prod) можно показывать сверху большую плашку.

Нужно решить такую задачу?

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

Заказать помощь
Лучший ответ
1
Роман IT Ответ

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

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';
}

if ($_SERVER['ENVIRONMENT'] === 'local') { // Локальная среда $dbHost = 'localhost'; $dbUser = 'root'; $dbPass = 'password'; } elseif ($_SERVER['ENVIRONMENT'] === 'remote') { // Удаленная среда $dbHost = 'remotehost'; $dbUser = 'remoteuser'; $dbPass = 'remotepassword'; }

Эти подходы помогут вам эффективно управлять различиями между локальной и удаленной средой, обеспечивая безопасность и удобство разработки и тестирования вашего проекта.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно