Hlavní navigace

Verze PHP v ČR

Jakub Vrána

Zajímalo mě, jaké je zastoupení PHP v ČR. Díky firmě Nexen jsou k dispozici celosvětové statistiky, detailní rozdělení po jednotlivých státech však chybí.

Metodika

Sběr dat byl realizován robotem, který se identifikoval jako Server version checker (http://php.vrana.cz/verze-php-v-cr.php?heslo=m7ezw846) ve dnech 5. – 6. 1. 2006. Protokolem HTTP byly navštíveny všechny domény s koncovkou .cz doplněné o začátek www.. Robot pokládal dotazy HEAD na titulní stránku, přesměrování nebylo sledováno:

<?php
$result = mysql_query("SELECT * FROM domeny ORDER BY id");
while ($row = mysql_fetch_assoc($result)) {
    $server = "NULL";
    $fp = @fsockopen("www.$row[domena]", 80, $errno, $errstr, 5);
    if ($fp) {
        $server = "''";
        fwrite($fp, "HEAD / HTTP/1.1\r\n");
        fwrite($fp, "Host: www.$row[domena]\r\n");
        fwrite($fp, "User-Agent: Server version checker (http://php.vrana.cz/verze-php-v-cr.php?heslo=m7ezw846)\r\n");
        fwrite($fp, "Connection: close\r\n");
        fwrite($fp, "\r\n");
        while (($s = fgets($fp))) {
            if (eregi("^Server:(.*)", $s, $matches)) {
                $server = "'" . addslashes(trim($matches[1])) . "'";
                break;
            }
        }
        fclose($fp);
    }
    mysql_query("UPDATE domeny SET server = $server WHERE id = $row[id]");
}
mysql_free_result($result);
?> 

Hodnota hlavičky přesahující jeden řádek bohužel nebyla zohledněna, výsledky by to však myslím příliš neovlivnilo.

Webové servery

Webové servery v ČR
celkem 206244 100 %
nedostupné 15124 7 %
neuvedeno 7591 4 %
Apache 139340 68 %
Apache 1 48098 23 %
Apache 2 27992 14 %
IIS 41035 20 %
celkem PHP 50702 25 %

Serverům v české doméně jasně dominuje Apache, stále převládá verze 1, i když téměř u poloviny Apache serverů není verze uvedena. Pevné postavení má i MS Internet Information Server, všechny ostatní servery nemají dohromady ani 2 %. Jako nedostupné jsou uvedeny servery, ke kterým se nepodařilo připojit, neuvedeno zahrnuje servery, které hlavičku Server neposlaly.

<?php
$celkem = mysql_result(mysql_query("SELECT COUNT(*) FROM domeny"), 0);
echo "<tr><th>celkem</th><td>$celkem</td><td>100 %</td></tr>\n";
foreach (array(
    "nedostupné" => "IS NULL",
    "neuvedeno" => "= ''",
    "Apache" => "LIKE '%Apache%'",
    "Apache 1" => "LIKE '%Apache/1%'",
    "Apache 2" => "LIKE '%Apache/2%'",
    "IIS" => "LIKE '%IIS%'",
    "celkem PHP" => "LIKE '%PHP%'",
) as $key => $val) {
    $pocet = mysql_result(mysql_query("SELECT COUNT(*) FROM domeny WHERE server $val"), 0);
    echo "<tr><th>$key</th><td>$pocet</td><td>" . round(100 * $pocet / $celkem) . " %</td></tr>\n";
}
?> 

PHP je k dispozici na čtvrtině serverů, ale vzhledem k nepoměru k výsledkům Apache usuzuji, že na spoustě dalších serverů bude přítomnost PHP skryta např. pomocí direktivy expose_php. Možná by stálo za to pokusit se odhadnout přítomnost PHP ještě nějak jinak, např. existencí odkazů na soubory s koncovkou .php. Firmě Nexen vyšlo pro doménu .cz pokrytí 39,79 % přesto, že používají obdobnou metodiku. Jediné vysvětlení, které mě napadá, je jiný výběr domén.

Verze PHP

PHP verze
Verze PHP v ČR
PHP 50702 100 %
PHP 3 690 1 %
PHP 4.0 301 1 %
PHP 4.1 5116 10 %
PHP 4.2 851 2 %
PHP 4.3 27851 55 %
PHP 4.4 12145 24 %
PHP 5.0 3553 7 %
PHP 5.1 521 1 %

PHP 4 má pořád jasnou většinu, i když je možné spekulovat s tím, že svědomití správci instalující aktuální verze mají zároveň přítomnost PHP ukrytou, na obhájení mizivého zastoupení verze 5.1 to ale stačí jen stěží (i když např. server PHP triky je přesně příklad tohoto stavu).

<?php
$celkem = mysql_result(mysql_query("SELECT COUNT(*) FROM domeny WHERE server LIKE '%PHP%'"), 0);
echo "<tr><th>PHP</th><td>$celkem</td><td>100 %</td></tr>\n";
foreach (array("3", "4.0", "4.1", "4.2", "4.3", "4.4", "5.0", "5.1") as $val) {
    $pocet = mysql_result(mysql_query("SELECT COUNT(*) FROM domeny WHERE server LIKE '%PHP/$val%'"), 0);
    echo "<tr><th>PHP $val</th><td>$pocet</td><td>" . round(100 * $pocet / $celkem) . " %</td></tr>\n";
}
?> 

Součet jednotlivých verzí je větší než celkové zastoupení PHP kvůli serverům, které používají a uvádějí více verzí PHP zároveň.

Závěr

Zastoupení PHP 5 je i rok a půl po uvedení této verze mizivé, jasnou většinu má v doméně .cz stále verze PHP 4 a nic nenasvědčuje tomu, že by se do budoucna měla situace rychle změnit.

Zdrojová data mám ještě uschovaná, takže pokud by vás zajímaly další informace, neváhejte se zeptat v diskuzi.

Našli jste v článku chybu?
16. 1. 2006 3:02
Jde o to, že test nezkoumá, kolik hostingů nabízí PHP5, ale kolik webů používá PHP5. Tedy poptávku, nikoliv nabídku. A s tím, že téměř každý hosting podporuje PHP 5.1 jste hodně přestřelil, nechtěl jste říct "téměř žádný"?
16. 1. 2006 10:28
uživatel si přál zůstat v anonymitě
oprava: me se PHP hlasilo v hlavicce X-Powered, v hlavicce Server o nem ani zminka