install php,install.php

/**

* [WeiZan System] Copyright (c) 2014 WEIZANCMS.COM

*/

error_reporting(E_ALL ^ E_NOTICE);

@set_time_limit(0);

@set_magic_quotes_runtime(0);

ob_start();

define('IA_ROOT', str_replace("\\",'/', dirname(__FILE__)));

if($_GET['res']) {

$res = $_GET['res'];

$reses = tpl_resources();

if(array_key_exists($res, $reses)) {

if($res == 'css') {

header('content-type:text/css');

} else {

header('content-type:image/png');

}

echo base64_decode($reses[$res]);

exit();

}

}

$actions = array('license', 'env', 'db', 'finish');

$action = $_COOKIE['action'];

$action = in_array($action, $actions) ? $action : 'license';

$ispost = strtolower($_SERVER['REQUEST_METHOD']) == 'post';

if(file_exists(IA_ROOT . '/data/install.lock') && $action != 'finish') {

header('location: ./index.php');

exit;

}

header('content-type: text/html; charset=utf-8');

if($action == 'license') {

if($ispost) {

setcookie('action', 'env');

header('location: ?refresh');

exit;

}

tpl_install_license();

}

if($action == 'env') {

if($ispost) {

setcookie('action', $_POST['do'] == 'continue' ? 'db' : 'license');

header('location: ?refresh');

exit;

}

$ret = array();

$ret['server']['os']['value'] = php_uname();

if(PHP_SHLIB_SUFFIX == 'dll') {

$ret['server']['os']['remark'] = '建议使用 Linux 系统以提升程序性能';

$ret['server']['os']['class'] = 'warning';

}

$ret['server']['sapi']['value'] = $_SERVER['SERVER_SOFTWARE'];

if(PHP_SAPI == 'isapi') {

$ret['server']['sapi']['remark'] = '建议使用 Apache 或 Nginx 以提升程序性能';

$ret['server']['sapi']['class'] = 'warning';

}

$ret['server']['php']['value'] = PHP_VERSION;

$ret['server']['dir']['value'] = IA_ROOT;

if(function_exists('disk_free_space')) {

$ret['server']['disk']['value'] = floor(disk_free_space(IA_ROOT) / (1024*1024)).'M';

} else {

$ret['server']['disk']['value'] = 'unknow';

}

$ret['server']['upload']['value'] = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : 'unknow';

$ret['php']['version']['value'] = PHP_VERSION;

$ret['php']['version']['class'] = 'success';

if(version_compare(PHP_VERSION, '5.3.0') == -1) {

$ret['php']['version']['class'] = 'danger';

$ret['php']['version']['failed'] = true;

$ret['php']['version']['remark'] = 'PHP版本必须为 5.3.0 以上. 详情';

}

$ret['php']['mysql']['ok'] = function_exists('mysql_connect');

if($ret['php']['mysql']['ok']) {

$ret['php']['mysql']['value'] = '';

} else {

$ret['php']['mysql']['value'] = '';

}

$ret['php']['pdo']['ok'] = extension_loaded('pdo') && extension_loaded('pdo_mysql');

if($ret['php']['pdo']['ok']) {

$ret['php']['pdo']['value'] = '';

$ret['php']['pdo']['class'] = 'success';

if(!$ret['php']['mysql']['ok']) {

$ret['php']['pdo']['remark'] = '您的PHP环境虽然不支持 mysql_connect, 但已经支持了PDO, 这样系统是可以正常高效运行的, 不需要额外处理. 详情';

}

} else {

if($ret['php']['mysql']['ok']) {

$ret['php']['pdo']['value'] = '';

$ret['php']['pdo']['class'] = 'warning';

$ret['php']['pdo']['remark'] = '您的PHP环境不支持PDO, 但支持 mysql_connect, 这样系统虽然可以运行, 但还是建议你开启PDO以提升程序性能和系统稳定性. 详情';

} else {

$ret['php']['pdo']['value'] = '';

$ret['php']['pdo']['class'] = 'danger';

$ret['php']['pdo']['remark'] = '您的PHP环境不支持PDO, 也不支持 mysql_connect, 系统无法正常运行. 详情';

$ret['php']['pdo']['failed'] = true;

}

}

$ret['php']['fopen']['ok'] = @ini_get('allow_url_fopen') && function_exists('fsockopen');

if($ret['php']['fopen']['ok']) {

$ret['php']['fopen']['value'] = '';

} else {

$ret['php']['fopen']['value'] = '';

}

$ret['php']['curl']['ok'] = extension_loaded('curl') && function_exists('curl_init');

if($ret['php']['curl']['ok']) {

$ret['php']['curl']['value'] = '';

$ret['php']['curl']['class'] = 'success';

if(!$ret['php']['fopen']['ok']) {

$ret['php']['curl']['remark'] = '您的PHP环境虽然不支持 allow_url_fopen, 但已经支持了cURL, 这样系统是可以正常高效运行的, 不需要额外处理. 详情';

}

} else {

if($ret['php']['fopen']['ok']) {

$ret['php']['curl']['value'] = '';

$ret['php']['curl']['class'] = 'warning';

$ret['php']['curl']['remark'] = '您的PHP环境不支持cURL, 但支持 allow_url_fopen, 这样系统虽然可以运行, 但还是建议你开启cURL以提升程序性能和系统稳定性. 详情';

} else {

$ret['php']['curl']['value'] = '';

$ret['php']['curl']['class'] = 'danger';

$ret['php']['curl']['remark'] = '您的PHP环境不支持cURL, 也不支持 allow_url_fopen, 系统无法正常运行. 详情';

$ret['php']['curl']['failed'] = true;

}

}

$ret['php']['ssl']['ok'] = extension_loaded('openssl');

if($ret['php']['ssl']['ok']) {

$ret['php']['ssl']['value'] = '';

$ret['php']['ssl']['class'] = 'success';

} else {

$ret['php']['ssl']['value'] = '';

$ret['php']['ssl']['class'] = 'danger';

$ret['php']['ssl']['failed'] = true;

$ret['php']['ssl']['remark'] = '没有启用OpenSSL, 将无法访问公众平台的接口, 系统无法正常运行. 详情';

}

$ret['php']['gd']['ok'] = extension_loaded('gd');

if($ret['php']['gd']['ok']) {

$ret['php']['gd']['value'] = '';

$ret['php']['gd']['class'] = 'success';

} else {

$ret['php']['gd']['value'] = '';

$ret['php']['gd']['class'] = 'danger';

$ret['php']['gd']['failed'] = true;

$ret['php']['gd']['remark'] = '没有启用GD, 将无法正常上传和压缩图片, 系统无法正常运行. 详情';

}

$ret['php']['dom']['ok'] = class_exists('DOMDocument');

if($ret['php']['dom']['ok']) {

$ret['php']['dom']['value'] = '';

$ret['php']['dom']['class'] = 'success';

} else {

$ret['php']['dom']['value'] = '';

$ret['php']['dom']['class'] = 'danger';

$ret['php']['dom']['failed'] = true;

$ret['php']['dom']['remark'] = '没有启用DOMDocument, 将无法正常安装使用模块, 系统无法正常运行. 详情';

}

$ret['write']['root']['ok'] = local_writeable(IA_ROOT . '/');

if($ret['write']['root']['ok']) {

$ret['write']['root']['value'] = '';

$ret['write']['root']['class'] = 'success';

} else {

$ret['write']['root']['value'] = '';

$ret['write']['root']['class'] = 'danger';

$ret['write']['root']['failed'] = true;

$ret['write']['root']['remark'] = '本地目录无法写入, 将无法使用自动更新功能, 系统无法正常运行. 详情';

}

$ret['write']['data']['ok'] = local_writeable(IA_ROOT . '/data');

if($ret['write']['data']['ok']) {

$ret['write']['data']['value'] = '';

$ret['write']['data']['class'] = 'success';

} else {

$ret['write']['data']['value'] = '';

$ret['write']['data']['class'] = 'danger';

$ret['write']['data']['failed'] = true;

$ret['write']['data']['remark'] = 'data目录无法写入, 将无法写入配置文件, 系统无法正常安装. ';

}

$ret['continue'] = true;

foreach($ret['php'] as $opt) {

if($opt['failed']) {

$ret['continue'] = false;

break;

}

}

if($ret['write']['failed']) {

$ret['continue'] = false;

}

tpl_install_env($ret);

}

