比较2个的phpinfo设置(comparing 2 phpinfo settings)

2019-09-01 04:50发布

我想在两台不同的服务器,我的设置比较。 两者都共同主办,所以我不认为我有足够的访问做任何其他的方式,但与编程的phpinfo。 所以,现在,我有2个输出,我想他们无需手动检查数据进行比较。 是否有这种自动化的方式?

此外,作为一个方面,但相关的说明,我的phpinfo是php.ini文件的输出。 它是否正确?

Answer 1:

从PHP手册上phpinfo()

输出了大量的关于PHP的当前状态信息。 这包括关于PHP编译选项和扩展,PHP版本,服务器信息和环境(如果编译为一个模块),PHP环境,OS版本信息,路径,主机和配置选项,HTTP头本地值,以及PHP信息执照。

phpinfo()并不仅仅是打印出更多的php.ini设置。

如果你要处理php.ini手动设置,你可能想看看ini_get_all()而不是phpinfo() 。 这将返回所有配置值的数组。

你能的输出传送ini_get_all()通过使用例如从服务器A向服务器B var_export()创建PHP代码创建阵列,或serialize()然后使用array_diff_assoc()来比较设置。


export.php:(服务器A)

<?php echo serialize(ini_get_all()); ?>

compare.php:(服务器B)

<?php
function ini_flatten($config) {
    $flat = array();
    foreach ($config as $key => $info) {
        $flat[$key] = $info['local_value'];
    }
    return $flat;
}

function ini_diff($config1, $config2) {
    return array_diff_assoc(ini_flatten($config1), ini_flatten($config2));
}

$config1 = ini_get_all();

$export_script = 'http://server-a.example.com/export.php';
$config2 = unserialize(file_get_contents($export_script));

$diff = ini_diff($config1, $config2);
?>
<pre><?php print_r($diff) ?></pre>


Answer 2:

发现通过搜索,随后这个问题找到了一个脚本,不正是我想要的(我期望OP想太)。

https://github.com/brettalton/phpinfo-compare

假设你有卷曲的web服务器,只是把compare.php目录中,并改变$ SITE1和值$站点2到获取的phpinfo URL和你拥有属于自己的易于阅读,漂亮的打印差异。 见他的博客的例子- http://blog.brettalton.com/2012/08/09/phpinfo-compare/



Answer 3:

容易使用比较两个文件的php.ini parse_ini_file功能

示例代码片段

$firstIni  = parse_ini_file('/etc/php5/apache2/php.ini');
$secondIni  = parse_ini_file('/etc/php5/apache2/php.ini.save');
$firstIniDiff = array_diff($firstIni, $secondIni);
$secondIniDiff = array_diff($secondIni, $firstIni);

if (count($firstIniDiff) > 0) {
    echo '<h1>php.ini  changes</h1>';
    echo '<ol>';
    foreach ($firstIniDiff as $key => $val) {
        echo '<li> php.ini'.$key.': '.$val.' ----> php.ini.save :'.@$secondIniDiff[$key].'</li> ';
    }

    echo '</ol>';
}

if (count($secondIniDiff) > 0) {
     echo '<h1>php.ini.save  changes</h1>';
    echo '<ol>';
    foreach ($secondIniDiff as $key => $val) {
        echo '<li> php.ini'.$key.': '.$val.' ----> php.ini.save :'.@$firstIniDiff[$key].'</li> ';
    }

    echo '</ol>';
} 

产量



Answer 4:

如果你只是想比较两个文件的php.ini:

#!/usr/bin/php
<?php

function load($export_script) {
  $f1 = file($export_script);
  foreach($f1 as $line ) {
      if( $line[0] == ';' ) continue;
      if( $line[0] == '[' ) continue;
      if( trim($line) == "" ) continue;
      $var = explode( '=', $line);
      $config1[trim($var[0])] = trim($var[1]);
  }
  return $config1;
}
$export_script = 'php.ini';
$c1 = load($export_script);

$export_script = 'php52.ini';
$c2 = load($export_script);

foreach( $c1 as $key => $val ) {
  if( $val == $c2[$key] ) continue;
     echo $key.': '.$c1[$key].' // '.$c2[$key]."\n";
}
?>


Answer 5:

<?php var_dump(ini_get_all()); ?>

然后把输出并粘贴到https://www.diffnow.com或你最喜欢的DIFF-ER。



文章来源: comparing 2 phpinfo settings
标签: php settings