php项目打包方法


Posted in PHP onFebruary 18, 2008

大家经常会接到一些编程的活,例如设计企业网站,做做财务,统计系统什么的。或许是因为朋友的需求,或许图个零花。不管什么原因吧。等程序做好了,给对方展示、安装,就成了问题。企业网站好说,至少需要个虚拟主机什么的;可是OA,财务……这些内部系统就不好说了,总不能把代码和数据库扔给人家,写个说明,让他们自己照着说明去配置环境,安装代码吧。这样显然不像话,要知道隔行如隔山啊!再者,万一客户离自己呆的地方十万八千里,总不能过去给人安装吧,这样估计所有收入都挡不住这一来一往的车费的。所以把WAMP环境+PHP程序+维护安装卸载程序打成EXE安装包就很有必要。要让客户安装PHP程序就像安装QQ一样简单,方便!

方法应该有N多种。我所知道的只有三种。

1.用RAR的自动解压缩功能。

2.用windows打包软件InstallShield打成安装包。

3.用现成的东西打包!(呵呵,俗话说,站在巨人的肩膀上么!我也是懒人一族的。)

以上1.2方法呢,大家可以通过百度,谷歌搜一搜。不会懒得搜索吧……=.=!比我还……

在这里我详细说一下我的方法。这个方法也是前些日子帮朋友做个房地产信息系统时自己搜集到的。

第一,首先需要一个纯净绿色的PHP运行环境。组件根据项目需求先配置好。我是以F:\PHPServer为环境根目录,一般组件apache2+php5+mysql5+zo需要开通GD库……配置80,3306……这个大家应该比我熟悉。可以应用定制性比较强的集成套件最好要ZIP格式绿色版的,例如PHPNOW,XAMPP。不要急,下载链接会写在下面。我用的是PHPnow,小巧方便定制性高!

第二,把我们的编的系统安上,自己查错调试,一切OK后。好了这就完成一半了。这时候有人发话了,“江湖郎中”“蒙古大夫”“骗子”。恩!各位不要急,好戏在后边!现在这个文件夹PHPServer,要保证不要向外界导入配置文件,一定要保证PHPServer的独立与完整性,就是保证其绿色。

第三,向这些绿色集成套件一般里面都有写好的BAT也就是批处理文件,直接启动输入号码就能启动和关闭服务。这时我们可以用RAR自解压+运行批处理,可以,但现在遭到很多杀毒软件封杀拦截。其实我用的也是这个原理。我在网上找到了一个打包程序make_exe(来自PHPnow)可以把.7z+打包后的文件界面信息打成一个EXE运行包,并在运行自解压后自动运行7z压缩包中的批处理文件。make_exe.zip包里有Make_exe.cmd,PHPServer.sfx,PHPServer.sfx.cf三个文件。看到这一点,大家应该有思路了吧。首先把PHPServer压成PHPServer.7z文件然后配置好。修改PHPServer.sfx.cf文件,然后运行Make_exe.cmd就可以了。

首先:Make_exe.cmd代码
set v=1.2
copy /b /y PHPServer.sfx + PHPServer.sfx.cf + *.* PHPServer%v%.exe || pause
很明了吧!“set v=1.2”是版本,然后需要三个文件,打包。
PHPServer.sfx.cf代码,打开方法,直接拖到TXT就行了

;!@Install@!UTF-8!
Title="房地产信息管理系统V1.2"
BeginPrompt="# 房地产信息管理系统V1.2安装包 #\n\n * 确认你没有运行 IIS 等其他占用 80 端口的服务。\n * 如果你安装有其他同类套件,请先停止或卸载。\n * 安装完成后请不要随便移动安装目录。\n\n作者:xilo QQ:110026985 主页 <a href="http://www.xilo.cn/">http://www.xilo.cn</a>。"
ExtractDialogText="请稍后,正在解压文件 ..."
ExtractTitle="正在解压 ..."
ExtractPathText="请选择解压路经(仅限英文字符):"
ExtractCancelText="取消"
CancelPrompt="你真的要退出吗?"
GUIFlags="4+8+32+64+256+2048"
InstallPath="D:\\PHPServer"
RunProgram="cmd /c setup.cmd"
;!@InstallEnd@! 
这些相信也不用我解释了,想显示什么就改什么。注意这句InstallPath="D:\\PHPServer"为安装目录,还有解压后运行RunProgram="cmd /c setup.cmd"这个BAT,也就是启动apache,mysql服务的命令了。下面就是PHPServer的setup.cmd的命令了。因为太多简单贴上几句!

@echo off
rem -- <a href="http://www.xilo.cn/">http://www.xilo.cn</a>
rem -- By xilo (QQ:110026985)
setlocal enableextensions
call Pn\config.cmd
prompt -$g
title 初始化 PHPserver %pnver% - Apache + PHP + MySQL
echo   ____________________________________________________________
echo  ^|                                                            ^|
echo  ^|  ######  正在安装 浩搏不动产信息管理系统 环境套件  ######  ^|
echo  ^|____________________________________________________________^|
echo.

:copy
echo   ____________________________________________________________
echo  ^|                                                            ^|
echo  ^|    开始文件处理 ...                                        ^|
echo.
rem 建立目录
if not exist %apadir%\conf\extra md %apadir%\conf\extra
if not exist %apadir%\logs md %apadir%\logs
省略…………
省略…………
下面会附上全部文件的!简单解释就是配置,复制,启动!不明白我会再楼下解释。
贴图:

第一步:
php项目打包方法
第二步:

php项目打包方法

第三步:

php项目打包方法

其实已经OK了,相信大家也懂了,第一次发技术帖有点太唐僧了!哈哈!如果在完善的话就是卸载命令啊!备份数据库啊!添加到STARTMENU里去啊!都很简单的!最后声明一点,所有资源均来自于网上,希望软件作者不要找我麻烦啊!
帖链接!!!
1.PHPnow官方的
2.Make_EXE.zip
3.精简后的setup.cmd
4.7z很强大!

PHP 相关文章推荐
php获取post中的json数据的实现方法
Jun 08 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
Jul 01 PHP
PHP+FastCGI+Nginx配置PHP运行环境
Aug 07 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
php中使用sftp教程
Mar 30 PHP
php获取Google机器人访问足迹的方法
Apr 15 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
Dec 28 PHP
ThinkPHP实现分页功能
Apr 28 PHP
PHP实现Redis单据锁以及防止并发重复写入
Apr 10 PHP
PHP4与PHP5的时间格式问题
Feb 17 #PHP
PHP5 面向对象程序设计
Feb 13 #PHP
Dedecms常用函数解析
Feb 01 #PHP
用php实现批量查询清除一句话后门的代码
Jan 20 #PHP
asp和php下textarea提交大量数据发生丢失的解决方法
Jan 20 #PHP
php开发工具之vs2005图解
Jan 12 #PHP
java EJB 加密与解密原理的一个例子
Jan 11 #PHP
You might like
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
2013/04/01 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
使用async await 封装 axios的方法
2018/07/09 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
python cookielib 登录人人网的实现代码
2012/12/19 Python
Python类方法__init__和__del__构造、析构过程分析
2015/03/06 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
python3中rank函数的用法
2019/11/27 Python
PyQT5 emit 和 connect的用法详解
2019/12/13 Python
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
班主任个人工作反思
2014/04/28 职场文书
庆祝三八妇女节标语
2014/10/09 职场文书
小学生表扬稿范文
2015/05/05 职场文书
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS