Migrating to DreamHost

Just finished moving my site from godaddy.com to dreamhost.com.  So far the transfer has been pretty painless, but all I did was migrate the hosting!

After getting setup, I started working on a project to put some Bitly API data on a map using Django/Python.  I quickly discovered that the version of python on DreamHost was too old, so I set out to install my own.  I found these instructions to be the best: http://www.ricksresources.com/2012/07/install-python-27-dreamhost/

Once you can SSH into your DH server, do the following:

[bash]
[paramaribo]$ mkdir python
[paramaribo]$ cd python
[paramaribo]$ wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
[paramaribo]$ tar xjf Python-2.7.3.tar.bz2
[/bash]

That will download python for you, and extract it.  Now you will need to build Python:

[bash]
[paramaribo]$ cd Python-2.7.3
[paramaribo]$ ./configure –prefix=$HOME/python
[paramaribo]$ make
[/bash]

After running this, you may see some text like this:

[bash]
Python build finished, but the necessary bits to build these modules were not found:
_bsddb _tkinter bsddb185
bz2 dl imageop
sunaudiodev
[/bash]

These Python libraries probably won’t be needed, so don’t worry that they didn’t build. Now run the following to install Python:

[bash]
[paramaribo]$ make install
[/bash]

Once that is done, python should be operational! Run the following to add your new python to your PATH so that this python will always run:

[bash]
[paramaribo]$ echo ‘export PATH=$HOME/python/bin:$PATH’ >> ~/.bash_profile
[/bash]

Restart your SSH session, and try running “python” at the prompt, and you should have python 2.7.3 all up and running! The next step is to set up a virtual environment and get some stuff running.

A python virtual environment lets you have isolated versions of python running with different installed libraries. This makes it really easy to setup different applications on the same server even when they need different versions of python, or different libraries installed.

[bash]
[paramaribo]$ wget http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.8.4.tar.gz
[paramaribo]$ tar xzf virtualenv-1.8.4.tar.gz
[paramaribo]$ cd virtualenv-1.8.4
[paramaribo]$ python setup.py install
[/bash]

I keep all of my environments in an env folder in my user’s root directory:

[bash]
[paramaribo]$ mkdir env
[paramaribo]$ virtualenv env/linkmap.moravec.net
[bash]

Now, switch to your new environment, install Django, and mysql drivers:

[bash]
[paramaribo]$ source ~/env/linkmap.moravec.net/bin/activate
(linkmap.moravec.net)[paramaribo]$ pip install Django
Downloading/unpacking Django
Downloading Django-1.4.3.tar.gz (7.7MB): 7.7MB downloaded
Running setup.py egg_info for package Django

Installing collected packages: Django
Running setup.py install for Django
changing mode of build/scripts-2.7/django-admin.py from 664 to 775

changing mode of /home/cmoravec/env/linkmap.moravec.net/bin/django-admin.py to 775
Successfully installed Django
Cleaning up…
(linkmap.moravec.net)[paramaribo]$ pip install MySQL-python
Downloading/unpacking MySQL-python
Downloading MySQL-python-1.2.4c1.zip (113kB): 113kB downloaded
Running setup.py egg_info for package MySQL-python
Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz
Extracting in /tmp/tmpZZ7doS
Now working in /tmp/tmpZZ7doS/distribute-0.6.28
Building a Distribute egg in /home/cmoravec/env/linkmap.moravec.net/build/MySQL-python
/home/cmoravec/env/linkmap.moravec.net/build/MySQL-python/distribute-0.6.28-py2.7.egg

Installing collected packages: MySQL-python
Running setup.py install for MySQL-python
building ‘_mysql’ extension
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,4,’rc’,5) -D__version__=1.2.4c1 -I/usr/include/mysql -I/home/cmoravec/python/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -DBIG_JOINS=1 -fPIC
gcc -pthread -shared build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib/mysql -lmysqlclient_r -o build/lib.linux-x86_64-2.7/_mysql.so

Successfully installed MySQL-python
[/bash]

Once that is done, you should be good to go!

For details, try: http://www.ricksresources.com/2012/07/writing-wsgi-apps-on-dreamhost-shared-hosting/

Leave a Reply