I've got a php application ( http://github.com/tchalvak/ninjawars ), basically a php-based webgame which i run at http://ninjawars.internet . I frequently configure and install the application personally for localhost development, and it is a somewhat trial-and-error compromised-up process. Since I have open acquired the application, I have got a bit of customers wanting to set up it making edits, submit patches, etc, and I wish to make that as easy as I'm able to on their behalf.

I have heard about Ruby Gems, that we take to become a type of package management system for ruby applications. Can there be anything helpful like this for php? Otherwise, what must i caused by make setting up as easy as I'm able to?

Right now I believe that the general concept of the install process might be as easy as:

All Deployments
1. Copy a live database (probably the easiest) or run any outstanding migrations off of a skeleton database.
2. Set permissions in pg_hba for the database, host, and user to match your configuration

Manually from within the /ninjawars/ folder of your working copy
1. ln -s docs/harkSAMPLEhtaccess deploy/www/.htaccess
3. ln -s docs/tchalvakSAMPLEresources.php deploy/resources.php
4. mkdir -p deploy/resources/logs
6. mkdir deploy/templates/compiled
7. chmod 777 deploy/templates/compiled

5. configure a virtualhost in apache (should be optional, this may be able to be handled by the .htaccess, I'm not sure)

Therefore the biggies are chmodding, copying the database, and editing a virtualhost.

Simplifying that around I'm able to on linux could be great, even much more simplifying it on home windows too (that unfamiliar land where lots of of my customers presently reside). Suggestions?

For linux make an install.sh script file and tell individuals to chmod +x ./install.sh after that it execute or double click it. That file could be some prompts for mysql password to make use of with mysql -u root -p -D db_name < ./db_install.sql then clubpenguin (copy) the install template into /var/world wide web/ or even the path they key in in a prompt.

No clue for home windows sorry.

for linux, you may create a revoltions per minute or similar

The easiest way for the customers is always to write a set up routine of your and bundle it using the application much like Drupal, Joomla, etc.

The fastest way would most likely to create a set up spend script for linux/osx along with a batch script for home windows.