实现Installshield对Php+mysql+apache做的程序在WINDOWS下打包
undefined
undefined用Installshield对Php+mysql+apache做的程序在WINDOWS下打包; 在电脑上安装Php+mysql+apache,并配置,可以正常使用; 我的安装目录:C:/php ; C:/mysql ; C:/Program Files/Apache Group 打包思路:将安装好的Php,mysql,apache,和程序文件通过安装软件复制到电脑里,注意安装时的安装路径是我规定的,不能由用户来自定义路径;然后启动apache和mysql服务;即可使用了;问题是apache的配置文件中的servername是否需要根据不同机器主机名和端口来改变;服务如何安装和启动; 我使用的方法: 1,首先准备好一切有关的文件(PHP源码文件;php全部文件;mysql安装后的全部文件;apache安装后的全部文件),将这些文件放到一个文件夹里(只是方便,没有特殊用处); 2,apache的httpd.conf配置文件要如何在安装后能自动配置好;就对该文件进行研究;开始的时候想获得主机名,然后替换掉文件中servername +主机名+端口号这一行;端口号我用了一个不常用的60066;后经过实验证明servername +主机名+端口号这一行 可以注释或删除掉;也可以正常使用,但“listen 端口号”必须存在并正确,否则服务是无法启动的;但还有个事情就是我可以写很多个listen 端口号;比如;listen 8080,listen 8088;listen 60066;这样我用哪个端口号都可以正常运行;但推荐一个就好;最后你配置好的httpd.conf文件只要把servername +主机名+端口号这一行注释掉或删除,不需要其他的配置了; 3,如何安装相关的服务到windows服务里,并自行启动;对apache和mysql都有相应的命令来安装,启动,停止和卸载服务;我的方法(有更简单的)是用文本写出这几个命令; 如: 在文本里写入: "C:/Program Files/Apache Group/Apache2/bin/Apache.exe" -k install 注释:安装apache服务到window服务里; 保存文本文件扩展名为BAT;这样你打开该文件就会将apache服务安装到windows服务里; 有关命令: apache命令 "C:/Program Files/Apache Group/Apache2/bin/Apache.exe" -k install 安装apache服务到window服务里 "C:/Program Files/Apache Group/Apache2/bin/Apache.exe" -k start 启动apache服务 "C:/Program Files/Apache Group/Apache2/bin/Apache.exe" -k stop 停止apache服务 "C:/Program Files/Apache Group/Apache2/bin/Apache.exe" -k uninstall 卸载apache服务从window服务里 mysql命令: c:/mysql/bin/mysqld-nt -install 安装MYSQL服务到WINDOW服务中 c:/mysql/bin/mysqld-nt -remove 从WINDOW服务中删除MYSQL服务 net start mysql 启动MYSQL服务 net stop mysql 停止MYSQL服务 这样我做了8个BAT文件;在复制完所有的文件后调用安装和启动的4个文件。卸载的时候调用停止和卸载文件; 这样问题就解决了。剩下的就是用Installshield来做安装盘了;详细就不多说了;在脚本里写了一个函数,该函数的作用就是复制完所有文件,结束安装后运行,安装和启动服务;如下: function OnEnd() STRING szTitle, szMsg1, szMsg2; NUMBER nOption, nReserved; STRING strTempFile; STRING strStopFile; STRING strUninstFile; STRING strStopMyFile; STRING strUninsMytFile; begin strStopFile = "C://Program Files//Apache Group//Apache2//bin//install.BAT"; LaunchAppAndWait (strStopFile,"",WAIT); strUninstFile = "C://Program Files//Apache Group//Apache2//bin//start.BAT"; LaunchAppAndWait (strUninstFile,"",WAIT); strStopMyFile = "C://mysql//installS.bat"; LaunchAppAndWait (strStopMyFile,"",WAIT); strUninsMytFile = "C://mysql//start.BAT"; LaunchAppAndWait (strUninsMytFile,"",WAIT); end; 注意:我的安装路径是根据刚安装配置好的; C:/php ; C:/mysql ; C:/Program Files/Apache Group 也就是要与配置文件里的路径一致; 最后的一个问题就是我们辛辛苦苦写的程序都是明码的是可以见到的;那么我们就需要对PHP源码进行加密; 我的加密是使用了一个软件Zend Encoder;很贵的;我下了个试用的;可以到网上去找; 通过Zend Encoder 的IDE程序编译,实现对PHP文件的加密,并适度扩展其功能应用。( 注:加密后的PHP文件需要客户端的Zend Optimizer支持才能正常运行) 具有以下特点:完全保护知识产权,支持多项目配置;自定义参数(ZEU的功能性参数);支持扩展名过滤。 其中提到的Zend Optimizer是免费的;相关内容网上很多; 这两个软件的使用可以在网上查到;很简单; 将这两个软件安装到机器里;刚刚我们配置好的机器; 然后运行Zend Encoder将我们写好的PHP源码文件进行编译。保存; 而Zend Optimizer。我们仅仅需要的是一个ZendOptimizer.dll文件;(我的安装路径C:/Program Files/Zend)不同的PHP版本在安装后的目录里都可以得到;找到你的PHP版本的该DLL文件;打包时需要注意的是路径;我设置的是:C:/Program Files/Zend/lib; 这样就可以用Installshield打包; 完成; 写的是有点罗嗦;不过我想大家应该看的明白吧!呵呵!还有更简单的方法;希望有人可以提供出来;第一次写;不好;多谢PHP中问网的monkeye给我的帮助