Я пытаюсь определить наилучший способ заставить скрипт PHP определять, на каком сервере работает скрипт / сайт.
На данный момент у меня есть switch()
, который использует $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT']
, чтобы определить, на каком сервере он работает. Затем он устанавливает несколько путей, параметры подключения к БД, параметры SMTP и параметры отладки в зависимости от того, на каком сервере он находится. (Там могут быть дополнительные параметры в зависимости от потребностей сайта.)
Это означает, что я могу просто перенести сайт на любой из настроенных серверов без необходимости изменения какого-либо кода (в частности, конфигурации). Если это новый сервер, тогда я просто добавляю новый case
, и с этого момента он готов.
Мы выполнили загрузку файлов конфигурации на основе той же комбинации SERVER_NAME:SERVER_PORT
, но обнаружили, что это еще один файл, который вам нужно поддерживать, плюс мы не были уверены в скорости разбора INI-файлов (хотя для каждого сервер может быть таким же медленным).
Другая проблема, с которой мы сталкиваемся, - это когда сайт часто перемещается между двумя серверами, но мы используем одинаковые SERVER_NAME
и SERVER_PORT
на каждом. Это означает, что нам нужно временно прокомментировать один случай и убедиться, что он не попадет в репозиторий.
Другие идеи? Он должен быть доступен на всех серверах (иногда SERVER_NAME
и SERVER_PORT
нет). Также было бы хорошо, если бы он работал с CLI PHP.