How to build msi install from php

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
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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


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.

kooldaorbAuthor Commented:
This 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.
10 Tips to Protect Your Business from Ransomware

Did you know that ransomware is the most widespread, destructive malware in the world today? It accounts for 39% of all security breaches, with ransomware gangsters projected to make $11.5B in profits from online extortion by 2019.

kooldaorbAuthor Commented:
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.
kooldaorbAuthor Commented:
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 does but their website is .net/windows i need solution for linux.
kooldaorbAuthor Commented:
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.
kooldaorbAuthor Commented:
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?
kooldaorbAuthor Commented:
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.
kooldaorbAuthor Commented:
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.
kooldaorbAuthor Commented:
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.
kooldaorbAuthor Commented:
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
will allow you to build wix files, which the msi installer can read.
You can run this from linux.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Vadim RappCommented:
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
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.