Dec 29, 2010

Standard procedure to upgrade Magento to the newest version

I can’t give you exact recipe how to upgrade your specific Magento installation, but I’ll try to explain my standard procedure when getting Magento up to date.

1) Know what are you facing with:
Check google if there is something special about upgrading your specific version of Magento to the newest one.
If nothing else, you will be prepared with issues that you will need to solve.

2) Backup your files
We usually do it from CLI like this:
tar -cvvzf your_site_directory.tar.gz your_site_directory/ 2>error.log

3) Backup your database
You can also do it from CLI like this:
mysqldump -u THIS_IS_YOUR_USERNAME_FOR_DB -h localhost -pTHIS_IS_YOUR_USERNAME_FOR_DB my_database_name | gzip -9 > my_database_name.sql.gz

4) Copy those files to the new location
In case you need to move files between 2 servers, easiest way I can think of in CLI would be this:
scp /path_to_some_file/your_site_directory.tar.gz user@REMOTE_SERVER_ADDRESS:/some_dir_on_remote_server
You can do the same with your backup-ed database

5) Now it is time to import database into new created one:
a) Extract my_database_name.sql.gz
b) mysql –verbose –user=THIS_IS_YOUR_USERNAME –password=THIS_IS_YOUR_PASSWORD newly_created_db < my_database_name.sql

6) Now extract the files this way:
tar -xvvzf your_site_directory.tar.gz
This will extract all files to the current directory

7) Edit db table core_config_data and set new secure/unsecure URLs of your site



8.) Disable cache from admin.


9) Delete cache and session directories  located here:
/var/cache
/var/session
rm /your_path_to/var/session -R
rm /your_path_to/var/cache -R

10) Execute “clean” bash script located in /downloader/pearlib directory
a) Run chmod +x clean  to be able to execute this script
b) ./clean to execute script

11) Finally go to Magento connect manager from your Magento admin
Paste this extension to upgrade Magento: magento-core/Mage_All_Latest
After this is done, you should have new Magento, however if there was some custom coding, you should really know what is going on with your code.
Usually installation ends up with some minor problems that should be handled manually, sometimes even on default installations if you have really old version
of Magento that you would like to upgrade.

12) All that left is to test it and move those files on production server.
Note that this article is just for informative purposes and it is not meant to be tutorial, guide or whatever.
If I forgot something, I’ll update post.

by Tomas Novoselic in Magento

Dec 28, 2010

Restricting your Magento instance to your IP address exclusively

Other visitors, including search spiders, will get the HTTP 503 Service Unavailable error.
Create a file 503.php in your Magento installation root:
  1. <?php
  2. header('HTTP/1.1 503 Service Unavailable');
  3. header('Content-Type: text/plain; charset=UTF-8');
  4. echo "503 Service Unavailable";
In .htaccess or in Apache server configuration, add the following rewrite rule:



Where 127.0.0.1 (note the backslashes before dots) should be replaced with your IP-address.
Once you save this .htaccess file or reload Apache configuration, your site will be down until you restore the initial state.

Nov 14, 2010

Upgrading your magento site without downtime

Before you put on a load of changes to a live site it’s advised to test. Obviously we hope you’ve tested locally, etc, but what if you have an external theme that’s been updated, and how do you test in as close to live as possible?  Here is your answer:
  1. Backup your live database – see here for more info
  2. Backup your Magento site completely
  3. Create a new directory under your magento install called test
  4. Copy the Magento site files into this test directory, maintaining permissions (e.g. tar xvfp)
  5. Make a new database with a new name on your site
  6. Import the live database backup – you may want to disable foreign key checks when doing import
  7. Modify the core_config_table base_urls to point to your test location, e.g. http://www.mysite.com/test/
  8. Modify app/etc/local.xml to use the new database
  9. Run up frontend/backend and make sure is working
You now have a fully working test site.  You can then make your changes on this without affecting the live site.
Once you are happy everything is working you can then either redirect people to use this new location, or do what I do and move your old site to a different subdirectory, and put your new site in the httpdocs folder.
The big advantage of this approach is that if you find an issue a couple of days down the line you can easily just move back to the old server – it’s still there in the background.  I’d advise you switch off checkout so people can’t use the old version.

Original article by: webshopapps.com