Like thousands of others, I look after several small web sites for myself and my family and for various organisations that I belong to. I develop the web pages either directly in HTML and CSS, or using my favourite web authoring tool of the moment (usually freeware or open source tools). I also often use PHP, Python, ASP and other scripting languages. Some of my sites use MySQL or MS SQL databases. When I've developed some new content I then up-load the changed files to the shared web server of my hosting provider using FTP. BeyondCompare (a great program) is my favourite way of doing this. I don't have a fully configured web server at home, so uploading to my web hosting company's server is the only way I have of testing my content.
What I need now is a way of updating the web site in such a way that certain people to whom I've given a password (often officers of the voluntary organistation whose web site I'm working on) can view the new content, but that other users (including the general public) continue to see the old site. Only when I've got approval from everyone who needs to give it do I want to make the changes live, so everyone can see them.
I would prefer not to have to have two complete copies of the site on the web server, one password protected and one not. This is because:
- It would take twice as much space on the web server
- I would have the hassle of copying the whole of the site from the protected location to the public one
- The site would need careful design to avoid the need for changes to the content for the two locations
- If I have databases, PHP scripts etc. in the site it becomes even more difficult to make both sites work exactly the same as each other.
What's the best way of doing this?
Of course there are many other things that an ideal system should do:
- keep a record of the complete change log
- optionally, display the current version number of each page, and the date it was released
- allow me to revert to an earlier version
- allow approvers to submit corrections or comments on new content
- optionally, highlight new content to users, and even show the changes
- etc.
I hope someone can suggest a good way of doing this, preferably with free or cheap software...
Thanks - Rowan