php 如何写一个自己项目的安装程序
php的项目做完之后,一般都是预留出来配置文件,我们要做安装程序就是来操作这个配置文件,如果用到了数据库,就还要操作数据库,下面就说一下带有数据库的安装程序的写法
1,检测目录和文件的权限:一直使用win的同学可能不注意这一点,因为在win上,目录的权限是比较模糊的,但是在Linux上,文件的权限是很重要的,所以在开发过程中,要记录好你项目中那些目录和文件是需要有写入权限的,哪些是要有可执行权限等等。而那些不需要写入权限的,最好就不要让他有写入权限,这样才会更安全。你可以用php的函数,判断一下你指定的文件或目录是否具有相应的权限,如果没有,给出提示让他从ftp或其他方式修改,或者是你用php的chmod()函数,将指定的文件修改为指定的权限。比如,你的程序如果有生成静态文件,或生成备份文件的。就要有写入权限。这个时候,一般情况下安装程序都是写在一个叫做install的目录下,一定要注意里面程序的路径问题,这里就要大家研究下了。
2,修改配置文件:一般这个配置文件就是数据库的配置文件,当然有的时候也有一些你的程序的必要的配置文件,比如你有定义一个全局变量的值,需要在安装的时候就指定好,那就要在这里让安装者填写,这些需要的配置变量填写完,一定要进行验证是否正确填写,是否能配置成功,比如数据库的,就链接一下数据库,看能否正确链接,当全部验证通过,我们可以通过正则等,将配置文件修改为他填写好的对应的值。
3,导入数据库:数据库导入有很多方法了,有的人习惯与用一些phpmyadmin的程序等,但有的情况下使用者可能只有一个账号而已,所以要写个数据库导入程序,这个程序其实很简单,我们可以讲我们的数据库清空一下可以清空的数据表,然后转存为sql文件,或者其他的文件(php文件,当然相应的导入程序要对应的来写了,这里以MySQL导出的sql文件这样的最简单为例),然后我们读取这个sql文件,执行里面的sql语句即可(可能有的时候要过滤一下里面的其他的东西,注释等),当然也可以写成其他的数据库导入程序,比如现在大部分导入程序为其专门写一个导入程序,都是可以的。
4,建立初始用户:这个就容易理解了,无非就是建一个系统的初始超级管理员,这样就可以登录使用了。
但是有的安装程序可能相对复杂,有了其他的要求,比如这个导医系统,我就做了两个安装程序工用户选中,一个是初始安装,就是第一次用的,一个是原来有一个.net写的导医系统,我就是把这个.net的改版了,并升级了一下。这样有的情况下,就要保留原有的.net数据转移到这个程序上,所以就要增加转入程序。
install.php简单制作
最近本博编写了一些源码,有夏日CMS文章管理系统、夏日PHP留言本、夏日PHP增删改查程序、夏日PHP投票系统等,这些都是为方便 PHP 新手朋友学习使用的,所以直接导出了 mysql 数据库,将其放在了根目录下,其实这样给初学者的体验度并不是很好,有许多 PHP 新手朋友都不知道如何进行导入 mysql 数据库,不得已,后来专门写了一篇关于“如何利用工具导入mysql数据库”的文章。
如果我们使用过织梦等开源的PHP程序,就会感觉下载下来的源码使用很简单,因为有一个安装源码文件,通过这个源码,自动进行mysql数据库的导入和程序的配置安装,即使不懂PHP程序,安装使用起来也很简单,对于学习PHP来说,这是一个很有必要了解的一个功能,之前本博写过一个简单的安装程序,这里简要讲一下PHP安装程序的原理。
下载下来的PHP源码,通常在根目录下会有一个 install.php 的文件,这个就是 PHP 源码的安装文件了,如果要安装 PHP 源码,通常都是通过“您的网址/install.php”路径进行安装,在安装过程中,会要求填写 mysql 用户名和密码等,按照要求填写正确即可以安装成功。
其实我们可以在 install.php 的安装面板中可以了解到 PHP 程序安装的原理,通过 install.php 的文件,会要求我们填写 主机地址,mysql 用户名,mysql 密码,mysql 数据库,基本上都是这些,至于更复杂的,可能会要求一些可写文件什么的,我们先看一下最简单的原理,知道了在安装时要求填写的这些基本信息,那就不难想到,这些无非就是 要生成一个配置 config.php 类似的文件,通过这个 config.php 配置文件,就可以连接 mysql 数据库,然后通过 PHP SQL 语句将其
填写的 mysql 表新建出来,这个最简单的 install.php 安装小程序就制作出来了。
下面看一个 install.php 安装文件的简单制作源码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
<head> <meta "Content-Type" content= "text/html; /> <title>php安装小程序</title> </head> <body> <?php if ( $_GET [ 'action' ]!=1) { ?> <form "install.php?action=1" method= "post" > 主机地址:<input "text" name= "host" value= "localhost" ><br> 用户名:<input "text" name= "user" value= "root" ><br> 密码:<input "password" name= "psw" value= "" ><br> 新建表名<input "text" name= "db" value= "blog" ><br> 提交<input "submit" name= "sub" value= "提交" /> </form> <?php } else { $lockfile = "install.lock" ; if ( $_POST [ 'host' ]!= "" && $_POST [ 'user' ]!= "" && $_POST ['ps w ']!="" db']!= "" ) { $host = $_POST [ 'host' ]; $user = $_POST [ 'user' ]; $psw = $_POST [ 'psw' ]; $db = $_POST [ 'db' ]; } if ( file_exists ( $lockfile )){ exit ( "已经安装过了,如果要重新安装请先删除install.lock" ); } $conn =mysql_connect( $host , $user , $psw ); if ( $conn ) { $sql_drop_db = "Drop . $db . "`" ; $sql_create_db = "Create . $db . "`" ; $sql_create_table_blog ="Create `id` `con` al_ci PRIMARY ) } mysql_query( $sql_drop_db , $conn ); mysql_query( $sql_create_db , $conn ); mysql_query( $sql_create_table_blog , $conn ); $config_file = "config.php" ; $config_strings = "<?php\n" ; $config_strings .= "\$host=\"" . $host . "\";\n" ; $config_strings .= "\$user=\"" . $user . "\";\n" ; $config_strings .= "\$psw=\"" . $psw . "\";\n" ; $config_strings .= "\$db=\"" . $db . "\";\n" ; $config_strings .= "\$conn=mysql_connect(\$host,\$user,\$psw);\n" ; $config_strings .= "mysql_select_db(\$db,\$conn);\n" ; $config_strings .= "?>" ; $fp = fopen ( $config_file , "wb" ); fwrite( $fp , $config_strings ); fclose( $fp ); $fp2 = fopen ( $lockfile , 'w' ); fwrite( $fp2 , '1212' ); fclose( $fp2 ); } ?> </body> </html> |
小说明:对于一些大型的PHP源码,最核心的原理基本上也是这些了,对于 PHP 初学者来说,没必要去了解那么复杂的PHP安装程序,先把 PHP 源码的简单安装文件制作掌握了,那些复杂的就不难了,通过运行上面的程序,会自动生成 PHP 的配置文件 config.php ,这是与 mysql 数据库通信的文件,还会生成一个 install.lock 文件,这是判断是否已经成功安装的文件,还会在 mysql
数据库当中新建一个你手动填加的 mysql 数据库。。
版权声明:此篇文章只是用作笔记,如果版权冲突,请邮件通知一下(15201155501@163.com) https://blog.csdn.net/shenpengchao/article/details/56678266
php的项目做完之后,一般都是预留出来配置文件,我们要做安装程序就是来操作这个配置文件,如果用到了数据库,就还要操作数据库,下面就说一下带有数据库的安装程序的写法
1,检测目录和文件的权限:一直使用win的同学可能不注意这一点,因为在win上,目录的权限是比较模糊的,但是在Linux上,文件的权限是很重要的,所以在开发过程中,要记录好你项目中那些目录和文件是需要有写入权限的,哪些是要有可执行权限等等。而那些不需要写入权限的,最好就不要让他有写入权限,这样才会更安全。你可以用php的函数,判断一下你指定的文件或目录是否具有相应的权限,如果没有,给出提示让他从ftp或其他方式修改,或者是你用php的chmod()函数,将指定的文件修改为指定的权限。比如,你的程序如果有生成静态文件,或生成备份文件的。就要有写入权限。这个时候,一般情况下安装程序都是写在一个叫做install的目录下,一定要注意里面程序的路径问题,这里就要大家研究下了。
2,修改配置文件:一般这个配置文件就是数据库的配置文件,当然有的时候也有一些你的程序的必要的配置文件,比如你有定义一个全局变量的值,需要在安装的时候就指定好,那就要在这里让安装者填写,这些需要的配置变量填写完,一定要进行验证是否正确填写,是否能配置成功,比如数据库的,就链接一下数据库,看能否正确链接,当全部验证通过,我们可以通过正则等,将配置文件修改为他填写好的对应的值。
3,导入数据库:数据库导入有很多方法了,有的人习惯与用一些phpmyadmin的程序等,但有的情况下使用者可能只有一个账号而已,所以要写个数据库导入程序,这个程序其实很简单,我们可以讲我们的数据库清空一下可以清空的数据表,然后转存为sql文件,或者其他的文件(php文件,当然相应的导入程序要对应的来写了,这里以MySQL导出的sql文件这样的最简单为例),然后我们读取这个sql文件,执行里面的sql语句即可(可能有的时候要过滤一下里面的其他的东西,注释等),当然也可以写成其他的数据库导入程序,比如现在大部分导入程序为其专门写一个导入程序,都是可以的。
4,建立初始用户:这个就容易理解了,无非就是建一个系统的初始超级管理员,这样就可以登录使用了。
但是有的安装程序可能相对复杂,有了其他的要求,比如这个导医系统,我就做了两个安装程序工用户选中,一个是初始安装,就是第一次用的,一个是原来有一个.net写的导医系统,我就是把这个.net的改版了,并升级了一下。这样有的情况下,就要保留原有的.net数据转移到这个程序上,所以就要增加转入程序。
install.php简单制作
最近本博编写了一些源码,有夏日CMS文章管理系统、夏日PHP留言本、夏日PHP增删改查程序、夏日PHP投票系统等,这些都是为方便 PHP 新手朋友学习使用的,所以直接导出了 mysql 数据库,将其放在了根目录下,其实这样给初学者的体验度并不是很好,有许多 PHP 新手朋友都不知道如何进行导入 mysql 数据库,不得已,后来专门写了一篇关于“如何利用工具导入mysql数据库”的文章。
如果我们使用过织梦等开源的PHP程序,就会感觉下载下来的源码使用很简单,因为有一个安装源码文件,通过这个源码,自动进行mysql数据库的导入和程序的配置安装,即使不懂PHP程序,安装使用起来也很简单,对于学习PHP来说,这是一个很有必要了解的一个功能,之前本博写过一个简单的安装程序,这里简要讲一下PHP安装程序的原理。
下载下来的PHP源码,通常在根目录下会有一个 install.php 的文件,这个就是 PHP 源码的安装文件了,如果要安装 PHP 源码,通常都是通过“您的网址/install.php”路径进行安装,在安装过程中,会要求填写 mysql 用户名和密码等,按照要求填写正确即可以安装成功。
其实我们可以在 install.php 的安装面板中可以了解到 PHP 程序安装的原理,通过 install.php 的文件,会要求我们填写 主机地址,mysql 用户名,mysql 密码,mysql 数据库,基本上都是这些,至于更复杂的,可能会要求一些可写文件什么的,我们先看一下最简单的原理,知道了在安装时要求填写的这些基本信息,那就不难想到,这些无非就是 要生成一个配置 config.php 类似的文件,通过这个 config.php 配置文件,就可以连接 mysql 数据库,然后通过 PHP SQL 语句将其
填写的 mysql 表新建出来,这个最简单的 install.php 安装小程序就制作出来了。
下面看一个 install.php 安装文件的简单制作源码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
<head> <meta "Content-Type" content= "text/html; /> <title>php安装小程序</title> </head> <body> <?php if ( $_GET [ 'action' ]!=1) { ?> <form "install.php?action=1" method= "post" > 主机地址:<input "text" name= "host" value= "localhost" ><br> 用户名:<input "text" name= "user" value= "root" ><br> 密码:<input "password" name= "psw" value= "" ><br> 新建表名<input "text" name= "db" value= "blog" ><br> 提交<input "submit" name= "sub" value= "提交" /> </form> <?php } else { $lockfile = "install.lock" ; if ( $_POST [ 'host' ]!= "" && $_POST [ 'user' ]!= "" && $_POST ['ps w ']!="" db']!= "" ) { $host = $_POST [ 'host' ]; $user = $_POST [ 'user' ]; $psw = $_POST [ 'psw' ]; $db = $_POST [ 'db' ]; } if ( file_exists ( $lockfile )){ exit ( "已经安装过了,如果要重新安装请先删除install.lock" ); } $conn =mysql_connect( $host , $user , $psw ); if ( $conn ) { $sql_drop_db = "Drop . $db . "`" ; $sql_create_db = "Create . $db . "`" ; $sql_create_table_blog ="Create `id` `con` al_ci PRIMARY ) } mysql_query( $sql_drop_db , $conn ); mysql_query( $sql_create_db , $conn ); mysql_query( $sql_create_table_blog , $conn ); $config_file = "config.php" ; $config_strings = "<?php\n" ; $config_strings .= "\$host=\"" . $host . "\";\n" ; $config_strings .= "\$user=\"" . $user . "\";\n" ; $config_strings .= "\$psw=\"" . $psw . "\";\n" ; $config_strings .= "\$db=\"" . $db . "\";\n" ; $config_strings .= "\$conn=mysql_connect(\$host,\$user,\$psw);\n" ; $config_strings .= "mysql_select_db(\$db,\$conn);\n" ; $config_strings .= "?>" ; $fp = fopen ( $config_file , "wb" ); fwrite( $fp , $config_strings ); fclose( $fp ); $fp2 = fopen ( $lockfile , 'w' ); fwrite( $fp2 , '1212' ); fclose( $fp2 ); } ?> </body> </html> |
小说明:对于一些大型的PHP源码,最核心的原理基本上也是这些了,对于 PHP 初学者来说,没必要去了解那么复杂的PHP安装程序,先把 PHP 源码的简单安装文件制作掌握了,那些复杂的就不难了,通过运行上面的程序,会自动生成 PHP 的配置文件 config.php ,这是与 mysql 数据库通信的文件,还会生成一个 install.lock 文件,这是判断是否已经成功安装的文件,还会在 mysql
数据库当中新建一个你手动填加的 mysql 数据库。。
php 如何写一个自己项目的安装程序的更多相关文章
- 如何给自己的PHP项目制作安装程序
最近很是激动啊,现在的自己还是和当初刚刚学习程序的时候一样,虽然现在回头一看自己写过的程序,都非常的小孩子和漏洞百出,也没有太多的考虑效率和安全,但是还是每次写出了新的程序或系统,都是抱着一种马上拿着 ...
- 一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(四) --高级设置二
原文:一个完整的Installshield安装程序实例-艾泽拉斯之海洋女神出品(四) --高级设置二 上一篇:一个完整的安装程序实例—艾泽拉斯之海洋女神出品(三) --高级设置一4. 根据用户选择的组 ...
- 一个完整的Installshield安装程序实例-转
一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(一)---基本设置一 前言 Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于 ...
- [转]一个完整的Installshield安装程序实例
@import url("http://files.cnblogs.com/files/go-jzg/vs.css"); --> Installshield安装程序实例—基本 ...
- 郑晔谈 Moco 框架的开发:写一个好的内部 DSL ,写一个表达性好的程序
作者:张龙 出处:http://www.infoq.com/cn/news/2013/07/zhengye-on-moco 郑晔谈Moco框架的开发:写一个好的内部DSL,写一个表达性好的程序 作者 ...
- 用ASP.Net写一个发送ICQ信息的程序
用ASP.Net写一个发送ICQ信息的程序 这里我给大家提供一个很实用的例子,就是在线发送ICQ信息.想一想我们在网页上直接给朋友发送ICQ信息,那是多么美妙的事情啊.呵呵,在吹牛啊,其实ICQ本来就 ...
- 写一个带文本菜单的程序,菜单项如下 (1) 取五个数的和 (2) 取五个数的平均值 (X) 退出。
问题: 写一个带文本菜单的程序,菜单项如下(1) 取五个数的和 (2) 取五个数的平均值(X) 退出. 由用户做一个选择, 然后执行相应的功能.当用户选择退出时程序结束. 实现: ...
- CBrother脚本10分钟写一个拯救“小霸王服务器”的程序
CBrother脚本语言10分钟写一个拯救“小霸王服务器”的程序 到了一家新公司,接手了一坨c++服务器代码,到处内存泄漏,这服务器没有数据库,挂了后重启一下就好了,公司就这么凑活着用了几年了,定时重 ...
- 无监控不运维——使用 Python 写一个小小的项目监控
在公司里做的一个接口系统,主要是对接第三方的系统接口,所以,这个系统里会和很多其他公司的项目交互.随之而来一个很蛋疼的问题,这么多公司的接口,不同公司接口的稳定性差别很大,访问量大的时候,有的不怎么行 ...
随机推荐
- H265(HEVC) nal 单元头介绍及rtp发送中的fu分组发送详解
首先来介绍下h265(HEVC)nal单元头,与h264的nal层相比,h265的nal unit header有两个字节构成,如下图所示: 从图中可以看出hHEVC的nal包结构与h264有明显的不 ...
- 关于obj.currentStyle.property、window.getComputedStyle(obj,null).property、obj.style.property的理解
首先是obj,style.property 我一直用这个obj.style.property这个属性来修改内联和外联的obj属性,但是从网上看到了obj.style.property居然只能读取内嵌的 ...
- Strtus2学习
Struts 2 体系结构 : 1.Web浏览器请求一个资源. 2.过滤器Dispatcher查找方法,确定适当的Action. 3.拦截器自动对请求应用通用功能,如验证和文件上传操作. 4.Acti ...
- Linux运维命令总结
.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络.系统.数据库.开发.安全.监控于一身 ...
- Linux 时区的修改
Linux 时区的修改 1. CentOS和Ubuntu的时区文件是/etc/localtime,但是在CentOS7以后localtime以及变成了一个链接文件 ``` [root@centos7 ...
- 负载均衡器&http正向代理
透明的负载均衡器&http正向代理 * master-workers架构,http正向代理由独立的dns请求以及缓冲进程 * 使用epoll(ET)模式,採用全异步方式(双缓存,实现双向同一 ...
- Date类的用法
package example; import java.text.DateFormat; import java.text.ParseException; import java.text.Simp ...
- 76.CGI编码
CGI编码 "%D6%DC%C8%F0%B8%A3"; 转换到字符串中: //CGI编码转到char类型的tmpstr中中 char* change(char *str) { // ...
- 银行测试 http://blog.csdn.net/stillming/article/details/42275251
从一家工作了五年的软件公司的测试管理者跳槽到**银行做软件测试,短短两个月,对银行测试有了初步认识,总结和记录下来,加深个人的理解,同时也共享给各位. 银行作为大家的理财顾问,对金钱非常敏感,频繁甚至 ...
- JSP页面开发规范案例
添加 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncodi ...