您现在的位置是:首页 > 其他

李清波 2015-09-23 其他 52350 复制当前网址

php网站制作安装程序步骤及原理

    当我们的PHP网站架构完成后,想放到服务器上运行或共享给别人,首页我们必须打包程序与数据库,通过安装文件一步步来设置网站的所有信息。

    这里就必须学会怎样制作安装包,PHP网站的安装程序主要就是把数据库的连接信息、数据库表的结构、数据的初始化、安装环境的检测、配置系统的参数进行一系列设置。


 第一步:我们先新建一个install文件夹,install下层主要包括以下文件夹:

    (1)template,主要放调用的模板页面,包括:confing.html、check.html、license.htm、 install.html。

    (2)data, 写个数组,把数据库的结构信息写在里面并保存成data.php文件如以下:

$data[]=array(
    "CREATE TABLE IF NOT EXISTS '".Database."admin' (
       'id' mediumint(8) NOT NULL auto_increment,
       'admin_name' varchar(60) NOT NULL,
       'admin_password' varchar(60) NOT NULL,
       'admin_purview' mediumint(8) NOT NULL,
       'admin_admin' varchar(60) default NULL,
       'admin_mail' varchar(60) default NULL,
       'admin_tel' varchar(60) default NULL,
   PRIMARY KEY ('id')
  )


(3) init, 初始化文件,主要定义一系列的常量,包括数据库路径,文件存储路径,文件调用路径,环境变量值设置,客户端gpc的处理。

 常量的定义一般我们用到define('常量名','初始化值’),环境变量值设置一般用到get_magic_quotes_gpc(),当然php6可能去掉了这个功能。客户端gpc的处理@extract($_POST); 意思是:处理$_post表单,把$_post客户端表单的变量名取出来。例如:

if (!get_magic_quotes_gpc()){   
    if (isset($_REQUEST)){       
        $_REQUEST = addslashes($_REQUEST);       
        $_COOKIE  = addslashes($_COOKIE);     
        $_POST = addslashes($_POST);      
        $_GET = addslashes($_GET);   
     } 
} 
@extract($_POST);
@extract($_COOKIE);



(4)一切初始化后紧接着就就调用模板文件,首页license.htm, 主要是显示网站的一些版权信息,网站内容与相关应用,这一步一般都直接跳过,然后就进入check.html, 检查客户端的环境支持,包括:网站文件夹的读写情况,GD或UTF-8的支持,MySql的支持,php版本,操作系统,服务器,服务器IP。

网站文件夹的读写:我们一般会定义一个数组,要可以读写的文件夹列出来,然后通过判断文件的可读写性,例如:

function check_dir_write($path){         
     if(!file_exists($path)){return false;}
     $file=$path.'write.txt';
     if(!$fp=@fopen($file,'w')){return false;}  
     if(!@fwrite($fp,'write')){return false;}  
     fclose($fp);                              
     @unlink($file);                           
     return true;
}


 (5)  然后进入数据库配置文件的填写:包括:数据库主机,名称,用户名,密码,数据表前缀,管理员帐号,密码,管理邮箱。

填写完提交后,我们就把信息用define常量初始化,然后就判断数据库连接与打开情况,接着就把初始化常量写入confing.php缓存文件,最后一步就是调用data.php数据表结构文件,在install.html写入数据库连接,通过判断其连接情况,安装data数组下的所有数据表,完成!

代码参考:


global $localhost,$db_name,$db_user,$db_password,$db_pre,$admin,$password,$password2,$mail;
$loclahost=empty($localhost)?'':trim($localhost);
$db_name=empty($db_name)?'':trim($db_name);
$db_user=empty($db_user)?'':trim($db_user);
$db_password=empty($db_password)?'':trim($db_password);
$db_pre=empty($db_pre)?'lps_':trim($db_pre);
$str="    echo "


安装中,请稍后...

   $msg='';
   foreach($data as $k=>$v){
   $msg.=empty($v[1])?"":"

   

安装【{$v[1]}】表

unset($data);
echo $msg;
$fp=fopen(DATA_PATH.'install.lock','w+');
@fwrite('beescms',$fp);
fclose($fp);
echo "

恭喜你,网站已经成功安装



文章来源:http://liqingbo.com/blog-14.html

评论