最近很是激动啊,现在的自己还是和当初刚刚学习程序的时候一样,虽然现在回头一看自己写过的程序,都非常的小孩子和漏洞百出,也没有太多的考虑效率和安全,但是还是每次写出了新的程序或系统,都是抱着一种马上拿着去参赛的心情。感觉很爽啊,虽然过段时间再回看这个程序,又会发现一些不足,但无疑这样积极的心态让我受益匪浅。做程序就是要这样,通过一些小小的成功,来增加自己的成就感和自豪感,这样会让你更有兴趣。

这个导医系统,本来是为了满足公司需要开发的,所以没有考虑太多,是我自己做的,历时也不是很长时间,不过也是直接跳过内部测试,直接边使用边测试的,现在使用了近一年时间了,数据量级现在为十几万级,中间有几次小的修改和升级,也算是度过了测试,运行比较良好。所以最近又升级了一下,希望可以做个简单的通用发行版。所以今天就做了下安装程序。下面就总结一下php的安装程序的做法。

这里我不会写具体的代码了,是要说一下做这个安装程序的思路。php做的程序或系统,一般都是bs的系统,无论你是否是使用域名公网使用,还是内部搭建环境,自己内部使用,都是一样的。所以php的程序是基于环境的,这里就不说环境的搭建了,无论你是用集成,等等都可以,在哪个服务器也都可以。这里主要说一下php的安装程序的实现,所有的程序都是目录和文件,php也是一样。

php的项目做完之后,一般都是预留出来配置文件,我们要做安装程序就是来操作这个配置文件,如果用到了数据库,就还要操作数据库,下面就说一下带有数据库的安装程序的写法.

1,检测目录和文件的权限:一直使用win的同学可能不注意这一点,因为在win上,目录的权限是比较模糊的,但是在linux上,文件的权限是很重要的,所以在开发过程中,要记录好你项目中那些目录和文件是需要有写入权限的,哪些是要有可执行权限等等。而那些不需要写入权限的,最好就不要让他有写入权限,这样才会更安全。你可以用php的函数,判断一下你指定的文件或目录是否具有相应的权限,如果没有,给出提示让他从ftp或其他方式修改,或者是你用php的chmod()函数,将指定的文件修改为指定的权限。比如,你的程序如果有生成静态文件,或生成备份文件的。就要有写入权限。这个时候,一般情况下安装程序都是写在一个叫做install的目录下,一定要注意里面程序的路径问题,这里就要大家研究下了。

2,修改配置文件:一般这个配置文件就是数据库的配置文件,当然有的时候也有一些你的程序的必要的配置文件,比如你有定义一个全局变量的值,需要在安装的时候就指定好,那就要在这里让安装者填写,这些需要的配置变量填写完,一定要进行验证是否正确填写,是否能配置成功,比如数据库的,就链接一下数据库,看能否正确链接,当全部验证通过,我们可以通过正则等,将配置文件修改为他填写好的对应的值。

3,导入数据库:数据库导入有很多方法了,有的人习惯与用一些phpmyadmin的程序等,但有的情况下使用者可能只有一个账号而已,所以要写个数据库导入程序,这个程序其实很简单,我们可以讲我们的数据库清空一下可以清空的数据表,然后转存为sql文件,或者其他的文件(php文件,当然相应的导入程序要对应的来写了,这里以mysql导出的sql文件这样的最简单为例),然后我们读取这个sql文件,执行里面的sql语句即可(可能有的时候要过滤一下里面的其他的东西,注释等),当然也可以写成其他的数据库导入程序,比如现在大部分导入程序为其专门写一个导入程序,都是可以的。

4,建立初始用户:这个就容易理解了,无非就是建一个系统的初始超级管理员,这样就可以登录使用了。

但是有的安装程序可能相对复杂,有了其他的要求,比如这个导医系统,我就做了两个安装程序工用户选中,一个是初始安装,就是第一次用的,一个是原来有一个.net写的导医系统,我就是把这个.net的改版了,并升级了一下。这样有的情况下,就要保留原有的.net数据转移到这个程序上,所以就要增加转入程序。

以上是本文关于php 如何写一个自己项目的安装程序,希望本文对广大php开发者有所帮助,感谢阅读本文。

