Question: I want to deploy a Sitecore test site I've been playing with from a single developer platform (everything on one local PC) to something more like a test environment (dedicated IIS and SQL servers, virtual access to IIS). I don't really need to worry too much about team development and source control right now, though development will continue locally with packages deployed to the test environment.

Is there any best practice documentation for doing this?

Can I simply install an empty Sitecore instance on the IIS and then copy everything over (editing connection strings to point to correct DBs etc)? If so it best to use the installer or the zip file?

Aside from ensuring correct server configuration (.NET version, security settings etc) is there anything I should be paying particular attention to?

Thanks in advance.

Answer: 
Fortunately, moving a Sitecore installation around is a fairly simple task, and there are a number of approaches you could be using. Here's what I would normally do (somewhat simplified).

* Set the target environment up. Meaning IIS, SQL Server, security settings and so on
* Detach my local databases, stop the local IIS
* Copy everything from the root solution folder and down, to the target environment
* Attach the databases to the target SQL server
* Create the IIS website, and point it to your Website folder
* Modify ConnectionStrings.config
* Modify your absolute path to your data folder
* Press GO!

Whether you want to use Sitecore Installler or not is a matter of personal preference. It does set a lot of configuration issues for you, but personally I never use it. I go with "Zip of the root".

I don't think I could come up with a full list of things you should be paying particular attention to, but here's a few of the most common ones

* Test environments should resemble live as much as possible, so do move your /data folder outside the webroot. You don't want people to be able to download your license file by simply typing website/data/license.xml ;-)
* Consider creating a [.config include file](http://intothecore.cassidy.dk/2009/05/working-with-webconfig-include-files-in.html) for your machine specific settings (i.e. mail servers, external components and so on)
* Start on a [continueous (erm...) integration cycle](http://mcore.wordpress.com/2008/02/29/continous-integration-and-sitecore/), start deploying your updates via [packages](http://kerrybellerose.blogspot.com/2009/06/why-use-dynamic-sources-in-packager.html) to the target so you work up experience on lifecycle managing your eventual live environment
* Make sure you keep the same [Sitecore version](http://kerrybellerose.blogspot.com/2010/02/sitecores-recommended-version-policy.html) across your environments
* And don't worry too much ;-) Sitecore, although extensive, is a "simple" ASP.NET application from a deployment perspective.

Hope this provides a bit of insight :-)
With regards to Installer vs Zip I've always prefered the zip.

It seems faster and I get to control the whole process... plus the first installers I played with never seemed to work that well or at all.

With regards to moving a site, I'd say make a cleaned up zip of the solution.

there are things that are not needed, usually these things are not needed:

viewstate folder content
diagnostics folder content
MediaCache folder content
audit folder content
temp folder content
indexes folder content

but usually you need these folders, just not the content, as for instance with the MediaCache folder, it's generated by Sitecore when media items are retrieved from the database.