I must build an 'ideal' light development stack.
- Dual Server (Virtualised, ESX)
- Apache / PHP on a single, Databases (MySQL, PgSQL, etc) alternatively.
- User (Developer) Workable small conditions, or instance.
- Each developer instance shares the very best level config (available modules and default config etc)
- A developer must have treatments for their apache and php version for every project.
- A developer might have the ability to change minor configurations, ie magicquotes on for legacy code.
- Each project would determine its database provider in the code
The concept is it is a administrate-able server will be able to control, and supply globally set up such things as APC, Memcached, XDebug etc. Then by getting into subsets for every project, i'm able to allow my customers to rapidly control their conditions for a number of projects.
Basically I am suggesting the normal system of the developer running their very own stack by themselves machine, but centralised. In by doing this I'd aspire to avoid problems like Mix OS code problems, database incongruencies, slightly different installs creating bugs etc.
I am pleased to manage this in custom develops from source, but when whatsoever possible it is always good to possess a large part of it handled with a few kind of package management. We typically use CentOS, so yummy?
Has anybody ever built anything such as this before? Can there be something turnkey that's much like things i have referred to? What are the helpful guides I ought to be reading through to be able to build something similar to this?
OK, the way in which i was running development Light setup inside my previous job, was such as this. Just one server running both MySQL and Apache. Each developer is designated an Ip around the server (the equipment is running multiple Insolvency practitioners on a single interface, all Insolvency practitioners are on a single subnet), so each developer might have a minumum of one IP-based virtual host so that as many title based because they want (our site used SSL, therefore we needed separate Insolvency practitioners, wigthout SSL, you will get away having a single IP and title based vhosts). We'd local DNS server serving wildcard A records for every developer in this way *.john.dev.company Inside A 10.1.1.123, where 10.1.1.123 was Ip designated to John. By doing this John could define as numerous title based vhosts because he wanted and they'd all get resolved properly as lengthy because they all led to john.dev.company (like project1.john.dev.company). Each developer had their very own apache config file using their virtual hosts inside it and that we used Include directive to drag each one of these files in to the primary Apache config. The permissions were set, so these config files could be editable by particular designers and each developer were built with a soft connect to their config within their home directory. Also, every developer was permitted to make use of sudo to restart Apache. The down-side of the setup was that every now and then a specific dev would crash entire server by messing up their config file. We used common database, since everybody was focusing on just one project, however it should not be a challenge to create multiple individual databases.
My undertake the problem, i do not think it covers all your needs, but it is pretty close:
- Possess a CentOS server with Light stack ( yummy install apache2 mysql php etc. ) - or 2 servers one httpd and something mysqld
- For n designers have n folders with n virtual hosts world wide web.developer-n.com around the host that runst the Apache server
- Each developer mounts it's server folder (say //192.168..1/home/developer-n/world wide web) around the local machine via CIFS from our-station's /etc/fstab and edits the files from local machine yet runs them around the (unique) server
- Each developer small-atmosphere is tweaked via .htaccess