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