Good response from @Frenetic. I would, however, like to add some pointers on how to make a self-instruction.
Main configuration file
Like Wordpress, you will need a basic file configuration that works independent of the bank. Generally the file will contain the database access information, notes to directories and main language.
Sometimes it is possible for the file to be created automatically via an installation screen. You make a screen with the necessary data, the user completes the form and you save the file in the correct location.
But unfortunately, this is not always possible, because in some hosts you cannot write to the file system and/or do not want to give write permission for the scripts. In this case, do as Wordpress: show the configuration file on the screen and ask the user to create a file on the server with the displayed content.
Database Migrations
How much of the database. There are some database migration frameworks, such as:
- Ruckusing Migrations: follows the philosophy of Ror (Ruby on Rails). Changes in the database are made via PHP code. Supports Mysql and Postgresql.
- Doctrine Migrations: changes are specified in XML. The Doctrine project supports Mysql, Postgresql, SQL Server, Oracle and others, but I don’t know if migrations work well on all of them.
- Phinx: Simple PHP Database Migrations: provides another API for migrations via PHP code. See more of the documentation here. Supports Mysql, Postgresql and Sqlite.
Regardless of choosing any of these, some other or even creating another solution "in the nail", it is important to define a method so that your database can always be updated to the most current version when your system runs.
Considerations
Creating a self-installing system is something that can be achieved without many problems.
On the other hand, managing system life cycle updates can be tricky. In addition, an installation with excellent usability, intuitive and friendly as that of Wordpress is something that requires effort.
Remember that WP is an already very traditional system that has been evolving over the years. They know the main problems that occur in different environments and have the know-how to carry out various environmental checks in advance in order to anticipate possible problems. So don’t expect such a good result right away.
A little broad your question, can you specify? Some point in particular is causing you problems in creating the installer?
– bfavaretto
You quoted wordpress, your installation is actually nothing more than the creation of all the tables that it uses in the database, IE, It is not an "installation" exactly like what you seem to me to be asking...
– Kenny Rafael
Are you talking about self-installing scripts, or are you talking about the magic of auto-update?
– FReNeTiC