PHP: изменение кода, если домен является средой тестирования

#php #server #digital-ocean

#php #сервер #digital-ocean

Вопрос:

У меня есть 2 капли на digitalocean. Дроплет 1: Живая среда. Дроплет 2: тестовая среда.

Я часто делаю снимок данного droplet и перестраиваю другой droplet с этим изображением (чтобы убедиться, что оба сервера настроены одинаково). Затем я подключусь по FTP к тестовому серверу и внесу соответствующие изменения, чтобы заблокировать домен.

Проблема: мне нужно менять некоторый php-код каждый раз, когда я делаю это, например, меняя конечную точку api на часть счетчика тестирования. и т.д.

Я подумал, что мог бы написать какой-нибудь код, который автоматически изменится на test / live на основе домена..

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

Я делаю это неправильно?

Комментарии:

1. Изучите концепцию «переменных среды».

2. Это звучит как отличное решение. Другое дело, нормально ли иметь 1 ssl-сертификат, который включает оба домена. Это было бы на обоих серверах, но в данный момент времени использовался бы только 1 домен

3. Это немного зависит от вас. Если вы используете многодоменный сертификат, который имеет www.example.com и super-secret-subdomain.example.com , кто-то, просматривающий сертификат, может найти этот секретный поддомен. Если вас не волнует, что кто-то знает домен вашего промежуточного / тестируемого сайта (или защищен ли он каким-либо другим способом), не стесняйтесь. В противном случае вам могут понадобиться два отдельных сертификата (или подстановочный знак, который выдает меньше).

4. Находится ли он на статическом IP? Вы могли бы ограничить на основе IP-адреса сервера.

5. @B3none это один из способов сделать это, однако я думаю, что было бы лучше сделать это на базе домена, на случай, если у вас есть несколько серверов по всему миру с балансировщиком нагрузки

Ответ №1:

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

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