InstallationInstall Sana Commerce Webshop on Web and Database Server

Install Sana Commerce Webshop on Web and Database Server

Configure IIS

Now that the web application is in place, it can be connected to IIS, so it is exposed to the Internet. To do this, create a new website in IIS: 


Creating a New Website in IIS 

Step 1: Give an appropriate description to the website, select the IP address and domain names, which will run the Sana Commerce solution, and map the website's home directory to the frontend directory of the Sana Commerce solution on the file system (see the 'Install the Web Applications' chapter).

Step 2: Select the option 'Allow anonymous access to this Web site' on the 'Web Site Home Directory' step in the Web Site Creation Wizard when you want the website to be publicly available.

Step 3: Select only the 'Read' option on the 'Web Site Access Permissions' step.

Step 4: Click right on the newly created website, select 'New' and select 'Virtual directory'. Choose 'Backoffice' as name (or a different name, if preferred), select only 'Read rights' and map the home directory to the backoffice directory of the Sana Commerce solution in the file system (see the 'Install the Web Applications' chapter).

There are system names which cannot be used in a virtual directory name. For example: shop, profile, checkout.
If you create a virtual directory in IIS, do not use system names in the virtual directory names. Otherwise, this will cause problems with running the frontend.

Step 5: Create a new application pool by clicking right on the 'Application pool' folder, select 'New > Application Pool'. Give the application pool an appropriate name and leave the 'Application pool settings' set to 'Use default settings for new application pool'. By default the application pool identity is set to 'Network service' (in order to check this select 'Properties' of your application pool, open the 'Identity' tab and check the value in the 'Predefined' drop-down list). Change it to 'Configurable' and specify the SC_Webuser:


Specifying SC_Webuser as the Application Pool Identity

Step 6: Click right on the frontend website and select properties. Click the 'Home Directory' tab and select the newly created application pool in the application pool dropdown. 'Execute permissions' option determines the program execution level allowed for this site's resources. Select 'Scripts only', so that only scripts will be allowed to run, not executables. Select the newly created application pool in the 'Application pool' dropdown. Click the 'Apply' button to save these settings:

 
Setting the Execute Permissions for the Starter Site Application Pool 

Step 7: Click the 'ASP.NET' tab and select '4.0.30319' in the 'ASP.NET Version' dropdown if it is not set by default. Click 'OK' to save your changes:

 
Specifying the ASP.NET Version 

Step 8: Click right on the backoffice virtual directory on the frontend website and select 'Properties'. Click the 'Virtual directory' tab and click the 'Create' button next to the 'Application name' field:


Setting the Execute Permissions for the Backoffice Application Pool

By default the request without extension in IIS 6 is not handled by ASP.NET (for example: www.mywebshop.com\promotion). The request to images is not handled by ASP.NET also. Therefore the wildcard must be configured.

The wildcard must be configured for each website and for the backoffice.

To add a wildcard application mapping to a web server or website:

Step 1: In IIS Manager, expand the local computer, expand the 'Web Sites' folder, right-click on the website or virtual directory that you need, and then click 'Properties'.

Step 2: Click on the appropriate tab 'Home Directory'.

Step 3: In the 'Application settings' area click on 'Configuration', and then click on the 'Mappings' tab:


Mappings Tab to Install a Wildcard Application Map

To install a wildcard application map do the following:

Step 1: On the 'Mappings' tab click the 'Insert' button:


Adding an Application Extension Mapping 

Make sure that the 'Verify that file exists' check box is unchecked.

Step 2: Type the path to the DLL in the 'Executable' field:
c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll 

If 64-bit version of Windows is installed on the server then type the path to the DLL in the 'Executable' field:
c:\windows\microsoft.net\framework64\v4.0.30319\aspnet_isapi.dll
Make sure that in the <system.webServer> node of the backoffice and frontend 'web.config' files the value for the 'requireAccess' attribute is set to "None":

<system.webServer>
<handlers>
<add name="wildcard sc" path="*" verb="*" type="" modules="IsapiModule"
scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
resourceType="Unspecified" requireAccess="None"
preCondition="classicMode,runtimeVersionv4.0,bitness64" />
</handlers>
</system.webServer>


Step 3: Restart the application pool for a website.