Maison  >  Article  >  développement back-end  >  Comment installer PHP7.0 dans un environnement Linux

Comment installer PHP7.0 dans un environnement Linux

醉折花枝作酒筹
醉折花枝作酒筹avant
2021-05-20 09:27:001755parcourir

Cet article vous présentera comment installer PHP7.0 dans un environnement Linux. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Comment installer PHP7.0 dans un environnement Linux

Comparaison entre PHP7 et HHVM

Les performances de PHP7 dans des scénarios réels sont en effet équivalentes à HHVM, et dépassent même HHVM dans certains scénarios. Le fonctionnement et la maintenance de HHVM sont complexes et il s'agit d'un modèle multithread. Cela signifie que si un thread provoque un crash, l'ensemble du service se bloquera et ne redémarrera pas automatiquement. De plus, il utilise JIT, ce qui signifie qu'il doit être réchauffé après le redémarrage. Sans préchauffage, les performances seront pires. De plus, le modèle multithread est difficile à déboguer, ce qui est très inadapté aux services Web qui recherchent la stabilité.

Pour les versions antérieures à Nginx et PHP7.0, merci de vous référer à cet article : Installation et débogage de Nginx et installation de PHP dans un environnement Linux

La version officielle de PHP7.0 est sortie vers novembre 2015, il s'agit actuellement de la version PHP7.0.2. J'ai commencé avec la première version bêta de php7 en août 2015, et maintenant la version officielle est publiée.

Version Linux : CentOS 6.6 64 bits

Version Nginx : nginx1.8.0

Version php : php-7.0.2

Télécharger

# wget  http://php.net/get/php-7.0.2.tar.gz/from/a/mirror

Il est recommandé de vérifier le fichier d'aide à l'installation avant l'installation INSTALL

Décompressez l'installation

# tar zxvf php-7.0.2.tar.gz
# cd php-7.0.2

Vérifiez d'abord l'aide à l'installation

# ./configure   --help
# ./configure --prefix=/usr/local/php \
 --with-curl \
 --with-freetype-dir \
 --with-gd \
 --with-gettext \
 --with-iconv-dir \
 --with-kerberos \
 --with-libdir=lib64 \
 --with-libxml-dir \
 --with-mysqli \
 --with-openssl \
 --with-pcre-regex \
 --with-pdo-mysql \
 --with-pdo-sqlite \
 --with-pear \
 --with-png-dir \
 --with-xmlrpc \
 --with-xsl \
 --with-zlib \
 --enable-fpm \
 --enable-bcmath \
 --enable-libxml \
 --enable-inline-optimization \
 --enable-gd-native-ttf \
 --enable-mbregex \
 --enable-mbstring \
 --enable-opcache \
 --enable-pcntl \
 --enable-shmop \
 --enable-soap \
 --enable-sockets \
 --enable-sysvsem \
 --enable-xml \
 --enable-zip

Si une erreur est configurée, vous devez installer les modules requis, directement miam pour installer les bibliothèques dépendantes ensemble

# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel

Remarque : Il existe plusieurs configurations qui ne peuvent pas être résolues lors de l'installation de php7beta3. Vous devez yum. ce n'est plus le cas avec php-7.0.2.

# yum -y install curl-devel
# yum -y install libxslt-devel

Compiler et installer

# make &&  make install

Fichier de configuration

#  cp php.ini-development /usr/local/php/lib/php.ini
# 
 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf # 
 cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
# 
 cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm

Il est à noter que le fichier de configuration www.conf dans php7 est le numéro de port phpfpm configuré et d'autres informations, si vous modifiez le numéro de port 9000 par défaut, vous devez le modifier ici, puis modifier la configuration nginx

Démarrer

#  /etc/init.d/php-fpm

Afficher phpinfo()

Analyse des performances et comparaison de php7 et php5

<?php
//time /usr/local/php5/bin/php search_by_key.php
$a = array();
    for($i=0;$i<600000;$i++){
        $a[$i] = $i;
        }

    foreach($a as $i)
    {
        array_key_exists($i, $a);
    }
?>

Générer un tableau de 600 000 éléments et déterminer si la clé existe en recherchant la clé.

PHP version 5.4.44

