0

我在具有多个域的服务器上。我想找出php.ini每个域中加载了哪些内容。
我手头有一些不同的工具。也许他们让我更接近我想要的。

  1. 一个简单php -i|grep 'Loaded Configuration File'的返回系统php.ini
  2. find /home/ -xdev -name php.ini 2>/dev/null返回php.ini属于所有托管域的所有内容。
  3. virtualmin list-php-directories --domain this.is.a.domain --multiline返回激活了特定版本的 PHP 的所有目录。

一些示例输出:
1. 返回:

Loaded Configuration File => /etc/php/7.0/cli/php.ini

这显然是php.ini由主机操作系统加载的。
2. 退货:

...
/home/domain.x.com/etc/php5/php.ini
/home/domain.x.com/etc/php7.0/php.ini
/home/domain.x.com/etc/php.ini
/home/domain.y.com/etc/php7.0/php.ini
/home/domain.y.com/etc/php.ini
...

这是php.ini这些域中所有内容的完整列表。
3. 退货:

/home/domain.x.com/public_html
  PHP version: 7.0
  Full version: 7.0.8
  Execution mode: fcgid
  Web root directory: Yes

总是有一个php.iniin /home/domain.foo.com/etc/。那是他加载的那个吗?还是我必须检查virtualmin加载了哪个版本的 PHP 才能遍历到相应的子目录?有完全不同的方法吗?

注意:我手头只有命令行,并且只有一个用户用于监控目的。此外,该过程应该是非侵入性的。所以我不认为我可以在这些域中放置一些 php 文件来通过浏览器获得答案。信息是否可能存储在我可以解析的某个文件中?

4

1 回答 1

1

仅从命令行,您需要:

  1. 安装命令行 Web 浏览器,或者您可以使用 wget 访问脚本并将响应保存在文件中。
  2. <?php phpinfo();在所有域中都有一个 php 文件
  3. 确保所有域都能够加载到网络服务器上,或者网络服务器可以访问互联网以直接从网络加载域。最好将所有域映射到主机文件中的 localhost。
  4. 在命令行浏览器中打开每个域的 phpinfo 脚本并检查加载的配置文件,或者如果您选择使用 wget,只需将输出保存到文件并检查文件的内容,您将获得加载的配置文件。
于 2017-04-10T12:28:05.700 回答