29
votes

I've been trying to build and deploy a website running on Orchard CMS. I've previously downloaded Orchard, set up a development environment, made a few modifications to the source, added and modified a theme, added some content and so forth. I've been using the SQL CE as database. Now I want to build and deploy the complete website. I've built a deployment package by running the build script, as described here. It's easy to simply ftp the built package to the hosting server. However, when visiting the site I now get the install a new site procedure. Apparently, the cms settings and content from my development environment have not been reflected in the deployment package. Thus, I need to copy all the content and re-do all the settings, including creating all widgets etc. again.

Does anyone have any good ideas on how to publish an Orchard site from a development to a production environment, including the cms settings, widget settings, content, etc? All guides I've found on the web describe how to use WebMatrix to deploy an Orchard site to shared hosting or Azure, but all of those guides end up with having a clean Orchard installation. What I would like to achieve is to develop the site locally, and then push the entire site to the hosting server.

3

3 Answers

21
votes

If you have built a deployment package and transferred it to your server (via FTP), you are almost done. There are two things you have to do after that. Remember, do not run the first-time setup.

  1. Copy the ~/App_Data folder from development to production. If transferring the files with ftp, make sure to transfer in binary mode. Make sure that the account, under which the AppPool runs has read/write permissions to that folder.
  2. If you use SQL Server Compact. Do nothing - the database has already been copied in 1.
  3. If you use SQL Server 2005/2008 database. Migrate your db to production environment. Next, change the connection string to point to the new database inside Settings.txt file located under ~/App_Data/Sites/Default.

After that, you can run your site and everything should be ok. So in your scenario, you can only copy the folder from 1. and you'd be set.

14
votes

I really appreciate the answer from Piotr first of all. I also like to add here what I've found based on Piotr's answer. Here are my steps to deploy Orchard project after spend few days to figure it out what the easiest way to deploy. [Overall concept and requirement to deploy] 1. Using Visual Study 2010 (or equivalent tool) and compile all the projects. In this stage, there is no hidden or complicate process for compile all the code, right?

  1. Run "ClickToBuild.cmd" to build from the command console. Here is the tricky steps here. You can get lots of help from http://stefantsov.com/msbuild-and-msdeploy-for-orchard in order to edit Orchard.proj file. You may facing lots of errors, which is red colored, that you have to remove by comment out in Orchard.prof file. Don't forget to run command window as an administrator mode. Once you successfully compile and build by ClickToBuild.cmd, you are ready to move to next step. Don't border to build for test project. I just commented out all the test projects to build.

  2. If you have missing media files, copy files from ~\src\Orchard.Web\Media*.* to ~\build\Stage\Media\ folder.

  3. Copy all files from ~\src\Orchard.Web\App_Data folder to ~\build\Stage\App_Data except log folder. If you want to change the default URL which is "OrchardLocal", you could edit from either admin page or manually change on the code. (or just keep the same name of app when you insert new app on IIS).

  4. Create (or Add) new application on IIS server. Make sure your application pool sets to "integrate mode" rather than classic.

  5. If you have broken links of pages, you should go to admin page. And make sure the base url is matched with your default url from /admin/settings/Index page. Go to Naviation menu in admin page and validate all the Urls as well.

Even though I have some bugs, which I cannot see Bing-map/facebook windows yet, every thing works fine now. Hope this help.

0
votes

In addition to copying the app_data folder approach, you can use a concept called Orchard recipe that allows you to export and import content/modules so when you install it in live environment all you need to do is to select the recipe and everything get enabled as needed. Read more on http://docs.orchardproject.net/Documentation/Making-a-Web-Site-Recipe