if($action == 'db') {

if($ispost) {

if($_POST['do'] != 'continue') {

setcookie('action', 'env');

header('location: ?refresh');

exit();

}

$family = $_POST['family'] == 'x' ? 'x' : 'v';

$db = $_POST['db'];

$user = $_POST['user'];

$link = mysql_connect($db['server'], $db['username'], $db['password']);

if(empty($link)) {

$error = mysql_error();

if (strpos($error, 'Access denied for user') !== false) {

$error = '您的数据库访问用户名或是密码错误.
';

} else {

$error = iconv('gbk', 'utf8', $error);

}

} else {

mysql_query("SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary");

mysql_query("SET sql_mode=''");

if(mysql_errno()) {

$error = mysql_error();

} else {

$query = mysql_query("SHOW DATABASES LIKE '{$db['name']}';");

if (!mysql_fetch_assoc($query)) {

if(mysql_get_server_info() > '4.1') {

mysql_query("CREATE DATABASE IF NOT EXISTS `{$db['name']}` DEFAULT CHARACTER SET utf8", $link);

} else {

mysql_query("CREATE DATABASE IF NOT EXISTS `{$db['name']}`", $link);

}

}

$query = mysql_query("SHOW DATABASES LIKE '{$db['name']}';");

if (!mysql_fetch_assoc($query)) {

$error .= "数据库不存在且创建数据库失败.
";

}

if(mysql_errno()) {

$error .= mysql_error();

}

}

}

if(empty($error)) {

mysql_select_db($db['name']);

$query = mysql_query("SHOW TABLES LIKE '{$db['prefix']}%';");

if (mysql_fetch_assoc($query)) {

$error = '您的数据库不为空,请重新建立数据库或是清空该数据库或更改表前缀!';

}

}

if(empty($error)) {

$pieces = explode(':', $db['server']);

$db['port'] = !empty($pieces[1]) ? $pieces[1] : '3306';

$config = local_config();

$cookiepre = local_salt(4) . '_';

$authkey = local_salt(8);

$config = str_replace(array(

'{db-server}', '{db-username}', '{db-password}', '{db-port}', '{db-name}', '{db-tablepre}', '{cookiepre}', '{authkey}', '{attachdir}'

), array(

$db['server'], $db['username'], $db['password'], $db['port'], $db['name'], $db['prefix'], $cookiepre, $authkey, 'attachment'

), $config);

$verfile = IA_ROOT . '/framework/version.inc.php';

$dbfile = IA_ROOT . '/data/db.php';

if($_POST['type'] == 'remote') {

mysql_close($link);

$ins = remote_install();

if(empty($ins) || !is_array($ins)) {

die('');

}

if($ins['error']) {

die('');

}

$archive = $ins['files'];

if(!$archive) {

die('');

}

$link = mysql_connect($db['server'], $db['username'], $db['password']);

mysql_select_db($db['name']);

mysql_query("SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary");

mysql_query("SET sql_mode=''");

$version = $ins['version'];

$release = $ins['release'];

$family = $ins['family'];

//写入临时目录

$tmpfile = IA_ROOT . '/we7source.tmp';

file_put_contents($tmpfile, $archive);

local_mkdirs(IA_ROOT . '/data');

file_put_contents(IA_ROOT . '/data/db.php', base64_decode($ins['schemas']));

$fp = fopen($tmpfile, 'r');

if ($fp) {

$buffer = '';

while (!feof($fp)) {

$buffer .= fgets($fp, 4096);

if($buffer[strlen($buffer) - 1] == "\n") {

$pieces = explode(':', $buffer);

$path = base64_decode($pieces[0]);

$dat = base64_decode($pieces[1]);

$fname = IA_ROOT . $path;

local_mkdirs(dirname($fname));

file_put_contents($fname, $dat);

$buffer = '';

}

}

fclose($fp);

}

unlink($tmpfile);

$verdat = <<

/**

* 版本号

*

* [WeiZan System] Copyright (c) 2013 WEIZANCMS.COM

*/

defined('IN_IA') or exit('Access Denied');

define('IMS_FAMILY', '{$family}');

define('IMS_VERSION', '{$version}');

define('IMS_RELEASE_DATE', '{$release}');

VER;

file_put_contents($verfile, $verdat);

}

if(file_exists(IA_ROOT . '/index.php') && is_dir(IA_ROOT . '/app') && is_dir(IA_ROOT . '/web') && file_exists($verfile) && file_exists($dbfile)) {

$dat = require $dbfile;

if(empty($dat) || !is_array($dat)) {

die('');

}

foreach($dat['schemas'] as $schema) {

$sql = local_create_sql($schema);

local_run($sql);

}

foreach($dat['datas'] as $data) {

local_run($data);

}

} else {

die('');

}

$salt = local_salt(8);

$password = sha1("{$user['password']}-{$salt}-{$authkey}");

mysql_query("INSERT INTO {$db['prefix']}users (username, password, salt, joindate) VALUES('{$user['username']}', '{$password}', '{$salt}', '" . time() . "')");

local_mkdirs(IA_ROOT . '/data');

file_put_contents(IA_ROOT . '/data/config.php', $config);

touch(IA_ROOT . '/data/install.lock');

setcookie('action', 'finish');

header('location: ?refresh');

exit();

}

}

tpl_install_db($error);

}

