Home > Article > Backend Development > How to install PHP7.0 in Linux environment
This article will introduce to you how to install PHP7.0 in Linux environment. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.
Comparison between PHP7 and HHVM
The performance of PHP7 in real scenarios is indeed equivalent to that of HHVM, and even exceeds HHVM in some scenarios. The operation and maintenance of HHVM is complex and it is a multi-threaded model. This means that if a thread causes a crash, the entire service will hang and it will not automatically restart. In addition, it uses JIT, which means that it needs to be warmed up after restarting. Without preheating, the performance will be worse. Moreover, the multi-threaded model is difficult to debug, which is very unsuitable for web services that pursue stability.
For Nginx and previous versions of PHP7.0, please refer to this article: Linux environment Nginx installation and debugging and PHP installation
The official version of PHP7.0 has been released around November 2015 , is currently the PHP7.0.2 version. I first started with the first beta version of php7 in August 2015, and now the official version is released.
linux version: 64-bit CentOS 6.6
Nginx version: nginx1.8.0
php version: php-7.0.2
Download
# wget http://php.net/get/php-7.0.2.tar.gz/from/a/mirror
It is recommended to check the installation help file before installation INSTALL
Unzip the installation
# tar zxvf php-7.0.2.tar.gz # cd php-7.0.2
First check the installation help
# ./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
If configured Error, you need to install the required modules, directly yum to install the dependent libraries together
# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel
Note: There are several configurations that cannot be configured when installing php7beta3, you need to yum. Now php-7.0.2 does not need to do this.
# yum -y install curl-devel # yum -y install libxslt-devel
Compile and install
# make && make install
Configuration file
# 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
It should be noted that the www.conf configuration file configuration in php7 phpfpm port number and other information, if you modify the default 9000 port number, you need to change it here, and then change the nginx configuration
Start
# /etc/init.d/php-fpm
View phpinfo()
Performance analysis comparison of php7 and 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); } ?>
Generate an array of 600,000 elements, and determine whether the key is by searching for the key exist.
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
user 0m0.300s
sys 0m0.050s
PHP version 5.5.28
[root@localhost www]# time /usr/ local/php/bin/php search_by_key.php
real 0m0.361s
user 0m0.304s
sys 0m0.057s
PHP 7.0.0 Version
[root@localhost www7]# time /usr/local/php7/bin/php search_by_key.php
real 0m0.114s
user 0m0.097s
sys 0m0.017s
Obviously the performance of php7 is 3 times that of php5!
Configure opcache
Official website address: http://php.net/opcache
Use the following recommended settings to get better performance:
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
You can also disable opcache.save_comments and enable opcache.enable_file_override. It should be reminded that the above configuration must be rigorously tested before being used in a production environment. Because there is a known issue with the above configuration, it will cause exceptions in some frameworks and applications, especially when there are documents using comment annotations.
vim /usr/local/php7/etc/php.ini
# Join
Restart
# killall php-fpm # /etc/init.d/php-fpm
If the above picture is not clear, you can use the Opcache status test code at the end of the article (https:/ /gist.github.com/ck-on/4959032) for demonstration:
Opcache status test code (https://gist.github.com /ck-on/4959032) for demonstration:
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 }
Recommended learning: php video tutorial
The above is the detailed content of How to install PHP7.0 in Linux environment. For more information, please follow other related articles on the PHP Chinese website!