PHP: 一致识别本地服务器

PHP: Identifying the local server consistently

我有一个要部署到多个服务器的代码库。

我需要确定代码 运行 在哪个服务器上,以便为数据库等使用正确的配置信息。

我最初尝试使用 DOCUMENT_ROOT 并检查帐户名。

if (strpos($_SERVER['DOCUMENT_ROOT'], '/var/www/vhosts/SOMETHING.com/') !== false)
{ //is a specific server }

这很好用,但是我发现当我的 cron 作业执行时 DOCUMENT_ROOT 是空的,当从 Plesk 启动时。

是否有更好的方法来识别服务器?

我不希望有特定于服务器的配置文件,因为确保所有文件在所有服务器上都相同的 FTP 同步软件不支持排除某些文件。

另外,服务器可能 运行 不同的控制面板和设置,所以我希望尽可能通用。

您可以在设置 cron 作业时将服务器名称作为命令行参数传递。

我通过 cron 发现 $_SERVER['HOME'] 与 DOCUMENT_ROOT 相同。

这对 cron 的 plesk 和 cpanel 实现同样有效。

我相信这比通过 cron 命令传递参数要好,因为我仍然需要对其进行测试,并且还必须为每个服务器设置 cron,而不是在脚本中处理它。