Setting up the web configuration on local.xml instead of DB in Magento

Posted on October 13, 2012 by Nimrod Techn There have been 0 comments

First of all, why? why setting up the web configuration on the local.xml, when Magento's default setting is DB?

We would prefer to set up the web configuration on the local.xml, in case we use CDN / several servers that use the same DB.

In that case, only 1 address (let it be js/css or base url) is configured, when we actually need 2-3 or more.

 

The solution would be, to have the addresses on the local.xml of each one of the server  instances.

How do we set this up?

Go to app/etc/local.xml and add the following lines:

 <stores>
       <STORECODE1>
		<web>
			<unsecure>
				<base_url>http://www.your-server-instance.com/</base_url>
				<base_web_url>{{unsecure_base_url}}</base_web_url>
				<base_link_url>{{unsecure_base_url}}</base_link_url>
		       </unsecure>
			<secure>
				<base_url>https://www.your-server-instance.com/</base_url>
				<base_web_url>{{secure_base_url}}</base_web_url>
				<base_link_url>{{secure_base_url}}</base_link_url>
		       </secure>
	       </web>
        </STORECODE1>
       <STORECODE2>
		<web>
			<unsecure>
				<base_url>http://www.your-server-instance.com/</base_url>
				<base_web_url>{{unsecure_base_url}}</base_web_url>
				<base_link_url>{{unsecure_base_url}}</base_link_url>
		       </unsecure>
			<secure>
				<base_url>https://www.your-server-instance.com/</base_url>
				<base_web_url>{{secure_base_url}}</base_web_url>
				<base_link_url>{{secure_base_url}}</base_link_url>
		       </secure>
	       </web>
        </STORECODE2>
   </stores>
    <default>
        <web>
            <unsecure>
                <base_url>http://www.your-server-instance.com/</base_url>
                <base_web_url>{{unsecure_base_url}}</base_web_url>
                <base_link_url>{{unsecure_base_url}}</base_link_url>
                <base_js_url>{{unsecure_base_url}}js/</base_js_url>
                <base_skin_url>{{unsecure_base_url}}skin/</base_skin_url>
                <base_media_url>{{unsecure_base_url}}media/</base_media_url>
            </unsecure>
            <secure>
                <base_url>https://www.your-server-instance.com/</base_url>
                <base_web_url>{{secure_base_url}}</base_web_url>
                <base_link_url>{{secure_base_url}}</base_link_url>
                <base_js_url>{{secure_base_url}}js/</base_js_url>
                <base_skin_url>{{secure_base_url}}skin/</base_skin_url>
                <base_media_url>{{secure_base_url}}media/</base_media_url>
            </secure>
        </web>
    </default>
</config>

Replace STORECODE1 / STORECODE2 with the actual store codes you use.
Replace  http://www.your-server-instance.com/ with your URL addresses.

Second step, you have to remove from the DB table core_config_data everything that begins with web/secure AND web/unsecure.
If you don't, Magento will continue taking our addresses from the DB (as always, the DB is the "strongest"). Remove the cache, and try to start your application.

 

Bear in mind, the <stores> section isn't mandatory - if you have just one instance and wish to start the default website, you can copy only that section and everything will work out just fine.


This post was posted in Core

Magento is a well-engineered eCommerce platform designed to help engineers develop customized eCommerce online stores. Due to lack of proper coding documentation, Engineer-ing.com was created with the sole purpose of instructing Magento developers to-be with the "how-to-do" know-how. In the event of unresolved issues, you are more than welcome to contact me for consultation. However, please do so only if you possess a Software Engineering background and you're able to specify your question.