水平凡 update mysql_安装向导制做

本文介绍了作为一名PHP开发工程师如何创建一个系统安装向导,特别是针对在新浪SAE上的安装。文章详细讲解了从检查系统是否已安装、环境检测、配置信息设置、安装流程到安装完成的各个步骤,以及涉及到的文件管理和平台适配。通过实例代码,阐述了在不同平台上(如本地、新浪SAE)进行安装判断和操作的方法。
摘要由CSDN通过智能技术生成

序言

做为一名php开发工程师,确定少不了本身开发web系统项目。若是项目是面向大众的,须要他人安装你的产品,不可缺乏的就是须要弄个安装向导,这样才能让他们简单轻松的安装你的产品。若是你以为不必,以为写个文档教程就能够,那我想说,你的产品是面向同行人...不过做为程序员,最终咱们仍是须要学习怎样开发出系统的安装向导,由于这不是有没有用的问题,而是学没学到的问题.... php

咱们都知道,通常系统有没有安装都是经过判断系统中是否有某种文件,有则说明已安装,没有则未安装。而这个文件是安装完成后生成的,因此能够拿来判断。在这里我也是使用判断文件的方式来判断系统是否已安装。但这里有个问题,对于使用新浪SAE来讲,因为不支持本地文件写操做,那咱们就生成不了文件,这样判断文件是否存在就无效了。而这里的解决方法是将文件生成在新浪的storage,但这里又有个问题,就是生成的操做方式不同,storage是新浪SAE为开发者提供的分布式文件存储服务,咱们只能用它给出的类来生成文件,因此若是系统须要在新浪SAE上完成安装向导的话,则须要判断当前是哪中平台,而后根据不一样平台调用不一样的方法.... css

开始

目录结构

install --------------------------------->安装入口文件夹

├ templates ------------------------->页面模板文件夹

│ ├ images -------------------------->页面图片文件夹

│ │ └ ....

│ ├ js -------------------------------->页面js文件夹

│ │ ├ jquery.js

│ │ └ validate.js

│ ├ css ------------------------------>页面css文件夹

│ │ └ install.css

│ ├ 0.php ---------------------------->获取新浪sae storage 页面

│ ├ 1.php ---------------------------->安装许可协议页面

│ ├ 2.php ---------------------------->运行环境检测页面

│ ├ 3.php ---------------------------->安装参数设置页面

│ ├ 4.php ---------------------------->安装详细过程页面

│ ├ 5.php ---------------------------->安装完成页面

│ ├ header.php --------------------->公共页面头部

│ └ footer.php ---------------------->公共页面尾部

├ config.ini.php --------------------->数据库配置文件模板

├ config.php ------------------------>安装配置文件

├ index.php ------------------------->系统安装入口

├ location.php ---------------------->本地环境安装,非云平台

├ main.php -------------------------->当数据写入到数据库后,进行添加管理员,生成配置文件等操做

├ sae.php --------------------------->新浪sae平台

├ db.sql ----------------------------->数据库文件

└ license.txt ------------------------->协议文件 html

图结构

3ff09ad498ec43ce81e6a934.html

install文件夹做为安装入口文件存放的地方,由于在安装完成后这个文件夹是能够删除的,因此在开发的时候,这部分须要独立出来,就是删除后不影响系统运行... mysql

步骤

一、当进入安装时,首先运行index.php入口文件

二、而后获取配置信息config.php

1

//配置信息

2

$config = include './config.php';

3

if(empty($config)){

4

exit(get_tip_html('安装配置信息不存在,没法继续安装!'));

5

}

这里的配置信息的目的是:只须要修改这个文件就能兼容在其余系统上,而不须要修改太多的其余文件 jquery

01

return array(

02

/* ------系统------ */

03

//系统名称

04

'name'=>'赞博客,赞生活',

05

//系统版本

06

'version'=>'1.0',

07

//系统powered

08

'powered'=>'Powered by chenhaizan.com',

09

//系统脚部信息

10

'footerInfo'=> 'Copyright © 2012-2013 chenhaizan.cn Corporation',

11

12

/* ------站点------ */

13

//数据库文件

14

'sqlFileName'=>'db.sql',

15

//生成数据库配置文件的模板

16

'dbSetFile'=>'config.ini.php',

17

//数据库名

18

'dbName' => 'myblog',

19

//数据库表前缀

20

'dbPrefix' => 'haizan_',

21

//站点名称

22

'siteName' => '个人博客',

23

//站点关键字

24

'siteKeywords' => '个人博客',

25

//站点描述

26

'siteDescription' => '个人博客',

27

//附件上传的目录

28

'uploaddir' => 'upload',

29

//须要读写权限的目录

30

'dirAccess' => array(

31

'/',

32

'config',

33

'upload',

34

'template',

35

'install',

36

'includes/uc_client/data',

37

),

38

/* ------写入数据库完成后处理的文件------ */

39

'handleFile' => 'main.php',

40

/* ------安装验证/生成文件;非云平台安装有效------ */

41

'installFile' => '../config/install.lock',

42

'alreadyInstallInfo' => '你已经安装过该系统,若是想从新安装,请先删除站点config目录下的 install.lock 文件,而后再尝试安装!',

43

);

三、而后进行判断当前运行的平台,获取相应的平台文件

01

//安装环境验证,获取相应判断信息

02

if(function_exists('saeAutoLoader')){

03

//新浪SAE

04

define('INSTALLTYPE', 'SAE');

05

require './sae.php';

06

}elseif(isset($_SERVER['HTTP_BAE_ENV_APPID'])){

07

//百度BAE

08

define('INSTALLTYPE', 'BAE');

09

require './bae.php';

10

}else{

11

define('INSTALLTYPE', 'HOST');

12

//本地

13

require './localhost.php';

14

}

如当是本地环境时,加载location.php文件,咱们在这个文件中进行是否安装判断等操做 程序员

1

//检测是否已经安装

2

if(file_exists($config['installFile'])){

3

exit(get_tip_html($config['alreadyInstallInfo']));

4

}

5

6

//写入文件

7

function filewrite($file){

8

@touch($file);

9

}

当在SAE中,加载sae.php,进行获取storage domain操做,判断安装操做和一些服务是否开启 web

001

//设置storage的domain

002

if($_GET['step'] == 0){

003

if(empty($_POST['storagedomain'])){

004

$step_html = '

0Storage设置';

005

include './templates/0.php';

006

exit;

007

} else {

008

$_SESSION['STORAGEDOMAIN'] = $_POST['storagedomain'];

009

if(!empty($_SESSION['STORAGEDOMAIN'])){

010

header('location:./index.php?step=1');

011

exit();

012

}

013

}

014

}

015

if(!isset($_SESSION['STORAGEDOMAIN']) || empty($_SESSION['STORAGEDOMAIN'])){

016

header('location:./index.php?step=0');

017

exit;

018

}

019

$config['uploaddir'] = $_SESSION['STORAGEDOMAIN'];

020

define('SAESTOR_INSTALL_NAME', $_SESSION['STORAGEDOMAIN'].'/saestor_'. $_SERVER['HTTP_APPVERSION'] . '_install.lock');

021

$config['alreadySaeInstallInfo'] = "版本" . $_SERVER['HTTP_APPVERSION'] . "已完成安装!请删除网站根目录下的install目录!
若是须要从新安装,请先删除storage内的 saestor_" . $_SERVER['HTTP_APPVERSION'] . "_install.lock 文件";

022

if(fileExists(SAESTOR_INSTALL_NAME)){

023

exit(get_tip_html($config['alreadySaeInstallInfo']));

024

}

025

if(!is_storage){

026

exit(get_tip_html('请开启storage服务!'));

027

}

028

if(!is_mc){

029

exit(get_tip_html('请开启memcahce服务!'));

030

}

031

if(!is_mysql){

032

exit(get_tip_html('请开启mysql服务!'));

033

}

034

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值