📄 install.php
字号:
<?php
/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$RCSfile: install4.php,v $
$Revision: 1.49.2.13 $
$Date: 2007/03/23 13:21:40 $
*/
error_reporting(E_ERROR | E_WARNING | E_PARSE);
@set_time_limit(1000);
set_magic_quotes_runtime(0);
if(PHP_VERSION < '4.1.0') {
$_GET = &$HTTP_GET_VARS;
$_POST = &$HTTP_POST_VARS;
}
define('IN_DISCUZ', TRUE);
define('DISCUZ_ROOT', '');
$installfile = basename(__FILE__);
$sqlfile = './install/discuz.sql';
$lockfile = './forumdata/install.lock';
$attachdir = './attachments';
$attachurl = 'attachments';
$quit = FALSE;
@include './install/install.lang.php';
@include './install/global.func.php';
@include './config.inc.php';
@include './include/db_'.$database.'.class.php';
$inslang = defined('INSTALL_LANG') ? INSTALL_LANG : '';
$version = '5.5.0 '.$lang[$inslang];
if(!defined('INSTALL_LANG') || !function_exists('instmsg') || !is_readable($sqlfile)) {
exit("Please upload all files to install Discuz! Board<br>安装 Discuz! 论坛您必须上传所有文件,否则无法继续");
} elseif(!isset($dbhost) || !isset($cookiepre)) {
instmsg('config_nonexistence');
} elseif(!ini_get('short_open_tag')) {
instmsg('short_open_tag_invalid');
} elseif(file_exists($lockfile)) {
instmsg('lock_exists');
} elseif(!class_exists('dbstuff')) {
instmsg('database_nonexistence');
}
if(function_exists('instheader')) {
instheader();
}
if(empty($dbcharset) && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) {
$dbcharset = str_replace('-', '', $charset);
}
$action = $_POST['action'] ? $_POST['action'] : $_GET['action'];
if(in_array($action, array('check', 'config'))) {
if(is_writeable('./config.inc.php')) {
$writeable['config'] = result(1, 0);
$write_error = 0;
} else {
$writeable['config'] = result(1, 0);
$write_error = 1;
}
}
if(!$action) {
$discuz_license = str_replace(' ', ' ', $lang['license']);
?>
<tr><td><b><?=$lang['current_process']?> </b><font color="#0000EE"><?=$lang['show_license']?></font></td></tr>
<tr><td><hr noshade align="center" width="100%" size="1"></td></tr>
<tr><td><br>
<table width="90%" cellspacing="1" bgcolor="#000000" border="0" align="center">
<tr><td class="altbg1">
<table width="99%" cellspacing="1" border="0" align="center">
<tr><td><?=$discuz_license?></td></tr>
</table></td></tr></table>
</td></tr>
<tr><td align="center">
<br><form method="post" action="<?=$installfile?>">
<input type="hidden" name="action" value="check">
<input type="submit" name="submit" value="<?=$lang['agreement_yes']?>" style="height: 25">
<input type="button" name="exit" value="<?=$lang['agreement_no']?>" style="height: 25" onclick="javascript: window.close();">
</form></td></tr>
<?
} elseif($action == 'check') {
?>
<tr><td><b><?=$lang['current_process']?> </b><font color="#0000EE"> <?=$lang['check_config']?></font></td></tr>
<tr><td><hr noshade align="center" width="100%" size="1"></td></tr>
<tr><td><br>
<?php
$msg = '';
$curr_os = PHP_OS;
if(!function_exists('mysql_connect')) {
$curr_mysql = $lang['unsupport'];
$msg .= "<li>$lang[mysql_unsupport]</li>";
$quit = TRUE;
} else {
$curr_mysql = $lang['support'];
}
$curr_php_version = PHP_VERSION;
if($curr_php_version < '4.0.6') {
$msg .= "<li>$lang[php_version_406]</li>";
$quit = TRUE;
}
if(@ini_get(file_uploads)) {
$max_size = @ini_get(upload_max_filesize);
$curr_upload_status = $lang['attach_enabled'].$max_size;
} else {
$curr_upload_status = $lang['attach_disabled'];
$msg .= "<li>$lang[attach_disabled_info]</li>";
}
$curr_disk_space = intval(diskfreespace('.') / (1024 * 1024)).'M';
$checkdirarray = array(
'tpl' => './templates',
'avatar' => './customavatars',
'attach' => $attachdir,
'forumdata' => './forumdata',
'ftemplate' => './forumdata/templates',
'cache' => './forumdata/cache',
'threadcache' => './forumdata/threadcaches',
'log' => './forumdata/logs'
);
foreach($checkdirarray as $key => $dir) {
if(dir_writeable($dir)) {
$writeable[$key] = result(1, 0);
} else {
$writeable[$key] = result(0, 0);
$langkey = $key.'_unwriteable';
$msg .= "<li>$lang[$langkey]</li>";
$quit = TRUE;
}
}
if($quit) {
$submitbutton = '<input type="button" name="submit" value=" '.$lang['recheck_config'].' " style="height: 25" onclick="window.location=\'?action=check\'">';
} else {
$submitbutton = '<input type="submit" name="submit" value=" '.$lang['new_step'].' " style="height: 25">';
$msg = $lang['preparation'];
}
?>
<tr><td align="center">
<table width="80%" cellspacing="1" bgcolor="#000000" border="0" align="center">
<tr bgcolor="#3A4273"><td style="color: #FFFFFF; padding-left: 10px" width="32%"><?=$lang['tips_message']?></td>
</tr><tr>
<td class="message"><?=$msg?></td>
</tr></table><br>
<table width="80%" cellspacing="1" bgcolor="#000000" border="0" align="center">
<tr class="header"><td></td><td><?=$lang['env_required']?></td><td><?=$lang['env_best']?></td><td><?=$lang['env_current']?></td>
</tr><tr class="option">
<td class="altbg1"><?=$lang['env_os']?></td>
<td class="altbg2"><?=$lang['unlimited']?></td>
<td class="altbg1">UNIX/Linux/FreeBSD</td>
<td class="altbg2"><?=$curr_os?></td>
</tr><tr class="option">
<td class="altbg1"><?=$lang['env_php']?></td>
<td class="altbg2">4.0.6+</td>
<td class="altbg1">4.3.5+</td>
<td class="altbg2"><?=$curr_php_version?></td>
</tr><tr class="option">
<td class="altbg1"><?=$lang['env_attach']?></td>
<td class="altbg2"3><?=$lang['unlimited']?></td>
<td class="altbg1"><?=$lang['enabled']?></td>
<td class="altbg2"><?=$curr_upload_status?></td>
</tr><tr class="option">
<td class="altbg1"><?=$lang['env_mysql']?></td>
<td class="altbg2"><?=$lang['support']?></td>
<td class="altbg1"><?=$lang['support']?></td>
<td class="altbg2"><?=$curr_mysql?></td>
</tr><tr class="option">
<td class="altbg1"><?=$lang['env_diskspace']?></td>
<td class="altbg2">10M+</td>
<td class="altbg1"><?=$lang['unlimited']?></td>
<td class="altbg2"><?=$curr_disk_space?></td>
</tr></table><br>
<table width="80%" cellspacing="1" bgcolor="#000000" border="0" align="center">
<tr class="header"><td width="33%"><?=$lang['check_catalog_file_name']?></td><td width="33%"><?=$lang['check_need_state']?></td><td width="33%"><?=$lang['check_currently_status']?></td></tr>
<tr class="option">
<td class="altbg1">config.inc.php</td>
<td class="altbg2"><?=$lang['readable']?></td>
<td class="altbg1"><?=$writeable['config']?></td>
</tr><tr class="option">
<td class="altbg1">./templates </td>
<td class="altbg2"><?=$lang['writeable']?></td>
<td class="altbg1"><?=$writeable['tpl']?></td>
</tr><tr class="option">
<td class="altbg1"><?=$attachdir?></td>
<td class="altbg2"><?=$lang['writeable']?></td>
<td class="altbg1"><?=$writeable['attach']?></td>
</tr><tr class="option">
<td class="altbg1">./customavatars</td>
<td class="altbg2"><?=$lang['writeable']?></td>
<td class="altbg1"><?=$writeable['avatar']?></td>
</tr><tr class="option">
<td class="altbg1">./forumdata</td>
<td class="altbg2"><?=$lang['writeable']?></td>
<td class="altbg1"><?=$writeable['forumdata']?></td>
</tr><tr class="option">
<td class="altbg1">./forumdata/templates</td>
<td class="altbg2"><?=$lang['writeable']?></td>
<td class="altbg1"><?=$writeable['ftemplate']?></td>
</tr><tr class="option">
<td class="altbg1">./forumdata/cache</td>
<td class="altbg2"><?=$lang['writeable']?></td>
<td class="altbg1"><?=$writeable['cache']?></td>
</tr><tr class="option">
<td class="altbg1">./forumdata/threadcaches</td>
<td class="altbg2"><?=$lang['writeable']?></td>
<td class="altbg1"><?=$writeable['threadcache']?></td>
</tr><tr class="option">
<td class="altbg1">./forumdata/logs</td>
<td class="altbg2"><?=$lang['writeable']?></td>
<td class="altbg1"><?=$writeable['log']?></td>
</tr></table></tr></td>
<tr><td align="center">
<br><form method="post" action="<?=$installfile?>">
<input type="hidden" name="action" value="config">
<input type="button" name="submit" value=" <?=$lang['old_step']?> " style="height: 25" onclick="window.location='<?=$installfile?>'">
<?=$submitbutton?>
</form></td></tr>
<?php
} elseif($action == 'config') {
?>
<tr><td><b><?=$lang['current_process']?> </b><font color="#0000EE"> <?=$lang['edit_config']?></font></td></tr>
<tr><td><hr noshade align="center" width="100%" size="1"></td></tr>
<tr><td><br>
<?php
$inputreadonly = $write_error ? 'readonly' : '';
$msg = '<li>'.$lang['config_comment'].'</li>';
if($_POST['saveconfig']) {
$msg = '';
$dbhost = setconfig($_POST['dbhost']);
$dbuser = setconfig($_POST['dbuser']);
$dbpw = setconfig($_POST['dbpw']);
$dbname = setconfig($_POST['dbname']);
$adminemail = setconfig($_POST['adminemail']);
$tablepre = setconfig($_POST['tablepre']);
if(empty($dbname)) {
$msg .= '<li>'.$lang['dbname_invalid'].'</li>';
$quit = TRUE;
} else {
if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
$errormsg = 'database_errno_'.mysql_errno();
$msg .= '<li>'.$lang[$errormsg].'</li>';
$quit = TRUE;
} else {
if(mysql_get_server_info() > '4.1') {
mysql_query("CREATE DATABASE IF NOT EXISTS `$dbname` DEFAULT CHARACTER SET $dbcharset");
} else {
mysql_query("CREATE DATABASE IF NOT EXISTS `$dbname`");
}
if(mysql_errno()) {
$errormsg = 'database_errno_'.mysql_errno();
$msg .= "'<li>$errormsg ".$lang[$errormsg].'</li>';
$quit = TRUE;
}
mysql_close();
}
}
if(strstr($tablepre, '.')) {
$msg .= '<li>'.$lang['tablepre_invalid'].'</li>';
$quit = TRUE;
}
if(!$quit){
if(!$write_error) {
$fp = fopen('./config.inc.php', 'r');
$configfile = fread($fp, filesize('./config.inc.php'));
fclose($fp);
$configfile = preg_replace("/[$]dbhost\s*\=\s*[\"'].*?[\"'];/is", "\$dbhost = '$dbhost';", $configfile);
$configfile = preg_replace("/[$]dbuser\s*\=\s*[\"'].*?[\"'];/is", "\$dbuser = '$dbuser';", $configfile);
$configfile = preg_replace("/[$]dbpw\s*\=\s*[\"'].*?[\"'];/is", "\$dbpw = '$dbpw';", $configfile);
$configfile = preg_replace("/[$]dbname\s*\=\s*[\"'].*?[\"'];/is", "\$dbname = '$dbname';", $configfile);
$configfile = preg_replace("/[$]adminemail\s*\=\s*[\"'].*?[\"'];/is", "\$adminemail = '$adminemail';", $configfile);
$configfile = preg_replace("/[$]tablepre\s*\=\s*[\"'].*?[\"'];/is", "\$tablepre = '$tablepre';", $configfile);
$configfile = preg_replace("/[$]cookiepre\s*\=\s*[\"'].*?[\"'];/is", "\$cookiepre = '".random(3)."_';", $configfile);
$fp = fopen('./config.inc.php', 'w');
fwrite($fp, trim($configfile));
fclose($fp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -