Maison > Article > développement back-end > Comment installer PHP7.0 dans un environnement Linux
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.
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!