Ejemplo n.º 1
0
 function test_server_req(&$score)
 {
     $rst = version_compare(PHP_VERSION, '5.0', '>=');
     $items['PHP5以上'] = array('value' => PHP_VERSION, 'result' => $rst);
     if (!$rst) {
         $allow_install = false;
     }
     $rst = !get_cfg_var('zend.ze1_compatibility_mode');
     $items['zend.ze1_compatibility_mode 关闭'] = array('value' => $rst ? 'Off' : 'On', 'result' => $rst);
     if (!$rst) {
         $allow_install = false;
     }
     $tmpfname = tempnam("../home/cache", "foo");
     $handle = fopen($tmpfname, "w");
     $rst = flock($handle, LOCK_EX);
     fclose($handle);
     unlink($tmpfname);
     $items['支持文件锁(flock)'] = array('value' => $rst ? '支持' : '不支持', 'result' => $rst);
     if (!$rst) {
         $allow_install = false;
     }
     $rst = function_exists('xml_parse_into_struct');
     $items['php可以解析xml文件'] = array('value' => $rst ? '支持' : '不支持', 'result' => $rst);
     if (!$rst) {
         $allow_install = false;
     }
     $rst = function_exists('mysql_connect') && function_exists('mysql_get_server_info');
     $items['MySQL函数库可用'] = array('value' => $rst ? mysql_get_client_info() : '未安装', 'result' => $rst);
     if (!$rst) {
         $allow_install = false;
     } else {
         $rst = false;
         if (defined('DB_HOST')) {
             if (defined('DB_PASSWORD')) {
                 $rs = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
             } elseif (defined('DB_USER')) {
                 $rs = mysql_connect(DB_HOST, DB_USER);
             } else {
                 $rs = mysql_connect(DB_HOST);
             }
             $db_ver = mysql_get_server_info($rs);
         } elseif ($db_ver = mysql_get_server_info()) {
             define('DB_HOST', '');
         } else {
             $sock = get_cfg_var('mysql.default_socket');
             if (PHP_OS != 'WINNT' && file_exists($sock) && is_writable($sock)) {
                 define('DB_HOST', $sock);
             } else {
                 $host = ini_get('mysql.default_host');
                 $port = ini_get('mysql.default_port');
                 if (!$host) {
                     $host = '127.0.0.1';
                 }
                 if (!$port) {
                     $port = 3306;
                 }
                 define('DB_HOST', $host . ':' . $port);
             }
         }
         if (!$db_ver) {
             if (substr(DB_HOST, 0, 1) == '/') {
                 $fp = @fsockopen("unix://" . DB_HOST);
             } else {
                 if ($p = strrpos(DB_HOST, ':')) {
                     $port = substr(DB_HOST, $p + 1);
                     $host = substr(DB_HOST, 0, $p);
                 } else {
                     $port = 3306;
                     $host = DB_HOST;
                 }
                 $fp = @fsockopen("tcp://" . $host, $port, $errno, $errstr, 2);
             }
             if (!$fp) {
                 $db_ver = '无法连接';
             } else {
                 fwrite($fp, "\n");
                 $db_ver = fread($fp, 20);
                 fclose($fp);
                 if (preg_match('/([2-8]\\.[0-9\\.]+)/', $db_ver, $match)) {
                     $db_ver = $match[1];
                     $rst = version_compare($db_ver, '4.0', '>=');
                 } else {
                     $db_ver = '无法识别';
                 }
             }
         } else {
             $rst = version_compare($db_ver, '4.1', '>=');
         }
         $this->db_ver = $db_ver;
         $mysql_key = '数据库Mysql 4.1以上&nbsp;<i style="color:#060">' . DB_HOST . '</i>';
         if ($this->allow_change_db) {
             $mysql_key .= '<form method="get" action="" style="margin:0;padding:0"><table><tr><td><label for="db_host">MySQL主机</label></td><td>&nbsp;</td></tr><tr><td><input id="db_host" value="' . DB_HOST . '" name="db_host" style="width:100px;" type="text" /></td><td><input type="submit" value="连接"></td></tr></table></form>';
         }
         $items[$mysql_key] = array('value' => $db_ver, 'result' => $rst);
         if (!$rst) {
             $allow_install = false;
         }
         $pathinfo = check_pathinfo();
         if (!$pathinfo) {
             $allow_install = false;
         }
         $hosta = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['HTTP_HOST'];
         $uria = $hosta . $_SERVER['REQUEST_URI'] . '?servera=ture';
         $items["pathinfo的支持"] = array('value' => $pathinfo ? '支持' : '不支持', 'result' => $pathinfo);
         return array('group' => '基本需求', 'items' => $items, 'type' => 'require', 'allow_install' => $allow_install);
     }
     if (ini_get('safe_mode')) {
         $rst = is_callable('ftp_connect');
         if (!$rst) {
             $allow_install = false;
         }
         $items['当安全模式开启时,ftp函数可用'] = array('value' => $rst ? '可用' : '不可用', 'result' => $rst);
     }
     $rst = preg_match('/[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+/', gethostbyname('www.example.com'));
     $items['DNS配置完成,本机上能通过域名访问网络'] = array('value' => $rst ? '成功' : '失败 (将影响部分功能)', 'result' => $rst);
     return array('group' => '基本需求', 'key' => 'require', 'items' => $items, 'type' => 'require', 'allow_install' => $allow_install);
 }
Ejemplo n.º 2
0
            }
            fclose($fp);
        }
        $content = preg_split("\r?\n\r?\n", $content);
        if (strpos($content[1], 'SUPPORT_PATHINFO') !== false) {
            return true;
        }
    }
    if (function_exists('curl_init')) {
        ob_start();
        $fp = curl_init($uri);
        curl_exec($fp);
        curl_close($fp);
        $str = ob_get_contents();
        ob_end_clean();
        return $str == 'SUPPORT_PATHINFO' ? true : false;
    } else {
        return false;
    }
}
if (check_pathinfo()) {
    $url = $_COOKIE['LOCAL_SETUP_URL'];
    setCookie('LOCAL_SETUP_URL', '', 0, '/');
    Header('Location: ' . $url);
    //todo:进入安装流程
    exit;
} else {
    Header('Location: view/notice_pathinfo.html');
    //todo:不支持pathinfo,警告页
    exit;
}