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整数取余返回负数的相关解决方法
May 15 PHP
列举PHP的Yii 2框架的开发优势
Jul 03 PHP
浅析PHP7新功能及语法变化总结
Jun 17 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
PHP中类的自动加载的方法
Mar 17 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
thinkphp 验证码 的使用小结
May 07 PHP
详解php 使用Callable Closure强制指定回调类型
Oct 26 PHP
PHP简单实现正则匹配省市区的方法
Apr 13 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
Oct 15 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 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
用PHP制作静态网站的模板框架(一)
2006/10/09 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
JS中Safari浏览器中的Date
2017/07/17 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
Vue.js 中的实用工具方法【推荐】
2019/07/04 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
JS代码实现页面切换效果
2021/01/10 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
python抓取网页图片示例(python爬虫)
2014/04/27 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
Python实现我的世界小游戏源代码
2021/03/02 Python
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
2015年乡镇人大工作总结
2015/04/22 职场文书
村级干部党员公开承诺事项
2015/05/04 职场文书
春节慰问简报
2015/07/21 职场文书
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android