if($action == 'finish') {

setcookie('action', '', -10);

$dbfile = IA_ROOT . '/data/db.php';

@unlink($dbfile);

define('IN_SYS', true);

require IA_ROOT . '/framework/bootstrap.inc.php';

require IA_ROOT . '/web/common/bootstrap.sys.inc.php';

$_W['uid'] = $_W['isfounder'] = 1;

load()->web('common');

load()->web('template');

load()->model('setting');

load()->model('cache');

cache_build_frame_menu();

cache_build_setting();

cache_build_users_struct();

cache_build_module_subscribe_type();

tpl_install_finish();

}

function local_writeable($dir) {

$writeable = 0;

if(!is_dir($dir)) {

@mkdir($dir, 0777);

}

if(is_dir($dir)) {

if($fp = fopen("$dir/test.txt", 'w')) {

fclose($fp);

unlink("$dir/test.txt");

$writeable = 1;

} else {

$writeable = 0;

}

}

return $writeable;

}

function local_salt($length = 8) {

$result = '';

while(strlen($result) < $length) {

$result .= sha1(uniqid('', true));

}

return substr($result, 0, $length);

}

function local_config() {

$cfg = <<

defined('IN_IA') or exit('Access Denied');

\$config = array();

\$config['db']['host'] = '{db-server}';

\$config['db']['username'] = '{db-username}';

\$config['db']['password'] = '{db-password}';

\$config['db']['port'] = '{db-port}';

\$config['db']['database'] = '{db-name}';

\$config['db']['charset'] = 'utf8';

\$config['db']['pconnect'] = 0;

\$config['db']['tablepre'] = '{db-tablepre}';

// -------------------------- CONFIG COOKIE --------------------------- //

\$config['cookie']['pre'] = '{cookiepre}';

\$config['cookie']['domain'] = '';

\$config['cookie']['path'] = '/';

// -------------------------- CONFIG SETTING --------------------------- //

\$config['setting']['charset'] = 'utf-8';

\$config['setting']['cache'] = 'mysql';

\$config['setting']['timezone'] = 'Asia/Shanghai';

\$config['setting']['memory_limit'] = '256M';

\$config['setting']['filemode'] = 0644;

\$config['setting']['authkey'] = '{authkey}';

\$config['setting']['founder'] = '1';

\$config['setting']['development'] = 0;

\$config['setting']['referrer'] = 0;

// -------------------------- CONFIG UPLOAD --------------------------- //

\$config['upload']['image']['extentions'] = array('gif', 'jpg', 'jpeg', 'png');

\$config['upload']['image']['limit'] = 5000;

\$config['upload']['attachdir'] = '{attachdir}';

\$config['upload']['audio']['extentions'] = array('mp3');

\$config['upload']['audio']['limit'] = 5000;

// -------------------------- HTTPS UP --------------------------- //

\$config['setting']['https'] = 0;

EOF;

return trim($cfg);

}

function local_mkdirs($path) {

if(!is_dir($path)) {

local_mkdirs(dirname($path));

mkdir($path);

}

return is_dir($path);

}

function local_run($sql) {

global $link, $db;

if(!isset($sql) || empty($sql)) return;

$sql = str_replace("\r", "\n", str_replace(' ims_', ' '.$db['prefix'], $sql));

$sql = str_replace("\r", "\n", str_replace(' `ims_', ' `'.$db['prefix'], $sql));

$ret = array();

$num = 0;

foreach(explode(";\n", trim($sql)) as $query) {

$ret[$num] = '';

$queries = explode("\n", trim($query));

foreach($queries as $query) {

$ret[$num] .= (isset($query[0]) && $query[0] == '#') || (isset($query[1]) && isset($query[1]) && $query[0].$query[1] == '--') ? '' : $query;

}

$num++;

}

unset($sql);

foreach($ret as $query) {

$query = trim($query);

if($query) {

if(!mysql_query($query, $link)) {

echo mysql_errno() . ": " . mysql_error() . "
";

exit($query);

}

}

}

}

function local_create_sql($schema) {

$pieces = explode('_', $schema['charset']);

$charset = $pieces[0];

$engine = $schema['engine'];

$sql = "CREATE TABLE IF NOT EXISTS `{$schema['tablename']}` (\n";

foreach ($schema['fields'] as $value) {

if(!empty($value['length'])) {

$length = "({$value['length']})";

} else {

$length = '';

}

$signed = empty($value['signed']) ? ' unsigned' : '';

if(empty($value['null'])) {

$null = ' NOT NULL';

} else {

$null = '';

}

if(isset($value['default'])) {

$default = " DEFAULT '" . $value['default'] . "'";

} else {

$default = '';

}

if($value['increment']) {

$increment = ' AUTO_INCREMENT';

} else {

$increment = '';

}

$sql .= "`{$value['name']}` {$value['type']}{$length}{$signed}{$null}{$default}{$increment},\n";

}

foreach ($schema['indexes'] as $value) {

$fields = implode('`,`', $value['fields']);

if($value['type'] == 'index') {

$sql .= "KEY `{$value['name']}` (`{$fields}`),\n";

}

if($value['type'] == 'unique') {

$sql .= "UNIQUE KEY `{$value['name']}` (`{$fields}`),\n";

}

if($value['type'] == 'primary') {

$sql .= "PRIMARY KEY (`{$fields}`),\n";

}

}

$sql = rtrim($sql);

$sql = rtrim($sql, ',');

$sql .= "\n) ENGINE=$engine DEFAULT CHARSET=$charset;\n\n";

return $sql;

}

