Development Sever > Staging Server > Live - how to set up?

I’m the sole web developer for a manufacturer and am looking for some tips to improve my workflow.

I work locally on an OS X machine in a MAMP environment. From my local machine, I directly upload to our live web server.

What I’d like to do is set up a staging server of some sort so that I can have people look at pages internally before going live. Directing them to my MAMP installation is not an option as it’s dependent on my laptop being turned on and on the network.

Any thoughts on how to best set this up would be appreciated. Working with our IT department on a local server is an option, as is a paid remote server. Thanks in advance!

Are you using some sort of Version Control?
If so, you could simply check out some sort of “beta” to a server and let them view it while you may still have a “newer” version on your laptop.
With some scripting you can also automatize the checkout/configuration, depends on the time you’re willing to invest.

I am not using any version control. I’m planning on porting the whole site over to the EE CMS at some point and using it’s version control.

I think there is no other way to setup staging server on some cheap VPS, when you make some changes use tool like rsync to send modifications to the server.

Next, your app should be aware, where it’s being executed (localhost, staging or production) and depending from the server where it resides proper config file should be used.

The idea is to minimize chances for human error, by minimizing the amount of work you need to do in order to deploy your application. Ideally it should be just one step: rsync, but sometimes you need to make db scheme changes as well.

Hope that helps.

I use a SUSE Linux server locally for my staging server. It should be easy enough for the IT department to set up some sort of LAMP server for you to use for development purposes.

Here I have a hosts file on my XP computer that resolves common names to the development servers IP address. Since it sounds like your in a corporate environment, I’m sure that the IT department can set up DNS to resolve to the development server for both you and others behind the firewall.

I set up all of my development sites as staging.[live name].[extension] and mirror the directory structure, database setup, and user credentials so that transferring to live is seamless. I also setup a variable to set the sites status to live or staging to keep certain code objects like google analytic’s code from being parsed in the development environment.

Hope that helps and have fun!

You could set up the site on a subdomain of the site and then move the files over when ready. E.g.

dev.mydomain.com