Application installation process design
Posted: Mon Apr 19, 2010 2:03 am
I have written a lot of applications that have done a very wide variety of things. I have written just about every type of application and app component. But the one thing I have never written is an installation processs. None of my applications have ever needed to be installed by anybody but me, so an installation process just hasn't been necessary.
The app I'm writing right now needs an application installation process. It is a Zend Framework application and I have created a ZF "module" called "install". Before the application is installed, the only available ACL role is "installer" and it only has access to the "install" module. After installation, the "installer" role goes away and then the traditional ACL roles are introduced (which do NOT have access to the install module). That way, the app can only be installed once, and the app can't be accessed until it's installed.
Here's my question. How do I determine whether the application is installed? It seems like an easy enough thing to figure out, but I just can't seem to come up with a clean way to determine if the app is installed. Should I test that there are tables in the database? Should I create a file after installation and check for its existence? What do you guys think?
OK, that was my specific question. Now, for a more general question. Do you guys have advice on an installation process in general? Is there anything I should keep in mind? Any caveats I should be aware of? How do y'all go about an install process that basically installs the tables in the db, sets up writable tmp dirs, sets up plug-ins, access control, that sort of thing. Any advice is appreciated
The app I'm writing right now needs an application installation process. It is a Zend Framework application and I have created a ZF "module" called "install". Before the application is installed, the only available ACL role is "installer" and it only has access to the "install" module. After installation, the "installer" role goes away and then the traditional ACL roles are introduced (which do NOT have access to the install module). That way, the app can only be installed once, and the app can't be accessed until it's installed.
Here's my question. How do I determine whether the application is installed? It seems like an easy enough thing to figure out, but I just can't seem to come up with a clean way to determine if the app is installed. Should I test that there are tables in the database? Should I create a file after installation and check for its existence? What do you guys think?
OK, that was my specific question. Now, for a more general question. Do you guys have advice on an installation process in general? Is there anything I should keep in mind? Any caveats I should be aware of? How do y'all go about an install process that basically installs the tables in the db, sets up writable tmp dirs, sets up plug-ins, access control, that sort of thing. Any advice is appreciated