function __remote_install_headers($ch = '', $header = '') {

static $hash;

if(!empty($header)) {

$pieces = explode(':', $header);

if(trim($pieces[0]) == 'hash') {

$hash = trim($pieces[1]);

}

}

if($ch == '' && $header == '') {

return $hash;

}

return strlen($header);

}

function remote_install() {

global $family;

$token = '';

$pars = array();

$pars['host'] = $_SERVER['HTTP_HOST'];

$pars['version'] = '0.6';

$pars['release'] = '';

$url = 'http://addons.012wz.com/gateway.php';

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $pars);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HEADERFUNCTION, '__remote_install_headers');

$content = curl_exec($ch);

curl_close($ch);

$sign = __remote_install_headers();

$ret = array();

if(empty($content)) {

return showerror(-1, '获取安装信息失败,可能是由于网络不稳定,请重试。');

}

$ret = unserialize($content);

if($sign != md5($ret['data'] . $token)) {

return showerror(-1, '发生错误: 数据校验失败,可能是传输过程中网络不稳定导致,请重试。');

}

$ret['data'] = unserialize($ret['data']);

return $ret['data'];

}

function __remote_download_headers($ch = '', $header = '') {

static $hash;

if(!empty($header)) {

$pieces = explode(':', $header);

if(trim($pieces[0]) == 'hash') {

$hash = trim($pieces[1]);

}

}

if($ch == '' && $header == '') {

return $hash;

}

return strlen($header);

}