[root@localhost www5.4.44]# time /usr/local/php5.4.44/bin/php search_by_key.php

real 0m0 .351s

utilisateur 0m0.300s

sys 0m0.050s

PHP version 5.5.28

[root@localhost www]# time /usr/ local/php/bin/php search_by_key.php

réel 0m0.361s

utilisateur 0m0.304s

sys 0m0.057s

PHP 7.0.0 Version

[root@localhost www7]# heure /usr/local/php7/bin/php search_by_key.php

réel 0m0.114s

utilisateur 0m0.097s

sys 0m0.017s

Évidemment, les performances de php7 sont 3 fois supérieures à celles de php5 !

Configurer opcache

Adresse du site Web officiel : http://php.net/opcache

Utilisez les paramètres recommandés suivants pour obtenir de meilleures performances :

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

Vous pouvez également désactiver opcache.save_comments et activer opcache.enable_file_override. Il convient de rappeler que la configuration ci-dessus doit être rigoureusement testée avant d'être utilisée dans un environnement de production. En raison d'un problème connu avec la configuration ci-dessus, cela entraînera des exceptions dans certains frameworks et applications, en particulier lorsque des documents utilisent des annotations de commentaires.

vim /usr/local/php7/etc/php.ini

# Rejoindre

Redémarrer

# killall php-fpm
#  /etc/init.d/php-fpm

Si l'image ci-dessus n'est pas claire, vous pouvez utiliser le code de test d'état Opcache au niveau fin de l'article (https://gist.github.com/ck-on/4959032) pour démonstration :



Code de test d'état Opcache (https ://gist.github.com /ck-on/4959032) pour démonstration :

f2c857413066c5365d7eac315851cb9b1 || php_sapi_name()=='cli' || empty($_SERVER['REMOTE_ADDR']) ) { die; } // weak block against indirect access
 
$time=time();
define('CACHEPREFIX',function_exists('opcache_reset')?'opcache_':(function_exists('accelerator_reset')?'accelerator_':''));
 
if ( !empty($_GET['RESET']) ) {	
if ( function_exists(CACHEPREFIX.'reset') ) { call_user_func(CACHEPREFIX.'reset'); }
header( 'Location: '.str_replace('?'.$_SERVER['QUERY_STRING'],'',$_SERVER['REQUEST_URI']) );
exit;
}
 
if ( !empty($_GET['RECHECK']) ) {
if ( function_exists(CACHEPREFIX.'invalidate') ) {
$recheck=trim($_GET['RECHECK']); $files=call_user_func(CACHEPREFIX.'get_status');
if (!empty($files['scripts'])) {
foreach ($files['scripts'] as $file=>$value) {
if ( $recheck==='1' || strpos($file,$recheck)===0 ) call_user_func(CACHEPREFIX.'invalidate',$file);
}
}
header( 'Location: '.str_replace('?'.$_SERVER['QUERY_STRING'],'',$_SERVER['REQUEST_URI']) );
} else { echo 'Sorry, this feature requires Zend Opcache newer than April 8th 2013'; }
exit;
}
 
?>76c82f278ac045591c9159d381de2c57
100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e
b2386ffb911b14667cb8f0f91ea547a7OCP - Opcache Control Panel6e916e0f7d1e588d4f442bf645aedb2f
72f2be85e271a004ecf14fd9848d8875
 
