Inno Setup制作windows部署Web项目环境一键安装程序,inno setup同时安装jdk、mysql、redis、nginx、nodejs等环境

Inno Setup制作windows部署Web项目环境一键安装程序

项目需求

项目最近需要在windows服务器部署Web项目,环境部署大致需要如下软件:jdk、mysql、redis、nginx、nodejs等。为了降低安装难度,所以决定使用windows常用的软件安装方式进行部署,经过查找和搜索,最终决定使用开源软件Inno Setup进行制作。

Inno Setup简介

是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件。

Inno Setup主要功能介绍

1.支持现在所有正在使用的 Windows 版本: 7, 2008 R2, Vista, XP, 2008,2003, 2000, Me, 98, 95, 和 NT 4.0 (不需要服务包)。

2.广泛支持在 64 位 的 Windows XP and Windows Server2003 版本的操作系统中的 64 位应用程序安装。支持 x64 和 Itanium 两个结构。(在 Itanium 结构中,必须在 64 位模式安装 Service Pack 1。)

3.支持创建单个EXE 格式的安装程序,使你的程序可以很方便地在网络上发表。同时也支持磁盘延伸。

4.标准的Windows 2000/XP 样式向导界面。

5.定制安装类型,例如:完整安装,最小安装,自定义安装。

6.完整的卸载功能。

7.文件安装:包括完全的“压缩”支持,bzip2 和 7-Zip LZMA 文件压缩。安装程序可以比较文件版本信息,替换正在使用的文件,使用共享文件计数,注册DLL/OCX 和类型库,以及安装字体。

8.可以在任意地方创建快捷方式,包括开始菜单和桌面。

9.创建注册表 和.INI 条目。

10.在安装之前、之中或之后可运行其他程序。

11.支持多语言安装。

12.支持密码和加密安装。

13.支持数字签名 、安装和卸载。

14.后台安装和后台卸载。

15.Unicode安装。(Windows 2000/XP 或更高)

16.完整的Pascal 脚本 引擎选项于运行期高级自定义安装和卸载。

17.全部源代码公开(Borland Delphi 2.0-5.0 和 2009)。

下载地址

官网下载或者下面百度网盘下载。

百度网盘:https://pan.baidu.com/s/12aO4xe7JDRrwKeLBsNKUbQ

提取码:6jz4

使用方法

下载下来直接安装即可,打开软件按制作向导即可创建初始项目,生成init.iss这样的配置文件,后续所有安装包的信息基本都可以在这里进行配置。下面是我生成修改后的配置文件信息。

#define MyAppName "CESHI"

#define MyAppNameEn "XJPMabDoor"

#define MyAppVersion "2.0"

#define MyAppPublisher "CESHI"

#define MyAppURL "https://www.kgraph.cn"




[Setup]

