We help IT Professionals succeed at work.

How to build msi install from php

kooldaorb asked
Medium Priority
Last Modified: 2013-12-12
I need to build unique installer from webpage in order for app to be automatically linked with user account on website. There are just 3 files - exe, dll and ini that should be installed on user computer.
ini file is the one I am planning to fill with user-specific data. After generating this ini file I need to build installer somehow, that user can download and from his area on website.
Web server runs on linux, it's Apache with php support.
Thank you
Watch Question

I've used this program a few times to install programs, you can download a freeware version that works great, it's what I've used - grab it from http://www.clickteam.com.


Feature List:

 Everything in one compressed distributable executable file
 Follows the standards seen in all installation programs
 Full-featured dialog box editor to customize your installer's screen
 Every text is customizable
 Creates icons and folder in Window's start menu
 Automatic floppy disk spanning
 Automatic installation of Fonts
 Automatic installation of ActiveX controls
 Automatic installation of screen-savers
 Handle DLL installation and de-installation counters
 Optional icon on the desktop
 Display a text or web page at the end of an installation
 Launch other programs at the end of an installation
 Complete de-installer
 Ability to remove keys from the registry
 Multilingual templates and you can make your own language translations

Differences Between Install Creator and Other Installers?

 Small footprint of the executable
An empty installer is only 100Kb. We cram the complete professional installation program and the complete de-installer in 100kb! Compare that with other installer programs: minimums of 500Kb. We feel it is inexcusable to have a 500Kb installer!

A simple and easily understood interface
There's no complex scripting language, you simply select a directory that contains the files to install and set options for any special individual files and that's it, you're done.

Easy step by step wizard - it's a cinch!
When the project is done, just save the settings and you can recover the project later and update it at your will.

Complete customization
You can change all the texts, choose any bitmaps, customize each screen of your installer - you can preview the look of the install process at anytime during the creation process.

Fully functional freeware version
The freeware version is fully and completely operational. You will not find a better installer at 10 times the price. You have nothing to lose test it out today. All these features sound obvious and standard - don't they? So why do we still find programs on the Internet that decompress the data files onto the desktop (isn't that annoying?). Then there are the programs without proper de-installation routines, and products that create a directory at the root of your C drive instead of directing the files where you want them.


This clickteam.com tooll will run only on windows. I need some solution that can be completely located on linux server and the ability to initiate all work from php page.

you can't use msi files if you want it to run on linux since msi is a microsoft thing.


well, I guess exe will work too but I don't think msi is limited to windows. you can build windows app on linux without any problem and msi format is not that propriatory

exe's don't work on linux either.

you can't make a universal installer that works on both linux and windows.

you need to learn c++ and use make files

that is really to complex to cover in a single sitting.

MSI = MicroSoft Installer

how is that not proprietary?

they may have distributed the tech to allow others to make them, but the only work on Win32 based systems.


I dont need universal installer. Please read original description. I just need somehow to install 3 files on client computer, one of them has to be dinamically generated.
Right now users download one common install file and on the first start they enter their account information. I need to remove this step, after install app should be linked with website without user intervention. Kind of like logmein.com does but their website is .net/windows i need solution for linux.


doc and xls files are also Misrosoft formats but there are plenty of linux based converters out there.

why do you need it to work on linux?

you are trying to install a dll, which is for windows, an exe also for windows and an ini file onto a windows machine from a linux machine?

that cant be done.

Think of the security risk.

Even if you were to use a shell script that had the authentication credentials to authenticate to the windows box, you wouldn't be able to get any information from that windows machine, it would simply be like a folder to the linux box.

you won't be able to get any of the windows user information.


oh, I just need linux based tool to build install file. then user can download it and run.

you want a linux based tool to create a installer that will run on a windows machine?


exactly. that's why i choose msi for the question title, msi it's not actual installer, it's more like install configuration/data file.

can't be done.

you need a windows complier in order for that to happen.

you can't run a windows complier on a linux box.

the best option you have is to make *.bat file and use commands like copy, but then you need to distribute the files in a folder with the *.bat file.

or go learn c++ and create a make file, then hope they know how to use a c++ complier to compile the code into an installer, then install.


No, most of install builing apps do not have any compiler. They already have pre-compiled bits and pieces that they append to each other along with all meta data and files needed.

you are partly right, they will have assemblies and objects the get COMPLIED into the installer so that the user can install it,

that why when you download a src ball for linux, you have to do something like

make install

the make command will check to see if you gave a gc++ or some other COMPLIER on your system, then compile the installer for you, then you run make install which installs it.

windows isn't nice enough to provide free c++ installers
you would need visual studio or borland c++, which are FREE but you have to go out of your way to download them, and learn how to use them

Windows doesn't have a nice easy make command.

all installers have to be complied before using.

give me one example where the installer wasn't complied before using.


Only if you build it from the source code. You can build RPM if you have list of files without compiler.
Windows DOES have free installer, it's called Windows Installer. MSI file it's the same thig as RPM - it does not have any executable code of installer, it's just database with files and meta data.
Example? Pick any. No installer building tool that I know includes c++ compiler.

a MSI file is complied from source.

I know becuase I build them, all the time. I use Visual Studio 2005. Right now, as we speak. I just made one.

It's complied.

Do you know what it means to compile code?
RPMs are complied.

Read this.

MSI files have files in them, but they are compressed and encrypted. MSI files have all the api's needed to install files to a windows based machine, this is the similarity you speak of to RPM's.
There is no database in MSI files.

I didn't say Windows doesn't come with a free installer I said it doesn't come with a free complier.

There is a huge difference.

I didn't say installers have compliers, I said they are complied. To give an example of an installer that wasn't complied first.


If you build them all the time you should know that Visual Studio 2005 IDE does not use c++ compiler to compile msi. You should also know by now that MSI file is basically a SQL database file and not an executable code.
No it's not, it's basically an XML file, with a hash, list of files, target diretory, the actual files compressed and encrypted, (they need the hash to be decrypted). There is no sql database, no sql engine.

I never said MSI files are complied using c++, in fact I never specied how they are complied, just that they need to be complied. How don't know how exactly.

How ever, this http://sourceforge.net/project/showfiles.php?group_id=105970&package_id=114109&release_id=228957
will allow you to build wix files, which the msi installer can read.
You can run this from linux.

No comment has been added to this question in more than 21 days, so it is now classified as abandoned.

I will leave the following recommendation for this question in the Cleanup Zone:
Accept nplib's comment # 20742773 as answer

Any objections should be posted here in the next 4 days. After that time, the question will be closed.

vadimrapp1 Experts Exchange Cleanup Volunteer

Explore More ContentExplore courses, solutions, and other research materials related to this topic.