I have a PHP web app that i would like to be able to ship as easily as possible. Some of the things it does are as follows:
- Call
shell_exec()
to execute windows executables - Call
move_uploaded_file()
to move a file to a network folder - Create temporary files for processing at later stages
Now these all require special things to be checked during manual installs such as the App Pool's user permissions on accessing network folders, creating files ect. A process that can be long and arduous. Normally this is the process i go through:
- Check to see if PHP is installed on client's server. If not, download and install it first
- Download zip archive from my website
- Check if the server has already got the app installed. If so, copy and paste code files and finish.
- If fresh install, extract zip into a physical path that will map to the web application in IIS
- Open IIS, create web application under new or existing website
- Ensure there is a database connection for the PHP application to talk to
- Configure my app's settings (these are defined in my app)
- Ensure the App Pool user that my app will be running as has permissions to do the things i mentioned above
- Finally, test the app
So given that there is a long list of steps needed to install my app. My question is, is there a more efficient way to go about this? given that there are so many things to do. Can we create an MSI installer application or something similar?