<p >php 服务器性能检测探针文件</p> <p ><img alt="" src="/up_pic/201211/20121106064450.jpg" /></p> <p >function test_basic($score){<br /> $items['操作系统']=PHP_OS;<br /> $items['服务器软件']=$_SERVER[&quot;SERVER_SOFTWARE&quot;];</p> <p > $runMode = null;</p> <p > $runMode = php_sapi_name();<br /> switch($runMode){<br /> case 'cgi-fcgi':<br /> $score+=50;<br /> break;<br /> }</p> <p > $safemodeStr = '&lt;span style=&quot;color:red&quot;&gt;(安全模式)&lt;/span&gt;';<br /> if($runMode){<br /> if(ini_get('safe_mode')){<br /> $runMode.='&amp;nbsp;';<br /> }<br /> $items['php运行方式']=$runMode;<br /> }elseif(ini_get('safe_mode')){<br /> $items['php运行方式']=$safemodeStr;<br /> }</p> <p > return array('group'=&gt;'服务器基本信息','key'=&gt;'basic','items'=&gt;$items);<br /> }</p> <p > function test_php(&amp;$score){<br /> $items['php版本']=PHP_VERSION;<br /> if(is_callable('file_put_contents')){<br /> $score += 40;<br /> }<br /> if(is_callable('str_ireplace')){<br /> $score += 20;<br /> }<br /> if(is_callable('ftp_chmod')){<br /> $score += 10;<br /> }<br /> if(is_callable('http_build_query')){<br /> $score += 20;<br /> }</p> <p > $items['程序最多允许使用内存量&amp;nbsp;memory_limit']=ini_get(&quot;memory_limit&quot;);<br /> $items['POST最大字节数&amp;nbsp;post_max_size']=ini_get(&quot;post_max_size&quot;);<br /> $items['允许最大上传文件&amp;nbsp;upload_max_filesize']=ini_get(&quot;upload_max_filesize&quot;);<br /> $items['程序最长运行时间&amp;nbsp;max_execution_time']=ini_get(&quot;max_execution_time&quot;);<br /> $disableFunc = get_cfg_var(&quot;disable_functions&quot;);<br /> $items['被禁用的函数&amp;nbsp;disable_functions']=$disableFunc?$disableFunc:'无';<br /> return array('group'=&gt;'php基本信息','items'=&gt;$items);<br /> }</p> <p > function test_server_req(&amp;$score){</p> <p ><br /> $rst = version_compare(PHP_VERSION,'4.0','&gt;=');<br /> $items['PHP4以上'] = array(<br /> 'value'=&gt;PHP_VERSION,<br /> 'result'=&gt;$rst,<br /> );<br /> if(!$rst){<br /> $allow_install = false;<br /> }</p> <p > $rst = !get_cfg_var('zend.ze1_compatibility_mode');<br /> $items['zend.ze1_compatibility_mode 关闭'] = array(<br /> 'value'=&gt;$rst?'Off':'On',<br /> 'result'=&gt;$rst,<br /> );<br /> if(!$rst){<br /> $allow_install = false;<br /> }</p> <p > $tmpfname = tempnam(&quot;../home/cache&quot;, &quot;foo&quot;);<br /> $handle = fopen($tmpfname, &quot;w&quot;);<br /> $rst = flock($handle,LOCK_EX);<br /> fclose($handle);<br /> unlink($tmpfname);<br /> $items['支持文件锁(flock)'] = array(<br /> 'value'=&gt;$rst?'支持':'不支持',<br /> 'result'=&gt;$rst,<br /> );<br /> if(!$rst){<br /> $allow_install = false;<br /> }</p> <p > $rst = function_exists('xml_parse_into_struct');<br /> $items['php可以解析xml文件'] = array(<br /> 'value'=&gt;$rst?'支持':'不支持',<br /> 'result'=&gt;$rst,<br /> );<br /> if(!$rst){<br /> $allow_install = false;<br /> }</p> <p > $rst = function_exists('mysql_connect') &amp;&amp; function_exists('mysql_get_server_info');<br /> $items['MySQL函数库可用'] = array(<br /> 'value'=&gt;$rst?mysql_get_client_info():'未安装',<br /> 'result'=&gt;$rst,<br /> );<br /> if(!$rst){<br /> $allow_install = false;<br /> }else{<br /> $rst = false;<br /> if(defined('DB_HOST')){<br /> if(defined('DB_PASSWORD')){<br /> $rs = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);<br /> }elseif(defined('DB_USER')){<br /> $rs = mysql_connect(DB_HOST,DB_USER);<br /> }else{<br /> $rs = mysql_connect(DB_HOST);<br /> }<br /> $db_ver = mysql_get_server_info($rs);<br /> }elseif($db_ver = mysql_get_server_info()){<br /> define('DB_HOST','');<br /> }else{<br /> $sock = get_cfg_var('mysql.default_socket');<br /> if(PHP_OS!='WINNT' &amp;&amp; file_exists($sock) &amp;&amp; is_writable($sock)){<br /> define('DB_HOST',$sock);<br /> }else{<br /> $host = ini_get('mysql.default_host');<br /> $port = ini_get('mysql.default_port');<br /> if(!$host)$host = '127.0.0.1';<br /> if(!$port)$port = 3306;<br /> define('DB_HOST',$host.':'.$port);<br /> }<br /> }<br /> if(!$db_ver){<br /> if(substr(DB_HOST,0,1)=='/'){<br /> $fp = @fsockopen(&quot;unix://&quot;.DB_HOST);<br /> }else{<br /> if($p = strrpos(DB_HOST,':')){<br /> $port = substr(DB_HOST,$p+1);<br /> $host = substr(DB_HOST,0,$p);<br /> }else{<br /> $port = 3306;<br /> $host = DB_HOST;<br /> }<br /> $fp = @fsockopen(&quot;tcp://&quot;.$host, $port, $errno, $errstr,2);<br /> }<br /> if (!$fp){<br /> $db_ver = '无法连接';<br /> } else {<br /> fwrite($fp, &quot;n&quot;);<br /> $db_ver = fread($fp, 20);<br /> fclose($fp);<br /> if(preg_match('/([2-8].[0-9.]+)/',$db_ver,$match)){<br /> $db_ver = $match[1];<br /> $rst = version_compare($db_ver,'3.2.23','&gt;=');<br /> }else{<br /> $db_ver = '无法识别';<br /> }<br /> }<br /> }else{<br /> $rst = version_compare($db_ver,'3.2.23','&gt;=');<br /> }</p> <p > $this-&gt;db_ver = $db_ver;</p> <p > $mysql_key = '数据库Mysql 3.2.23以上&amp;nbsp;&lt;i style=&quot;color:#060&quot;&gt;'.DB_HOST.'&lt;/i&gt;';<br /> if($this-&gt;allow_change_db){<br /> $mysql_key.='&lt;form method=&quot;get&quot; action=&quot;&quot; style=&quot;margin:0;padding:0&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;label for=&quot;db_host&quot;&gt;MySQL主机&lt;/label&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;input id=&quot;db_host&quot; value=&quot;'.DB_HOST.'&quot; name=&quot;db_host&quot; style=&quot;width:100px;&quot; type=&quot;text&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;input type=&quot;submit&quot; value=&quot;连接&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/form&gt;';<br /> }<br /> $items[$mysql_key] = array(<br /> 'value'=&gt;$db_ver,<br /> 'result'=&gt;$rst,<br /> );<br /> if(!$rst){<br /> $allow_install = false;<br /> }</p> <p > $rst = (defined('OPTIMIZER_VERSION') || (function_exists('extension_loaded') &amp;&amp; extension_loaded('Zend Optimizer')));<br /> if($rst){<br /> if(defined('OPTIMIZER_VERSION')){<br /> $rst = version_compare(OPTIMIZER_VERSION,'2.5.7','&gt;=');<br /> $value = OPTIMIZER_VERSION;<br /> }else{<br /> $value = '通过';<br /> }<br /> }else{<br /> $value = '未安装';<br /> }</p> <p > $items['ZEND Optimizer2.5.7以上'] = array(<br /> 'value'=&gt;$value,<br /> 'result'=&gt;$rst,<br /> );<br /> if(!$rst){<br /> $allow_install = false;<br /> }<br /> }</p> <p > if(ini_get('safe_mode')){<br /> $rst = is_callable('ftp_connect');<br /> if(!$rst){<br /> $allow_install = false;<br /> }<br /> $items['当安全模式开启时,ftp函数可用'] = array(<br /> 'value'=&gt;$rst?'可用':'不可用',<br /> 'result'=&gt;$rst,<br /> );<br /> }</p> <p > $rst = preg_match('/[0-9]+.[0-9]+.[0-9]+.[0-9]+/',gethostbyname('www.example.com'));<br /> $items['DNS配置完成,本机上能通过域名访问网络'] = array(<br /> 'value'=&gt;$rst?'成功':'失败 (将影响部分功能)',<br /> 'result'=&gt;$rst,<br /> );</p> <p > return array('group'=&gt;'基本需求','key'=&gt;'require','items'=&gt;$items,'type'=&gt;'require','allow_install'=&gt;$allow_install);<br /> }</p>
返回顶部 留言