function remote_download($archive) {

$pars = array();

$pars['host'] = $_SERVER['HTTP_HOST'];

$pars['version'] = '';

$pars['release'] = '';

$pars['archive'] = base64_encode(json_encode($archive));

$url = 'http://addons.012wz.com/gateway.php';

$tmpfile = IA_ROOT . '/we7.zip';

$fp = fopen($tmpfile, 'w+');

if(!$fp) {

return false;

}

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $pars);

curl_setopt($ch, CURLOPT_FILE, $fp);

curl_setopt($ch, CURLOPT_HEADERFUNCTION, '__remote_download_headers');

if(!curl_exec($ch)) {

return false;

}

curl_close($ch);

fclose($fp);

$sign = __remote_download_headers();

if(md5_file($tmpfile) == $sign) {

return $tmpfile;

}

return false;

}

function tpl_frame() {

global $action, $actions;

$action = $_COOKIE['action'];

$step = array_search($action, $actions);

$steps = array();

for($i = 0; $i <= $step; $i++) {

if($i == $step) {

$steps[$i] = ' list-group-item-info';

} else {

$steps[$i] = ' list-group-item-success';

}

}

$progress = $step * 25 + 25;

$content = ob_get_contents();

ob_clean();

$tpl = <<

安装系统 - 微赞CMS - 微信插件框架

html,body{font-size:13px;font-family:"Microsoft YaHei UI", "微软雅黑", "宋体";}

.pager li.previous a{margin-right:10px;}

.header a{color:#FFF;}

.header a:hover{color:#428bca;}

.footer{padding:10px;}

.footer a,.footer{color:#eee;font-size:14px;line-height:25px;}

logo.png

EOF;

echo trim($tpl);

}

function tpl_install_license() {

echo <<

阅读许可协议

版权所有 (c)2014-2015,微赞CMS团队保留部分权利。

感谢您选择微赞CMS - 微信公众平台插件开源免费框架(以下简称WEIZANCMS,WEIZANCMS基于 PHP + MySQL的技术开发)

为了使你正确并合法的使用本软件,请你在使用前务必阅读清楚下面的协议条款:

一、本授权协议适用且仅适用于微赞CMS系统(WEIZANCMS. 以下简称微赞CMS)任何版本,微赞CMS官方对本授权协议的最终解释权。

二、协议许可的权利

  1. 您可以在协议规定的约束和限制范围内修改微赞CMS源代码或界面风格以适应您的网站要求。
  2. 您拥有使用本软件构建的网站全部内容所有权,并独立承担与这些内容的相关法律义务。

三、协议规定的约束和限制

  1. 未经官方许可,不得对本软件或与之关联的代码进行出租、出售、抵押或发放子许可证。
  2. 未经官方许可,禁止在微赞的整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于重新分发。
  3. 如果您未能遵守本协议的条款,您的授权将被终止,所被许可的权利将被收回,并承担相应法律责任。

四、有限担保和免责声明

  1. 本软件及所附带的文件是作为不提供任何明确的或隐含的赔偿或担保的形式提供的。
  2. 用户出于自愿而使用本软件,您必须了解使用本软件的风险,在尚未购买产品技术服务之前,我们不承诺对免费用户提供任何形式的技术支持、使用担保,也不承担任何因使用本软件而产生问题的相关责任。
  3. 电子文本形式的授权协议如同双方书面签署的协议一样,具有完全的和等同的法律效力。您一旦开始确认本协议并安装 WEIZANCMS,即被视为完全理解并接受本协议的各项条款,在享有上述条款授予的权力的同时,受到相关的约束和限制。协议许可范围以外的行为,将直接违反本授权协议并构成侵权,我们有权随时终止授权,责令停止损害,并保留追究相关责任的权力。
  4. 本软件带有其它软件的整合一些第三方文件包,这些文件版权不属于本软件官方,并且这些文件是没经过授权发布的,请参考相关软件的使用许可合法的使用。
  • 我已经阅读并同意此协议

EOF;

tpl_frame();

}

function tpl_install_env($ret = array()) {

if(empty($ret['continue'])) {

$continue = '

请先解决环境问题后继续';

} else {

$continue = '

继续 ';

}

echo <<

服务器信息
参数
服务器操作系统{$ret['server']['os']['value']}{$ret['server']['os']['remark']}
Web服务器环境{$ret['server']['sapi']['value']}{$ret['server']['sapi']['remark']}
PHP版本{$ret['server']['php']['value']}{$ret['server']['php']['remark']}
程序安装目录{$ret['server']['dir']['value']}{$ret['server']['dir']['remark']}
磁盘空间{$ret['server']['disk']['value']}{$ret['server']['disk']['remark']}
上传限制{$ret['server']['upload']['value']}{$ret['server']['upload']['remark']}
PHP环境要求必须满足下列所有条件,否则系统或系统部份功能将无法使用。
PHP环境要求
选项要求状态说明及帮助
PHP版本5.3或者5.3以上{$ret['php']['version']['value']}{$ret['php']['version']['remark']}
MySQL支持(建议支持PDO){$ret['php']['mysql']['value']}{$ret['php']['pdo']['remark']}
PDO_MYSQL支持(强烈建议支持){$ret['php']['pdo']['value']}
allow_url_fopen支持(建议支持cURL){$ret['php']['fopen']['value']}{$ret['php']['curl']['remark']}
cURL支持(强烈建议支持){$ret['php']['curl']['value']}
openSSL支持{$ret['php']['ssl']['value']}{$ret['php']['ssl']['remark']}
GD2支持{$ret['php']['gd']['value']}{$ret['php']['gd']['remark']}
DOM支持{$ret['php']['dom']['value']}{$ret['php']['dom']['remark']}
系统要求微赞整个安装目录必须可写, 才能使用微赞所有功能。
目录权限监测
目录要求状态说明及帮助
/整目录可写{$ret['write']['root']['value']}{$ret['write']['root']['remark']}
/data目录可写{$ret['write']['data']['value']}{$ret['write']['data']['remark']}

{$continue}

EOF;

tpl_frame();

}

function tpl_install_db($error = '') {

if(!empty($error)) {

$message = '

发生错误: ' . $error . '
';

}

$insTypes = array();

if(file_exists(IA_ROOT . '/index.php') && is_dir(IA_ROOT . '/app') && is_dir(IA_ROOT . '/web')) {

$insTypes['local'] = ' checked="checked"';

} else {

$insTypes['remote'] = ' checked="checked"';

}

if (!empty($_POST['type'])) {

$insTypes = array();

$insTypes[$_POST['type']] = ' checked="checked"';

}

$disabled = empty($insTypes['local']) ? ' disabled="disabled"' : '';

echo <<

{$message}

安装选项

安装方式

离线安装

在线安装能够直接安装最新版本微赞系统, 如果在线安装困难, 请下载离线安装包后使用本地安装.

离线安装包可能不是最新程序, 如果你不确定, 可以现在访问官网重新下载一份最新的.

数据库选项

数据库主机

数据库用户

数据库密码

表前缀

数据库名称

管理选项

管理员账号

管理员密码

确认密码

var lock = false;

function check(obj) {

if(lock) {

return;

}

$('.form-control').parent().parent().removeClass('has-error');

var error = false;

$('.form-control').each(function(){

if($(this).val() == '') {

$(this).parent().parent().addClass('has-error');

this.focus();

error = true;

}

});

if(error) {

alert('请检查未填项');

return false;

}

if($(':password').eq(0).val() != $(':password').eq(1).val()) {

$(':password').parent().parent().addClass('has-error');

alert('确认密码不正确.');

return false;

}

lock = true;

$(obj).parent().addClass('disabled');

$(obj).html('正在执行安装');

return true;

}

EOF;

tpl_frame();

}

function tpl_install_finish() {

echo <<

恭喜您!已成功安装“微赞 - 公众平台自助开源引擎”系统,您现在可以: 访问网站首页

我们强烈建议您立即注册云服务,享受“插件安装、更新”等云服务。马上去注册

EOF;

tpl_frame();

}

function tpl_resources() {

static $res = array(

'logo' => 'http://bbs.012wz.com/static/image/common/logo.png',

);

return $res;

}

function showerror($errno, $message = '') {

return array(

'errno' => $errno,

'error' => $message,

);

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值