一、
1.检查目录或文件的权限
2.修改或添加配置文件
3.检查配置文件的正确性
4.导入数据库
5.锁定或删除安装文件
原理:
其实php程序的安装原理就是将数据库结构内容导入到相应的数据库中,从这个过程中重新分配连接数据库的参数和文件,为了保证不被别人恶意用安装文件,当安装完成后需要修改安装文件。
二、制作安装用到的php函数
is_writable("data/config.php");
is_writable() 检查文件是否可写,用来判断文件,同类函数还有is_readable()检查文件是否可读,返回布尔值。
fopen()文件操作函数,打开一个文件或新建。
fwrite()文件操作函数,写入内容到文件。
rename()文件操作函数,给文件改名。
三、制作安装的注意事项
1.对文件权限进行检查和相关文件夹,如缓存、生成文件、配置文件。
2.安装文件尽可能的独立,可删除、可改名。
3.数据库导入是,需检查:
a. 检查是否有建立数据库的权限
b.是否同名数据库的存在
c.考虑到数据库的导入的大小是否分段处理
四、检查配置环境,各种模块的支持情况,如:gdz,pdo,rewrite。
制作实例:
<?php
$file="config.php";
if (!is_writable($file))
{
echo "<font color=red>不可写</font>";
}
else
{ echo "<strong><font color=green>可写</font></strong>";
}
if (isset($_POST[install]))
{ $config_str="<?php";
$config_str.="/n";//这是换行符
$config_str.='$hostname="'.$_POST[hostname].'";';
$config_str.="/n";//这是换行符
$config_str.='$dbuser="'.$_POST[dbuser].'";';
$config_str.="/n";//这是换行符
$config_str.='$dbpasswd="'.$_POST[dbpasswd].'";';
$config_str.="/n";
$config_str.='$dbname="'.$_POST[dbname].'";';
$config_str.="/n";
$config_str.='$dbprefix="'.$_POST[dbprefix].'";';//数据库前缀
$config_str.="/n";
$config_str.="?>";
$f_open=fopen($file,"w+");
fwrite($f_open ,$config_str);
include_once("config.php");
if (! @$link=mysql_connect($hostname,$dbuser,$dbpasswd))
{
echo "数据库连接失败!<a href='install.php'>返回</a>";
}
else
{ echo "连接成功!";
$DATABASESQL="DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";
mysql_query("create database `$dbname`".$DATABASESQL);
mysql_query("set names utf8");
mysql_select_db($dbname);
$sql[]="create table `".$dbprefix."table1`
(`id` int(8) unsigned not null auto_increment,
`username` varchar(40) not null comment '操作用户名称',
primary key(`id`))DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$sql[]="create table `".$dbprefix."table2`
(`id` int(8) unsigned not null auto_increment,
`username` varchar(40) not null comment '操作用户名称',
primary key(`id`))DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
foreach($sql as $val){ mysql_query($val);
echo "<strong><font color=green>恭喜您,安装成功!</font></strong>";
rename("install.php","install.lock"); }
}
}
?>
<form action="" method="post">
主机:<input type="text" name="hostname" value="127.0.0.1"><br>
用户名:<input type="text" name="dbuser" value="root"><br>
密码:<input type="text" name="dbpasswd" value=""><br>
数据库名:<input type="text" name="dbname" value="mydb"><br>
表前缀:<input type="text" name="dbprefix" value="king_"><br>
<button type="submit" name="install" >安装</button>
</form>