Installing Magento on a Linode VPS with Ubuntu 9.10

Magento is an interesting and emerging player in the e-commerce space. I wanted to get a feel for the application so I thought I’d install a copy of the community edition in a Linode VPS.


Although you can run all of the following as the root user, it is strongly recommended to create a non-root account and run the following commands using sudo.

  1. Become a Linode customer and create an instance in the Linode Manager using the Ubuntu 9.10 profile.
  2. SSH into your VPS instance using the root account and the password that you configured when provisioning your Linode.
  3. Install the core software for a LAMP Server (Apache, MySQL, PHP) by running the following command:
    sudo tasksel install lamp-server
    A blue installation progress screen will appear, you’ll be asked to provide certain configuration parameters (like a root password for MySQL.
    When the blue screen disappears the installation of Apache, MySQL and PHP will be complete.
  4. Edit /etc/apt/sources.list and uncomment the ‘universe’ repsoitories.
  5. Update apt so that it is aware of the new repositories by running the following command:
    sudo apt-get update
  6. Install mcrypt by running the following command:

    $ sudo apt-get install php5-mcrypt

  7. Enable mcrypt by editing the php.ini file by editing /etc/php5/apache2/php.ini and adding the following line to
    the extensions section of the php.ini file:
  8. Generate new Symlinks in /etc/apache2/mods-enabled so that Apache 2 enable the extension for URL rewriting by running the following
    $ sudo a2enmod rewrite
  9. Next the following lines need to be put at the end of /etc/apache2/apache2.conf:

    <Directory "/var/www/magento">
    AllowOverride All
    (Assuming that Magento is going to be installed in /var/www/magento otherwise, edit the path accordingly)
  10. Next install the additional software required for the installation with the following commands:

    $ sudo apt-get install php5-curl php5-gd subversion
  11. Restart Apache for the PHP settings and the Apache settings to take affect:

    $ sudo /etc/init.d/apache2 restart

  12. Create a MySQL database for the installation with the following command:
    $ sudo mysqladmin -u root -p create 'magento'

  13. Install Magento from subversion using the following commands:

    $ cd /var/www
    $ sudo svn checkout
    $ sudo mv 1.3 magento
  14. Set the correct permissions for the installation wizard with the following commands:

    $ sudo chown -R www-data.www-data /var/www/magento/app
    $ sudo chown -R www-data.www-data /var/www/magento/var
    $ sudo chown -R www-data.www-data /var/www/magento/media
    $ sudo chmod 770 /var/www/magento/app/etc
    $ sudo chmod 770 /var/www/magento/var
    $ sudo chmod 770 /var/www/magento/media
    $ sudo chmod 770 /var/www/magento/media/downloadable
    $ sudo chmod 770 /var/www/magento/media/import
  15. You should now be able to run the Magento Installation Wizard by pointing your browser at http://hostname/magento/ .

Your mileage may vary but the above steps worked for me.

This post was inspired by Installing Magento on Slicehost with Ubuntu.


New Django hosting option available

A recently launched startup named Kutoken has begun to offer Django hosting.

Per Kutoken home page:

Kutoken is a first-class platform for hosting Django applications. We’ve taken the knowledge we’ve acquired building big clusters for large organisations with deep pockets, and made it accessible to all.

If you’re a perfectionist with a deadline, Kutoken is the logical choice.

I’m glad to see the options available for easily deploying Django applications increase. It is an encouraging sign for the future of Django that companies like Kutoken feel confident building a businesses whose success is based on Django’s continued adoption and use.

An example of the Agile Cloud in action

An example of the Agile Cloud.

“You can build prototypes in the time it takes to have a meeting”
Simon Willison – Open Platform launch

This is phrase which sticks in my mind from Tuesday and I make no apologies for including it in 2 blog posts in a day. It has to be said that I don’t want ever to be in a 7 hour meeting (that was roughly how long ContentTagger took to build). However it’s still quite a quick turnaround and it got some extra niceness from a couple of “watercooler” moments (although one of them may have added on a couple of hours).

I definitely have attended meetings that have lasted at least seven hours.

The prototype was built using the default Google App Engine framework, Django templates and the Python client library for OpenPlatform.

A nice combination of Google App Engine, Python, and jQuery.

The Service Cloud

I continue to be impressed by the vision, capability, and reach of the platform.

The following video was taped at the 1/15/09 Service Cloud Launch event.

The first 23 minutes or so of the following video is a good “State of the Union” message for overall delivered by Mark Benioff Chairman & CEO of

The rest of the presentation describes the announcement of the “Service Cloud” extensions to the existing capabilities of the Service and Support Applications and extensions to the platform.

While the underlying concepts behind the idea of using the Internet to engage in conversations with your customers have been with us for some time (Cluetrain Manifesto) the growth of social networks like Facebook provide leverage to apply these concepts in ways that were not possible in the past.

It will be interesting to see how quickly companies move to embrace this level of engagement with their customers.

Tim Bray on the Future of the Web

An interesting interview with Tim Bray on The Future of the Web.

The topics covered are fairly wide ranging with the more interesting questions and answers in the last two thirds of the interview.

One of my favorite web frameworks Django is mentioned favorably several times.

I completely agree with his position regarding REST/WOA as being the architectural pattern that matters today.

On the topic of cloud computing Mr. Bray talks about the alignment of agile methods, open source, and cloud computing working to deliver “monetization at the point of value”. This seems to be a recurring theme.

He poses three questions concerning adoption of the cloud computing.

  1. What is the right level of abstraction for the cloud?
  2. How can one avoid vendor lock-in?
  3. How can one ensure security is handled appropriately?

Noting that the economics of cloud computing are compelling but the above questions need to be addressed.

His comments about enterprise adoption of what is currently today’s startup technology platforms is also interesting.

Sun unveils their Cloud Computing Platform

On Wednesday March 18th Sun unveiled their Cloud Computing Platform. Comprehensive coverage of the event is available from Sun.

The announcement has received coverage from such different outlets as NPR and Business Week.

One of the more interesting aspects of the platform is a commitment to a set of open APIs.

As part of the company’s commitment to building communities, Sun also announced the release of a core set of Open APIs, unveiled broad partner support for its cloud platform and demonstrated innovative features of the Sun Cloud. Sun is opening its cloud APIs for public review and comment, so that others building public and private clouds can easily design them for compatibility with the Sun Cloud. Sun’s Cloud API specifications are published under the Creative Commons license, which essentially allows anyone to use them in any way. Developers will be able to deploy applications to the Sun Cloud immediately, by leveraging pre-packaged VMIs (virtual machine images) of Sun’s open source software, eliminating the need to download, install and configure infrastructure software. To participate in the discussion and development of Sun’s Cloud APIs, go to

I hope to have some time to take a look at the APIs in more detail and compare them to other Cloud API standardization initiatives but the notion of virtual machine image portability and a standardized set of meta-data about application deployment and configuration to a cloud is certainly appealing.

In addition, the linked video is a demonstration by Dave Douglas and Lew Tucker on the ability for cloud users to create a “Virtual Data Center” (VDC) by dragging and dropping system components from a palatte and linking them together into a service.

More information about the overall initiative can be found here and also my complete list of bookmarks about the platform.