搜索
首页后端开发PHP7Linux环境如何安装PHP7.0

本篇文章给大家介绍一下Linux环境安装PHP7.0的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

Linux环境如何安装PHP7.0

PHP7和HHVM比较

PHP7的在真实场景的性能确实已经和HHVM相当, 在一些场景甚至超过了HHVM。HHVM的运维复杂, 是多线程模型, 这就代表着如果一个线程导致crash了, 那么整个服务就挂了, 并且它不会自动重启。另外它采用JIT, 那么意味着, 重启以后要预热, 没有预热的情况下, 性能较为糟糕。并且多线程模型调试困难, 这对于追求稳定来说的Web服务来说, 是非常不适合的。

Nginx以及PHP7.0之前的版本可以参考此文:Linux环境Nginx安装与调试以及PHP安装

PHP7.0正式版已经在2015年11月份左右发布,目前是PHP7.0.2版本,本人最早是从2015年8月php7的第一个测试版跟起,现在正式版发布。

linux版本:64位CentOS 6.6

Nginx版本:nginx1.8.0

php版本:php-7.0.2

下载

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

建议安装之前先看看安装帮助文件 INSTALL

解压安装

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

首先查看安装帮助

# ./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

如果配置错误,需要安装需要的模块,直接yum一并安装依赖库

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

注意:安装php7beta3的时候有几处配置不过去,需要yum一下,现在php-7.0.2已经不用这样了。

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

编译安装

# make &&  make install

配置文件

#  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

需要注意的是php7中www.conf这个配置文件配置phpfpm的端口号等信息,如果你修改默认的9000端口号需在这里改,再改nginx的配置

启动

#  /etc/init.d/php-fpm

查看phpinfo()

php7和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);
    }
?>

生成一个 60 万元素的数组,通过查找key 的方式,来确定key是否存在。

PHP 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 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 版

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

real    0m0.114s

user    0m0.097s

sys     0m0.017s

很明显php7的性能是php5的3倍!

配置opcache

官网地址:http://php.net/opcache

使用下列推荐设置来获得较好的 性能:

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

你也可以禁用 opcache.save_comments 并且启用 opcache.enable_file_override。 需要提醒的是,在生产环境中使用上述配置之前,必须经过严格测试。 因为上述配置存在一个已知问题,它会引发一些框架和应用的异常, 尤其是在存在文档使用了备注注解的时候。 

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

# 加入

重启

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

如果上图不太明白,可以使用文末Opcache 状态测试代码(https://gist.github.com/ck-on/4959032)进行演示:



Opcache 状态测试代码(https://gist.github.com/ck-on/4959032)进行演示:

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
}

推荐学习:php视频教程

以上是Linux环境如何安装PHP7.0的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:CSDN。如有侵权,请联系admin@php.cn删除

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境