如何使用php查找已安装的linux发行版?

如何使用php查找已安装的linux发行版?,php,ubuntu,Php,Ubuntu,有没有办法找出哪个版本的Ubuntu安装了php 在控制台上,我将使用 cat /etc/lsb-release 例如: DISTRIB_ID=Ubuntu DISTRIB_RELEASE=13.10 DISTRIB_CODENAME=saucy DISTRIB_DESCRIPTION="Ubuntu 13.10" $\u服务器[]可以提供帮助 在我的mac电脑上我有 $_SERVER["_system_arch"] => x86_64 $_SERVER["_system_versi

有没有办法找出哪个版本的Ubuntu安装了php

在控制台上,我将使用

cat /etc/lsb-release 
例如:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=13.10
DISTRIB_CODENAME=saucy
DISTRIB_DESCRIPTION="Ubuntu 13.10"

$\u服务器[]可以提供帮助

在我的mac电脑上我有

$_SERVER["_system_arch"] => x86_64
$_SERVER["_system_version"] => 10.9
我建议您阅读/etc/lsb发行版中的文件


您可以找到更多信息,$\u服务器[]可以提供帮助

在我的mac电脑上我有

$_SERVER["_system_arch"] => x86_64
$_SERVER["_system_version"] => 10.9
我建议您阅读/etc/lsb发行版中的文件


您可以找到更多信息

您可以解析/etc/lsb release以获取信息

<?php
$release_info = parse_ini_file("/etc/lsb-release");
echo $release_info["DISTRIB_ID"];
echo $release_info["DISTRIB_RELEASE"];
echo $release_info["DISTRIB_DESCRIPTION"];
?>

您可以解析/etc/lsb版本以获取信息

<?php
$release_info = parse_ini_file("/etc/lsb-release");
echo $release_info["DISTRIB_ID"];
echo $release_info["DISTRIB_RELEASE"];
echo $release_info["DISTRIB_DESCRIPTION"];
?>

这将收集大量有用的数据:

function get_release_info(){
    if(!$r = @parse_ini_file("/etc/lsb-release")){
        if(!$r = @parse_ini_file("/etc/os-release")){
            $r = @parse_ini_file("/etc/redhat-release");
        }
    }
    /*for ex:
        $r["DISTRIB_ID"]=Ubuntu
        $r["DISTRIB_RELEASE"]=13.10
        $r["DISTRIB_CODENAME"]=saucy
        $r["DISTRIB_DESCRIPTION"]="Ubuntu 13.10"
    */
    $r["debian_version"]=trim(@file_get_contents("/etc/debian_version")); // for ex. "wheezy/sid"
    $r["PHP_OS"]=PHP_OS;
    $r["SERVER_SOFTWARE"]=@$_SERVER["SERVER_SOFTWARE"];
    $r["osx_system_arch"]=@$_SERVER["_system_arch"];// Mac-specific for ex.=> x86_64
    $r["osx_system_version"]=@$_SERVER["_system_version"];// Mac-specific for ex.=> 10.9
    /**
        'a': This is the default. Contains all modes in the sequence "s n r v m".
        's': Operating system name. eg. FreeBSD.
        'n': Host name. eg. localhost.example.com.
        'r': Release name. eg. 5.1.2-RELEASE.
        'v': Version information. Varies a lot between operating systems.
        'm': Machine type. eg. i386.
    */
    $r["kernel_release_name"]=php_uname('r');
    $r["os_name"]=php_uname('s');
    $r["uname_version_info"]=php_uname('v');
    $r["machine_type"]=php_uname('m');
    $r["php_uname"]=php_uname();

    if(stristr($r["uname_version_info"],"Ubuntu")){
        // source: http://wiki.ubuntuusers.de/Kernel/Linux-Versionsnummern#Versionsnummern-herausfinden
        $distribution["4.10"]=array("Warty Warthog", "2.6.8");
        $distribution["5.04"]=array("Hoary Hedgehog", "2.6.10");
        $distribution["5.10"]=array("Breezy Badger", "2.6.12");
        $distribution["6.06"]=array("Dapper Drake", "2.6.15");
        $distribution["6.10"]=array("Edgy Eft", "2.6.17");
        $distribution["7.04"]=array("Feisty Fawn", "2.6.20");
        $distribution["7.10"]=array("Gutsy Gibbon", "2.6.22");
        $distribution["8.04"]=array("Hardy Heron", "2.6.24");
        $distribution["8.10"]=array("Intrepid Ibex", "2.6.27");
        $distribution["9.04"]=array("Jaunty Jackalope", "2.6.28");
        $distribution["9.10"]=array("Karmic Koala", "2.6.31");
        $distribution["10.04"]=array("Lucid Lynx", "2.6.32");
        $distribution["10.10"]=array("Maverick Meerkat", "2.6.35");
        $distribution["11.04"]=array("Natty Narwhal", "2.6.38");
        $distribution["11.10"]=array("Oneiric Ocelot", "3.0");
        $distribution["12.04"]=array("Precise Pangolin", "3.2"); #Backports: 3.5, 3.8, 3.11, 3.13
        $distribution["12.10"]=array("Quantal Quetzal", "3.5");
        $distribution["13.04"]=array("Raring Ringtail", "3.8");
        $distribution["13.10"]=array("Saucy Salamander", "3.11");
        $distribution["14.04"]=array("Trusty Tahr", "3.13"); # Backports 3.16, 3.19
        $distribution["14.10"]=array("Utopic Unicorn", "3.16");
        $distribution["15.04"]=array("Vivid Vervet", "3.19");
        $distribution["15.10"]=array("Wily Werewolf", "4.2");
        $distribution["16.04"]=array("Xenial Xerus", "4.4");

        foreach($distribution as $distribution=>$name_kernel){
            list($name,$kernel)=$name_kernel;
            if(version_compare($r["kernel_release_name"],$kernel,'>=')) {
                $r["ubuntu_distribution_by_kernel"]=$distribution;
                $r["ubuntu_distribution_name_by_kernel"]=$name;
                $r["ubuntu_distribution_shortname_by_kernel"]=strtolower(preg_replace("/ .*$/","", $name));
            }
        }
        if(empty($r["DISTRIB_RELEASE"]) and !empty($r["ubuntu_distribution_by_kernel"])) {
            $r["DISTRIB_RELEASE"]=$r["ubuntu_distribution_by_kernel"];
            $r["DISTRIB_DESCRIPTION"]="Ubuntu ".$r["ubuntu_distribution_by_kernel"];
            $r["DISTRIB_CODENAME"]=$r["ubuntu_distribution_shortname_by_kernel"];
        }
    }
    return $r;
}

这将收集大量有用的数据:

function get_release_info(){
    if(!$r = @parse_ini_file("/etc/lsb-release")){
        if(!$r = @parse_ini_file("/etc/os-release")){
            $r = @parse_ini_file("/etc/redhat-release");
        }
    }
    /*for ex:
        $r["DISTRIB_ID"]=Ubuntu
        $r["DISTRIB_RELEASE"]=13.10
        $r["DISTRIB_CODENAME"]=saucy
        $r["DISTRIB_DESCRIPTION"]="Ubuntu 13.10"
    */
    $r["debian_version"]=trim(@file_get_contents("/etc/debian_version")); // for ex. "wheezy/sid"
    $r["PHP_OS"]=PHP_OS;
    $r["SERVER_SOFTWARE"]=@$_SERVER["SERVER_SOFTWARE"];
    $r["osx_system_arch"]=@$_SERVER["_system_arch"];// Mac-specific for ex.=> x86_64
    $r["osx_system_version"]=@$_SERVER["_system_version"];// Mac-specific for ex.=> 10.9
    /**
        'a': This is the default. Contains all modes in the sequence "s n r v m".
        's': Operating system name. eg. FreeBSD.
        'n': Host name. eg. localhost.example.com.
        'r': Release name. eg. 5.1.2-RELEASE.
        'v': Version information. Varies a lot between operating systems.
        'm': Machine type. eg. i386.
    */
    $r["kernel_release_name"]=php_uname('r');
    $r["os_name"]=php_uname('s');
    $r["uname_version_info"]=php_uname('v');
    $r["machine_type"]=php_uname('m');
    $r["php_uname"]=php_uname();

    if(stristr($r["uname_version_info"],"Ubuntu")){
        // source: http://wiki.ubuntuusers.de/Kernel/Linux-Versionsnummern#Versionsnummern-herausfinden
        $distribution["4.10"]=array("Warty Warthog", "2.6.8");
        $distribution["5.04"]=array("Hoary Hedgehog", "2.6.10");
        $distribution["5.10"]=array("Breezy Badger", "2.6.12");
        $distribution["6.06"]=array("Dapper Drake", "2.6.15");
        $distribution["6.10"]=array("Edgy Eft", "2.6.17");
        $distribution["7.04"]=array("Feisty Fawn", "2.6.20");
        $distribution["7.10"]=array("Gutsy Gibbon", "2.6.22");
        $distribution["8.04"]=array("Hardy Heron", "2.6.24");
        $distribution["8.10"]=array("Intrepid Ibex", "2.6.27");
        $distribution["9.04"]=array("Jaunty Jackalope", "2.6.28");
        $distribution["9.10"]=array("Karmic Koala", "2.6.31");
        $distribution["10.04"]=array("Lucid Lynx", "2.6.32");
        $distribution["10.10"]=array("Maverick Meerkat", "2.6.35");
        $distribution["11.04"]=array("Natty Narwhal", "2.6.38");
        $distribution["11.10"]=array("Oneiric Ocelot", "3.0");
        $distribution["12.04"]=array("Precise Pangolin", "3.2"); #Backports: 3.5, 3.8, 3.11, 3.13
        $distribution["12.10"]=array("Quantal Quetzal", "3.5");
        $distribution["13.04"]=array("Raring Ringtail", "3.8");
        $distribution["13.10"]=array("Saucy Salamander", "3.11");
        $distribution["14.04"]=array("Trusty Tahr", "3.13"); # Backports 3.16, 3.19
        $distribution["14.10"]=array("Utopic Unicorn", "3.16");
        $distribution["15.04"]=array("Vivid Vervet", "3.19");
        $distribution["15.10"]=array("Wily Werewolf", "4.2");
        $distribution["16.04"]=array("Xenial Xerus", "4.4");

        foreach($distribution as $distribution=>$name_kernel){
            list($name,$kernel)=$name_kernel;
            if(version_compare($r["kernel_release_name"],$kernel,'>=')) {
                $r["ubuntu_distribution_by_kernel"]=$distribution;
                $r["ubuntu_distribution_name_by_kernel"]=$name;
                $r["ubuntu_distribution_shortname_by_kernel"]=strtolower(preg_replace("/ .*$/","", $name));
            }
        }
        if(empty($r["DISTRIB_RELEASE"]) and !empty($r["ubuntu_distribution_by_kernel"])) {
            $r["DISTRIB_RELEASE"]=$r["ubuntu_distribution_by_kernel"];
            $r["DISTRIB_DESCRIPTION"]="Ubuntu ".$r["ubuntu_distribution_by_kernel"];
            $r["DISTRIB_CODENAME"]=$r["ubuntu_distribution_shortname_by_kernel"];
        }
    }
    return $r;
}

那么您想编写一个PHP代码段来报告运行它的机器的操作系统详细信息吗?我做对了吗?请看。我不确定它是否会向您显示准确的Ubuntu版本,但您可能会根据内核版本(
php_uname('r');
)来确定它。所以您想编写一个php代码片段,报告运行它的机器的操作系统详细信息吗?我做对了吗?请看。我不确定它是否会向您展示准确的Ubuntu版本,但您可能会根据内核版本(
php_uname('r');
)来找到它。这两个版本都必须是特定于Mac的,因为Ubuntu服务器都不存在,也没有在您列出的链接中列出。$\u服务器是一个php数组,根本不特定于Mac。是的,但是Linux上的$\u服务器阵列不包含
“\u system\u arch”
“\u system\u version”
,这两个都必须是特定于Mac的,因为Ubuntu服务器都不存在,也不在您列出的链接中列出。$\u服务器是PHP阵列,根本不特定于Mac。是的,但Linux上的$\u服务器阵列不包含
“\u system\u arch”
“\u system\u version”
这比
php\u uname
好得多,只要没有open\u basedir限制。这比
php\u uname
好得多,只要没有open\u basedir限制。如果更好,那就更好了