I would like to build an 'ideal' lamp development stack.
- Dual Server (Virtualised, ESX)
- Apache / PHP on one, Databases (MySQL, PgSQL, etc) on the other.
- User (Developer) Manageable mini environments, or instance.
- Each developer instance shares the top level config (available modules and default config etc)
- A developer should have control over their apache and php version for each project.
- A developer might be able to change minor settings, ie magicquotes on for legacy code.
- Each project would determine its database provider in its code
The idea is that it is one administrate-able server that I can control, and provide globally configured things like APC, Memcached, XDebug etc. Then by moving into subsets for each project, i can allow my users to quickly control their environments for various projects.
Essentially I'm proposing the typical system of a developer running their own stack on their own machine, but centralised. In this way I'd hope to avoid problems like Cross OS code problems, database inconsistencies, slightly different installs producing bugs etc.
I'm happy to manage this in custom builds from source, but if at all possible it would be great to have a large portion of it managed with some sort of package management. We typically use CentOS, so yum?
Has anyone ever built anything like this before? Is there something turnkey that is similar to what I have described? Are there any useful guides I should be reading in order to build something like this?