如何给自己的PHP项目制作安装程序的更多相关文章

  1. Wix打包系列(一)如何使用wix制作安装程序

    原文:Wix打包系列(一)如何使用wix制作安装程序 最近由于项目需要,需要给客户制作安装程序,一开始使用vs2005自带的打包工程来打包,但用了一段时间发现vs打包太死板,而且使用起来问题很多.收费 ...

  2. vs.net应用程序图标以及制作安装程序快捷方式图标设置

           我们通常在开发软件完毕后需要打包制作安装程序,这个时侯一般都会需要设置应用程序的图标,使用默认的图标一般都比较难看,那么我们应该怎样设置自定义的图标呢? 我现在要讲的图标设置有两种情况, ...

  3. VS2010制作安装程序

    转自(http://blog.csdn.net/wenmang1977/article/details/7733685) 序 前些天想写一下制作安装程序,由于要写的内容比较多,一拖再拖,不过坚持就是胜 ...

  4. 使用好压(HaoZip)软件打包EverEdit制作安装程序

    最近使用EverEdit,使用原始的安装程序安装后,需要重新安装插件,对配置文件进行了修改,定制了工具栏.将安装后的程序目录进行打包,制作新的安装包,便于携带. 以下为打包制作过程: 打包原料:Eve ...

  5. Unity 制作安装程序和卸载程序

    1.最简单的方式通过winrar制作 但是做出来的页面好low的感觉 参考链接:https://www.cnblogs.com/fetty/p/5185913.html 2.通过inno制作安装程序: ...

  6. php 如何写一个自己项目的安装程序

    版权声明:此篇文章只是用作笔记,如果版权冲突,请邮件通知一下(15201155501@163.com) https://blog.csdn.net/shenpengchao/article/detai ...

  7. 使用WINRAR来制作安装程序

    1. WINRAR版本 2. 将所有文件放在同一个文件夹下 3. 选中所有文件点击右键 -> Add to archive 4. General设置 5. Advanced 设置 6. 确定开始 ...

  8. C#打包制作安装程序过程全记录

    该文是根据网上的文章并结合自己实际打包的过程而整理的. 开发平台:VisualStudio2005中文版. 步骤如下: 1. 创建一个安装向导项目或安装部署项目 新建项目-〉其他项目类型-〉安装与部署 ...

  9. 利用ASP.NET操作IIS (可以制作安装程序)

    很多web安装程序都会在IIS里添加应用程序或者应用程序池,早期用ASP.NET操作IIS非常困难,不过,从7.0开始,微软提供了 Microsoft.Web.Administration 类,可以很 ...

随机推荐

  1. 微信小程序倒计时实现

    思路:跟一般js倒计时一样,主要在于this的变相传递. 实现效果: wxml文件部分代码: common.js文件 : 引用页JS文件: PS: 1.在data里初始化时间格式,是避免时间加载的第1 ...

  2. Robot Framework 教程 (1) - 环境配置及简单网站兼容性测试

    0.Robot Framework 简介 Robot Framework 是一个通用的自动化测试框架,主要用于“验收测试”和“验收测试驱动开发(ATDD)” (会其它文章中会详细介绍ATDD).它使用 ...

  3. linux_添加定时任务,每5min清理下某个文件夹下的文件

    性能测试的过程中会生成大量的日志文件,导致无法继续进行,linux可以增加一个定时任务,进行定时清理 1. 先编写一个sh脚本,该sh脚本用于文件夹文件清理,脚本编写完成后拷贝到服务器上,且授予权限 ...

  4. HBase 架构与工作原理3 - HBase 读写与删除原理

    本文系转载,如有侵权,请联系我:likui0913@gmail.com 一.前言 在 HBase 中,Region 是有效性和分布的基本单位,这通常也是我们在维护时能直接操作的最小单位.比如当一个集群 ...

  5. js 时间处理函数 获取今天的前几天和后几天的任意一天

      var now = new Date(); let today = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDa ...

  6. screen.height && screen.width

    screen.height && screen.width how to get window max width in js screen.height; screen.width; ...

  7. jmeter 正则表达式提取

    引用名称:自己定义的变量名称,后续请求将要引用到的变量名,如填写的是:id,后面的引用方式是${id} 正则表达式:提取内容的正则表达式,相当于lr中的关联函数 [()     括起来的部分就是需要提 ...

  8. P1110 [ZJOI2007]报表统计

    题目描述 Q的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小Q希望可以帮妈妈分担一些工作,作为她的生日礼物之一. 经过仔细观察,小Q发现统计一张报表实际上是维护一个非负整数数列,并 ...

  9. es各类SearchType的意思

    元素 含义 QUERY_THEN_FETCH 查询是针对所有的块执行的,但返回的是足够的信息,而不是文档内容(Document).结果会被排序和分级,基于此,只有相关的块的文档对象会被返回.由于被取到 ...

  10. BZOJ 1031 [JSOI2007]字符加密Cipher | 后缀数组模板题

    BZOJ 1031 [JSOI2007]字符加密Cipher | 后缀数组模板题 将字符串复制一遍接在原串后面,然后后缀排序即可. #include <cmath> #include &l ...