AppId={{FCE3DF48-9DBE-48FF-B6BC-FAC3D41D92A6}

AppName={#MyAppName}

AppVersion={#MyAppVersion}

;AppVerName={#MyAppName} {#MyAppVersion}

AppPublisher={#MyAppPublisher}

AppPublisherURL={#MyAppURL}

AppSupportURL={#MyAppURL}

AppUpdatesURL={#MyAppURL}

DefaultDirName=ABDoor\{#MyAppNameEn}

DefaultGroupName={#MyAppName}

OutputBaseFilename=abdoor

Compression=lzma

SolidCompression=yes




[Languages]

Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"




[Files]

Source: "F:\ABDoor_package\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

Source: "F:\ABDoor_package\nginx\www\*"; DestDir: "C:\Program Files\xjpm\www"; Flags: ignoreversion recursesubdirs createallsubdirs

;Source: "F:\ABDoor_package\mysql\*";DestDir: "C:\Program Files\mysql"; Flags: ignoreversion recursesubdirs createallsubdirs




[Icons]

;Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"

Name: "{commondesktop}\CESHI"; Filename: http://localhost:8090

;Name: "{commondesktop}\CESHI"; Filename: "{app}\mysql\init-data.bat"

Name: "{commondesktop}\CESHI"; Filename: "{app}\CESHI.doc"




[INI]

Filename:"{app}\mysql\mysql-5.7.28-winx64\my.ini";Section:"mysqld";Key:"basedir"; String:"{app}\mysql\mysql-5.7.28-winx64"

Filename:"{app}\mysql\mysql-5.7.28-winx64\my.ini";Section:"mysqld";Key:"datadir"; String:"{app}\mysql\mysql-5.7.28-winx64\data"

Filename:"{app}\mysql\mysql-5.7.28-winx64\my.ini";Section:"mysqld";Key:"port"; String:"3306"

Filename:"{app}\mysql\mysql-5.7.28-winx64\my.ini";Section:"client";Key:"port"; String:"3306"




[Run]

Filename: "{app}\java\init-jdk.bat";

Filename: "{app}\mysql\init-mysql.bat";

Filename: "{app}\redis\init-redis.bat";

Filename: "{app}\nodejs\init-nodejs.bat";

;Filename: "C:\Program Files\xjpm\www\flvs\start-index.bat";

Filename: "{app}\nginx\start-nginx.bat";

;Filename: "{app}\java\xjpm\start-xjpm.bat";

 

项目目录结构

每个环境安装完成执行的bat脚本均放置于目录首级目录,安装包和bat脚本同级。

《Inno Setup制作windows部署Web项目环境一键安装程序,inno setup同时安装jdk、mysql、redis、nginx、nodejs等环境》

 

配置jdk环境变量bat脚本

init-jdk.bat:

@echo off

echo

echo  "%~dp0"

echo "%cd%"

set jdkpath=%cd%\jdk1.8.0_121

echo %jdkpath%

setx JAVA_HOME  "%jdkpath%"  -m

setx CLASSPATH  ".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar" -m

echo %Path%

echo %Path%|find /i "%java_home%" && set IsNull=true || set IsNull=false

echo %IsNull%

if not %IsNull%==true (

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_SZ /d "%Path%;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin" /f

setx Path "%%JAVA_HOME%%\bin;%Path%"

)

exit

配置mysql环境bat脚本

Init-mysql.bat:

cd /d %~dp0

cd mysql-5.7.28-winx64

set inipath=%cd%\my.ini

cd bin

"%cd%\mysqld.exe" -install mysql --defaults-file="%inipath%"

"%cd%\mysqld.exe" --initialize-insecure --user=mysql --console

net start mysql

sc config mysql start=auto

net stop mysql

net start mysql

echo ---Installation completed---

"%cd%\mysqladmin.exe" -u root password 123456

echo ---Password change completed---

cd ..

"%cd%\bin\mysql.exe" -uroot -p123456 < "%cd%\sqlfile\initMysql.sql"

echo ---Database initialization complete---

pause;

其中initMysql.sql是mysql初始化数据库表的sql文件,根据系统来设置即可。

注意:mysql安装包需要提前创建好my.ini文件,简单配置如下:

[client]

port=3306

[mysql]

default-character-set=utf8mb4

[mysqld]

port=3306

basedir="C:/Program Files/mysql/mysql-5.7.28-winx64"

datadir="C:/Program Files/mysql/mysql-5.7.28-winx64/data/"

character-set-server=utf8mb4

collation-server=utf8mb4_bin

default-storage-engine=INNODB

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

max_connections=100

query_cache_size=32M

table_open_cache=256

tmp_table_size=35M

thread_cache_size=8

myisam_max_sort_file_size=100G

myisam_sort_buffer_size=69M

key_buffer_size=50M

read_buffer_size=64K

read_rnd_buffer_size=256K

sort_buffer_size=256K

innodb_flush_log_at_trx_commit=1

innodb_log_buffer_size=1M

innodb_buffer_pool_size=96M

innodb_log_file_size=20M

innodb_thread_concurrency=18

Redis和Nginx环境bat脚本basedir和datadir在iss配置文件中可以动态修改,具体可以看上面我贴出来的配置信息[INI]代码块。

init-redis.bat:

cd /d %~dp0

cd Redis-x64-3.2.100

set inipath=%cd%\redis.windows.conf

"%cd%\redis-server.exe" --service-install "%inipath%" --service-name redisserver --loglevel verbose

net start redisserver

sc config redisserver start=auto

net stop redisserver

net start redisserver

echo ---Installation completed---

pause;

start-nginx.bat:

cd /d %~dp0

cd nginx-1.12.2

start nginx

echo ---start nginx success---

pause;

stop-nginx.bat:

cd /d %~dp0

cd nginx-1.12.2

"%cd%\nginx.exe" -s stop

echo ---stop nginx success---

taskkill /f /t /im nginx.exe

pause;

nodejs环境配置bat脚本

init-nodejs.bat:

@echo off

echo

echo  "%~dp0"

echo "%cd%"

set nodejspath=%cd%\node-v12.16.1-win-x64

echo %nodejspath%

setx NODEJS_HOME  "%nodejspath%"  -m

setx Path "%nodejspath%;%Path%" -m

echo %Path%

exit

编译

点击软件上方编译按钮,系统会自动打包压缩成exe文件在你配置的输出目录。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注