46d5fe1c7617e3914f214aaf043f4ccf
body {background-color: #fff; color: #000;}
body, td, th, h1, h2 {font-family: sans-serif;}
pre {margin: 0px; font-family: monospace;}
a:link,a:visited {color: #000099; text-decoration: none;}
a:hover {text-decoration: underline;}
table {border-collapse: collapse; width: 600px; }
.center {text-align: center;}
.center table { margin-left: auto; margin-right: auto; text-align: left;}
.center th { text-align: center !important; }
.middle {vertical-align:middle;}
td, th { border: 1px solid #000; font-size: 75%; vertical-align: baseline; padding: 3px; }
h1 {font-size: 150%;}
h2 {font-size: 125%;}
.p {text-align: left;}
.e {background-color: #ccccff; font-weight: bold; color: #000; width:50%; white-space:nowrap;}
.h {background-color: #9999cc; font-weight: bold; color: #000;}
.v {background-color: #cccccc; color: #000;}
.vr {background-color: #cccccc; text-align: right; color: #000; white-space: nowrap;}
.b {font-weight:bold;}
.white, .white a {color:#fff;}
img {float: right; border: 0px;}
hr {width: 600px; background-color: #cccccc; border: 0px; height: 1px; color: #000;}
.meta, .small {font-size: 75%; }
.meta {margin: 2em 0;}
.meta a, th a {padding: 10px; white-space:nowrap; }
.buttons {margin:0 0 1em;}
.buttons a {margin:0 15px; background-color: #9999cc; color:#fff; text-decoration:none; padding:1px; border:1px solid #000; display:inline-block; width:5em; text-align:center;}
#files td.v a {font-weight:bold; color:#9999cc; margin:0 10px 0 5px; text-decoration:none; font-size:120%;}
#files td.v a:hover {font-weight:bold; color:#ee0000;}
.graph {display:inline-block; width:145px; margin:1em 0 1em 1px; border:0; vertical-align:top;}
.graph table {width:100%; height:150px; border:0; padding:0; margin:5px 0 0 0; position:relative;}
.graph td {vertical-align:middle; border:0; padding:0 0 0 5px;}
.graph .bar {width:25px; text-align:right; padding:0 2px; color:#fff;}
.graph .total {width:34px; text-align:center; padding:0 5px 0 0;}
.graph .total p {border:1px dashed #888; border-right:0; height:99%; width:12px; position:absolute; bottom:0; left:17px; z-index:-1;}
.graph .total span {background:#fff; font-weight:bold;}
.graph .actual {text-align:right; font-weight:bold; padding:0 5px 0 0;}
.graph .red {background:#ee0000;}
.graph .green {background:#00cc00;}
.graph .brown {background:#8B4513;}
531ac245ce3e4fe3d50054a55f265927
d66b6fe9f75f6ac145f99b7cc5a3266776cd4913e6ee9a69d0dba4fc797cdc00
window.οnlοad=function(){var i,t=document.getElementsByTagName('table');for(i=0;ifdfb08ac3038e2ee43824db4e392ff5c1b771f47d72d900ba74308aee59557f0
9c3bca370b5104690d9ef395f2c5f8d1
 
6c04bd5ca3fcae76e30b72ad730ca86d
c542d7f3f87eec811bf2889d9516e9cc
 
4a249f0d628e2318394fd9b75b4636b1fcc1254b375d92b1e9d1d060f1cca1feOpcache Control Panel5db79b134e9f6b82c0b36e0489ee08ed473f0a7621bec819994bb5020d29372a
 
5854fa88d579fae799b3987b589adf23
20e35c005ba35d5f63cc6e3bcf270fe9Details5db79b134e9f6b82c0b36e0489ee08ed
99aa3dc4197ceda57bd2cb270752eaacFiles5db79b134e9f6b82c0b36e0489ee08ed
32ba2e881dcc9d5030023e6af7053222Reset5db79b134e9f6b82c0b36e0489ee08ed
9fd478278e5ea7dd61c308d801bd5fcd
58cda7e2438cd51409f5eab76bbd8121Recheck5db79b134e9f6b82c0b36e0489ee08ed
be87d491f710a70a3787e6e56494aad5
1941c9d00dd252ee8ced7683507028a1Refresh5db79b134e9f6b82c0b36e0489ee08ed
94b3e26ee717c64999d7867364b1b4a3
 
aefab9edc996e86e93af9e277ccf18f9Opcache not detected?2e9b454fa8428549ca2e64dfac4625cd'; die; }
 
if ( !empty($_GET['FILES']) ) { echo 'c1a436a314ed609750bd7c7d319db4dafiles cached2e9b454fa8428549ca2e64dfac4625cd'; files_display(); echo '94b3e26ee717c64999d7867364b1b4a336cc49f0c466276486e50c850b7e495673a6ac4ed44ffec12cee46588e518a5e'; exit; }
 
if ( !(isset($_REQUEST['GRAPHS']) && !$_REQUEST['GRAPHS']) && CACHEPREFIX=='opcache_') { graphs_display(); if ( !empty($_REQUEST['GRAPHS']) ) { exit; } }
 
ob_start(); phpinfo(8); $phpinfo = ob_get_contents(); ob_end_clean(); // some info is only available via phpinfo? sadly buffering capture has to be used
if ( !preg_match( '/module\_Zend (Optimizer\+|OPcache).+?(\4f8b7a22edf23d5bf38996387821347e]*\>.+?\4eee706fb8786876e00135b644b8cef2).+?(\4f8b7a22edf23d5bf38996387821347e]*\>.+?\4eee706fb8786876e00135b644b8cef2)/s', $phpinfo, $opcache) ) { } // todo
 
if ( function_exists(CACHEPREFIX.'get_configuration') ) { echo 'c1a436a314ed609750bd7c7d319db4dageneral2e9b454fa8428549ca2e64dfac4625cd'; $configuration=call_user_func(CACHEPREFIX.'get_configuration'); }
 
$host=function_exists('gethostname')?@gethostname():@php_uname('n'); if (empty($host)) { $host=empty($_SERVER['SERVER_NAME'])?$_SERVER['HOST_NAME']:$_SERVER['SERVER_NAME']; }
$version=array('Host'=>$host);
$version['PHP Version']='PHP '.(defined('PHP_VERSION')?PHP_VERSION:'???').' '.(defined('PHP_SAPI')?PHP_SAPI:'').' '.(defined('PHP_OS')?' '.PHP_OS:'');
$version['Opcache Version']=empty($configuration['version']['version'])?'???':$configuration['version'][CACHEPREFIX.'product_name'].' '.$configuration['version']['version'];
print_table($version);
 
if ( !empty($opcache[2]) ) { echo preg_replace('/\6413c30a808a5950937c101d6a9c16bb\ea974c0e03abeedee78cb9f3559107c3[^>]+\baefcfa57b5fe2f66c16d2b4f1c9a085\96897fa64db216327b574d71610d0784[0-9\,\. ]+\baefcfa57b5fe2f66c16d2b4f1c9a085\e6795ba1c3bcc57c19b9db0278253a15/','',$opcache[2]); }
 
if ( function_exists(CACHEPREFIX.'get_status') && $status=call_user_func(CACHEPREFIX.'get_status') ) {
$uptime=array();
if ( !empty($status[CACHEPREFIX.'statistics']['start_time']) ) {
$uptime['uptime']=time_since($time,$status[CACHEPREFIX.'statistics']['start_time'],1,'');
}
if ( !empty($status[CACHEPREFIX.'statistics']['last_restart_time']) ) {
$uptime['last_restart']=time_since($time,$status[CACHEPREFIX.'statistics']['last_restart_time']);
}
if (!empty($uptime)) {print_table($uptime);}
if ( !empty($status['cache_full']) ) { $status['memory_usage']['cache_full']=$status['cache_full']; }
echo '4aaafa228026c78871615d9d3ae953ebmemory2e9b454fa8428549ca2e64dfac4625cd';
print_table($status['memory_usage']);
unset($status[CACHEPREFIX.'statistics']['start_time'],$status[CACHEPREFIX.'statistics']['last_restart_time']);
echo 'bb51ad82b94f7c7104599f9b3b0932b2statistics2e9b454fa8428549ca2e64dfac4625cd';
print_table($status[CACHEPREFIX.'statistics']);
}
 
if ( empty($_GET['ALL']) ) { meta_display(); exit; }
if ( !empty($configuration['blacklist']) ) { echo '566b0986732f2186f01a79f94ecadeaeblacklist2e9b454fa8428549ca2e64dfac4625cd'; print_table($configuration['blacklist']); }
 
if ( !empty($opcache[3]) ) { echo '2101fd1fdc75051e51a66268998b9d2aruntime2e9b454fa8428549ca2e64dfac4625cd'; echo $opcache[3]; }
 
$name='zend opcache'; $functions=get_extension_funcs($name);
if (!$functions) { $name='zend optimizer+'; $functions=get_extension_funcs($name); }
if ($functions) { echo '56efb9287f6094f1555dabd151d58aa8functions2e9b454fa8428549ca2e64dfac4625cd'; print_table($functions); } else { $name=''; }
 
$level=trim(CACHEPREFIX,'_').'.optimization_level';
if (isset($configuration['directives'][$level])) {
echo '1b2b8b3f2ba400b440fe680a4f139ffeoptimization levels2e9b454fa8428549ca2e64dfac4625cd';	
$levelset=strrev(base_convert($configuration['directives'][$level], 10, 2));
$levels=array(
1=>'2652aebc852cc8b190e8f49cbe0e3ac9Constants subexpressions elimination5db79b134e9f6b82c0b36e0489ee08ed (CSE) true, false, null, etc.ff9d32c555bb1d9133a29eb4371c1213Optimize series of ADD_STRING / ADD_CHARff9d32c555bb1d9133a29eb4371c1213Convert CAST(IS_BOOL,x) into BOOL(x)ff9d32c555bb1d9133a29eb4371c1213Convert 9150a1c93a59430b405dae150228ef82INIT_FCALL_BY_NAME5db79b134e9f6b82c0b36e0489ee08ed + eb7aac403842174b9977332c913b4a70DO_FCALL_BY_NAME5db79b134e9f6b82c0b36e0489ee08ed into 8bf61b78f5272e32f5dc50362339a2a3DO_FCALL5db79b134e9f6b82c0b36e0489ee08ed',
2=>'Convert constant operands to expected typesff9d32c555bb1d9133a29eb4371c1213Convert conditional 7da1497297ab82f4a1bf57405d3a4c96JMP5db79b134e9f6b82c0b36e0489ee08ed with constant operandsff9d32c555bb1d9133a29eb4371c1213Optimize static 5b49683c5ff578dd6dfae760926ed3bfBRK5db79b134e9f6b82c0b36e0489ee08ed and fd98f2b1021e66463aa42e99e46e1b44CONT5db79b134e9f6b82c0b36e0489ee08ed',
3=>'Convert $a = $a + expr into $a += exprff9d32c555bb1d9133a29eb4371c1213Convert $a++ into ++$aff9d32c555bb1d9133a29eb4371c1213Optimize series of 7da1497297ab82f4a1bf57405d3a4c96JMP5db79b134e9f6b82c0b36e0489ee08ed',
4=>'PRINT and ECHO optimization (1876b35fe7ff948d1b3389eaf63083ccdefunct5db79b134e9f6b82c0b36e0489ee08ed)',
5=>'Block Optimization - most expensive passff9d32c555bb1d9133a29eb4371c1213Performs many different optimization patterns based on ef5eb4caf8ba9dbc4495d802c92c2a8econtrol flow graph5db79b134e9f6b82c0b36e0489ee08ed (CFG)',
9=>'Optimize 24a2df801c71176073c167561fa3629cregister allocation5db79b134e9f6b82c0b36e0489ee08ed (allows re-usage of temporary variables)',
10=>'Remove NOPs'
);
echo '800ef53f35afc5a667c8bd93aea7816792cee25da80fac49f6fb6eec5fd2c22aeaeb0b522ce50eb1e38d703ebe0bc2a2b4d429308760b6c2d20d6300079ed38ePass01c3ce868d2b3d9bce8da5c1b7e41e5bb4d429308760b6c2d20d6300079ed38eDescription01c3ce868d2b3d9bce8da5c1b7e41e5bfd273fcf5bcad3dfdad3c41bd81ad3e5';
foreach ($levels as $pass=>$description) {
$disabled=substr($levelset,$pass-1,1)!=='1' || $pass==4 ? ' white':'';
echo 'a34de1251f0d9fe1e645927f19a896e81e2f8ff6ac31482a484ded50ffa38bef'.$pass.'b90dd5946f0946207856a8a37f441edfbfc89600001c0059adebbc882180aef4'.$description.'b90dd5946f0946207856a8a37f441edffd273fcf5bcad3dfdad3c41bd81ad3e5';
}
echo 'f16b1740fad44fb09bfe928bcc527e08';
}
 
if ( isset($_GET['DUMP']) ) {
if ($name) { echo 'd8073fd67c93be8d5c28af4cbd4cf412ini2e9b454fa8428549ca2e64dfac4625cd'; print_table(ini_get_all($name,true)); }
foreach ($configuration as $key=>$value) { echo 'c1a436a314ed609750bd7c7d319db4da',$key,'2e9b454fa8428549ca2e64dfac4625cd'; print_table($configuration[$key]); }
exit;
}
 
meta_display();
 
echo '94b3e26ee717c64999d7867364b1b4a336cc49f0c466276486e50c850b7e495673a6ac4ed44ffec12cee46588e518a5e';
 
exit;
 
function time_since($time,$original,$extended=0,$text='ago') {	
$time = $time - $original;
$day = $extended? floor($time/86400) : round($time/86400,0);
$amount=0; $unit='';
if ( $time 5811fae82e39328c80e1636b79c55efa60) { $text=' and '.time_since($time,$timefc73ad34d7cec5906049d4f6bea52fd0';
if (!empty($headers)) {
if (!is_array($headers)) {$headers=array_keys(reset($array));}
echo 'eaeb0b522ce50eb1e38d703ebe0bc2a2';
foreach ($headers as $value) { echo 'b4d429308760b6c2d20d6300079ed38e',$value,'01c3ce868d2b3d9bce8da5c1b7e41e5b'; }
echo 'fd273fcf5bcad3dfdad3c41bd81ad3e5';
}
foreach ($array as $key=>$value) {
echo 'a34de1251f0d9fe1e645927f19a896e8';
if ( !is_numeric($key) ) {
$key=ucwords(str_replace('_',' ',$key));
echo 'a733cec0a564ee3f05793300dc66c1cb',$key,'b90dd5946f0946207856a8a37f441edf';
if ( is_numeric($value) ) {
if ( $value>1048576) { $value=round($value/1048576,1).'M'; }
elseif ( is_float($value) ) { $value=round($value,1); }
}
}
if ( is_array($value) ) {
foreach ($value as $column) {
echo '5949ac2d86acd927a5b4d1ba988bed22',$column,'b90dd5946f0946207856a8a37f441edf';
}
echo 'fd273fcf5bcad3dfdad3c41bd81ad3e5';
}
else { echo '5949ac2d86acd927a5b4d1ba988bed22',$value,'b90dd5946f0946207856a8a37f441edffd273fcf5bcad3dfdad3c41bd81ad3e5'; }
}
echo 'f16b1740fad44fb09bfe928bcc527e08';
}
 
function files_display() {	
$status=call_user_func(CACHEPREFIX.'get_status');
if ( empty($status['scripts']) ) {return;}
if ( isset($_GET['DUMP']) ) { print_table($status['scripts']); exit;}
$time=time(); $sort=0;
$nogroup=preg_replace('/\&?GROUP\=[\-0-9]+/','',$_SERVER['REQUEST_URI']);
$nosort=preg_replace('/\&?SORT\=[\-0-9]+/','',$_SERVER['REQUEST_URI']);
$group=empty($_GET['GROUP'])?0:intval($_GET['GROUP']); if ( $group37fd678b377b98a1fd2de17a10ccd9d69) { $group=1;}
$groupset=array_fill(0,9,''); $groupset[$group]=' class="b" ';
echo 'c3dc30fa0edaf702eedbc2e04421d43b
ee07ccca0b4425b5d76efb8e339bb19eungroup5db79b134e9f6b82c0b36e0489ee08ed |
06a7e3a94da744f8a76aa5688e125c0915db79b134e9f6b82c0b36e0489ee08ed |
3bebc0fddcde83c5f9cc7b046bef83d825db79b134e9f6b82c0b36e0489ee08ed |
a1c41aecf1f23e94da461e7ce92a28e535db79b134e9f6b82c0b36e0489ee08ed |
4e851fee3521255aeda8b829816599cb45db79b134e9f6b82c0b36e0489ee08ed |
f4e5e27fde256d9b419d903a673f087e55db79b134e9f6b82c0b36e0489ee08ed
94b3e26ee717c64999d7867364b1b4a3';
if ( !$group ) { $files =& $status['scripts']; }
else {	
$files=array();
foreach ($status['scripts'] as $data) {
if ( preg_match('@^[/]([^/]+[/]){'.$group.'}@',$data['full_path'],$path) ) {
if ( empty($files[$path[0]])) { $files[$path[0]]=array('full_path'=>'','files'=>0,'hits'=>0,'memory_consumption'=>0,'last_used_timestamp'=>'','timestamp'=>''); }
$files[$path[0]]['full_path']=$path[0];
$files[$path[0]]['files']++;
$files[$path[0]]['memory_consumption']+=$data['memory_consumption'];	
$files[$path[0]]['hits']+=$data['hits'];
if ( $data['last_used_timestamp']>$files[$path[0]]['last_used_timestamp']) {$files[$path[0]]['last_used_timestamp']=$data['last_used_timestamp'];}
if ( $data['timestamp']>$files[$path[0]]['timestamp']) {$files[$path[0]]['timestamp']=$data['timestamp'];}	
}	
}
}
if ( !empty($_GET['SORT']) ) {
$keys=array(
'full_path'=>SORT_STRING,
'files'=>SORT_NUMERIC,
'memory_consumption'=>SORT_NUMERIC,
'hits'=>SORT_NUMERIC,
'last_used_timestamp'=>SORT_NUMERIC,
'timestamp'=>SORT_NUMERIC
);
$titles=array('','path',$group?'files':'','size','hits','last used','created');
$offsets=array_keys($keys);
$key=intval($_GET['SORT']);
$direction=$key>0?1:-1;
$key=abs($key)-1;
$key=isset($offsets[$key])&&!($key==1&&empty($group))?$offsets[$key]:reset($offsets);
$sort=array_search($key,$offsets)+1;
$sortflip=range(0,7); $sortflip[$sort]=-$direction*$sort;
if ( $keys[$key]==SORT_STRING) {$direction=-$direction; }
$arrow=array_fill(0,7,''); $arrow[$sort]=$direction>0?' ▼':' ▲';
$direction=$direction>0?SORT_DESC:SORT_ASC;
$column=array(); foreach ($files as $data) { $column[]=$data[$key]; }
array_multisort($column, $keys[$key], $direction, $files);
}
 
echo 'dade791deac709c04a563e7957b61384
eaeb0b522ce50eb1e38d703ebe0bc2a2';
foreach ($titles as $column=>$title) {
if ($title) echo 'b4d429308760b6c2d20d6300079ed38ecbb824bca0ce92b8d1ef1f292fa85ed5',$title,$arrow[$column],'5db79b134e9f6b82c0b36e0489ee08ed01c3ce868d2b3d9bce8da5c1b7e41e5b';
}
echo ' fd273fcf5bcad3dfdad3c41bd81ad3e5';
foreach ($files as $data) {
echo 'a34de1251f0d9fe1e645927f19a896e8
8cd4e76ed77fc7d2d288610e007640c496d3b696b6b366d35c8d7361abe884f2x5db79b134e9f6b82c0b36e0489ee08ed',$data['full_path'],'b90dd5946f0946207856a8a37f441edf',
($group?'118be22d02274b184dfb42470aee4d00'.number_format($data['files']).'b90dd5946f0946207856a8a37f441edf':''),
'118be22d02274b184dfb42470aee4d00',number_format(round($data['memory_consumption']/1024)),'Kb90dd5946f0946207856a8a37f441edf',
'118be22d02274b184dfb42470aee4d00',number_format($data['hits']),'b90dd5946f0946207856a8a37f441edf',
'118be22d02274b184dfb42470aee4d00',time_since($time,$data['last_used_timestamp']),'b90dd5946f0946207856a8a37f441edf',
'118be22d02274b184dfb42470aee4d00',empty($data['timestamp'])?'':time_since($time,$data['timestamp']),'b90dd5946f0946207856a8a37f441edf
fd273fcf5bcad3dfdad3c41bd81ad3e5';
}
echo 'f16b1740fad44fb09bfe928bcc527e08';
}
 
function graphs_display() {
$graphs=array();
$colors=array('green','brown','red');
$primes=array(223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987);
$configuration=call_user_func(CACHEPREFIX.'get_configuration');
$status=call_user_func(CACHEPREFIX.'get_status');
 
$graphs['memory']['total']=$configuration['directives']['opcache.memory_consumption'];
$graphs['memory']['free']=$status['memory_usage']['free_memory'];
$graphs['memory']['used']=$status['memory_usage']['used_memory'];
$graphs['memory']['wasted']=$status['memory_usage']['wasted_memory'];
 
$graphs['keys']['total']=$status[CACHEPREFIX.'statistics']['max_cached_keys'];	
foreach ($primes as $prime) { if ($prime>=$graphs['keys']['total']) { $graphs['keys']['total']=$prime; break;} }
$graphs['keys']['free']=$graphs['keys']['total']-$status[CACHEPREFIX.'statistics']['num_cached_keys'];
$graphs['keys']['scripts']=$status[CACHEPREFIX.'statistics']['num_cached_scripts'];
$graphs['keys']['wasted']=$status[CACHEPREFIX.'statistics']['num_cached_keys']-$status[CACHEPREFIX.'statistics']['num_cached_scripts'];
 
$graphs['hits']['total']=0;
$graphs['hits']['hits']=$status[CACHEPREFIX.'statistics']['hits'];
$graphs['hits']['misses']=$status[CACHEPREFIX.'statistics']['misses'];
$graphs['hits']['blacklist']=$status[CACHEPREFIX.'statistics']['blacklist_misses'];
$graphs['hits']['total']=array_sum($graphs['hits']);
 
$graphs['restarts']['total']=0;
$graphs['restarts']['manual']=$status[CACHEPREFIX.'statistics']['manual_restarts'];
$graphs['restarts']['keys']=$status[CACHEPREFIX.'statistics']['hash_restarts'];
$graphs['restarts']['memory']=$status[CACHEPREFIX.'statistics']['oom_restarts'];
$graphs['restarts']['total']=array_sum($graphs['restarts']);
 
foreach ( $graphs as $caption=>$graph) {
echo '7ca972d4da4703a451d61c2099cd9c131f7a0fa65ce03fb0c68244fb3f36a345',$caption,'94b3e26ee717c64999d7867364b1b4a33cbe43783734fc6dfae5442f5e023dba';	
foreach ($graph as $label=>$value) {
if ($label=='total') { $key=0; $total=$value; $totaldisplay='fe5537d21489511c502b149270ab0db245a2772a6b6107b401db3c9b82c049c2'.($total>999999?round($total/1024/1024).'M':($total>9999?round($total/1024).'K':$total)).'54bdf357c58b8a65c66d7c19c8e4d114e388a4556c0f65e1904146cc1a846bee94b3e26ee717c64999d7867364b1b4a3b90dd5946f0946207856a8a37f441edf'; continue;}
$percent=$total?floor($value*100/$total):''; $percent=!$percent||$percent>99?'':$percent.'%';
echo 'a34de1251f0d9fe1e645927f19a896e8',$totaldisplay,'60b089eae79b77605c3f46ffb8ed64c2', ($value>999999?round($value/1024/1024).'M':($value>9999?round($value/1024).'K':$value)),'b90dd5946f0946207856a8a37f441edfcf5b20ae2df2bffa9fede1bbb5ec524f',$percent,'b90dd5946f0946207856a8a37f441edfb6c5a531a458a2e790c1fd6421739d1c',$label,'b90dd5946f0946207856a8a37f441edffd273fcf5bcad3dfdad3c41bd81ad3e5';
$key++; $totaldisplay='';
}
echo 'f16b1740fad44fb09bfe928bcc527e0894b3e26ee717c64999d7867364b1b4a3',"\n";
}
}
 
function meta_display() {
?>
c3dc30fa0edaf702eedbc2e04421d43b
5464b0cf44fdf1d20c715a7c20f12cbedirectives guide5db79b134e9f6b82c0b36e0489ee08ed |
a4a59848f7e6dae1e7409cc8ba369e9bfunctions guide5db79b134e9f6b82c0b36e0489ee08ed |
796cbb3fbdf1ccd82fd333e932031d07wiki.php.net5db79b134e9f6b82c0b36e0489ee08ed |
c39af205ed01158ddc8d6a8121e3b201pecl5db79b134e9f6b82c0b36e0489ee08ed |
9c2b524ea0c64e25edc5afdbc7379337Zend source5db79b134e9f6b82c0b36e0489ee08ed |
5011fdba663d072a408655eb4d95caf7OCP latest5db79b134e9f6b82c0b36e0489ee08ed
94b3e26ee717c64999d7867364b1b4a3
<?php
}

Apprentissage recommandé : tutoriel vidéo php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer