Django SVN merupakan development version dari Django, dan instalasi Django SVN akan memberikan pengaruh langsung kepada kita terhadap perkembangan Django. Metoda yang sama juga dapat anda ikuti untuk mengginstall Django dari source (tanpa SVN)
Install Apache dan Python Module
Yum package management akan secara otomatis melakukan instalasi Apache 2.2.3 melalui perintah dibawah ini;
yum install -y mod_python subversion wget
Selain instalasi httpd dan mod_python, kita juga melakukan instalasi subversion untuk melakukan instalasi django.
Masukkan service httpd pada startup list; dan start service httpd;
chkconfig httpd on service httpd start
Pada CentOS 5.2, Python Module untuk apache akan dipanggil oleh file /etc/httpd/conf.d/python.conf
# # Mod_python is a module that embeds the Python language interpreter # within the server, allowing Apache handlers to be written in Python. # LoadModule python_module modules/mod_python.so
Install Django SVN
mkdir /opt/django cd /opt/django/ svn co http://code.djangoproject.com/svn/django/trunk/
Setelah proses checkout SVN selesai, maka django telah terinstall, yang harus kita lakukan kemudian adalah memberitahukan python mengenai instalasi django yang baru saja kita lakukan. Hal ini dilakukan dengan membuat symbolic link path instalasi django ke direktori site package milik Python.
ln -s /opt/django/trunk/django /usr/lib/python2.4/site-packages
Kemudian kita membuat symbolic link django-admin.py ke dalam system CentOS agar bisa dipanggil dari direktori mana saja.
ln -s /opt/django/trunk/django/bin/django-admin.py /usr/local/bin/django-admin.py
Tes instalasi django, jika perintah berikut tidak mengembalikan pesan error maka instalasi django anda sudah berhasil, apabila masih ada kesalahan, periksa ulang perintah untuk memasukkan path django ke dalam path site package Python.
python >>> import django
Instalasi Database Server MySQL dan Python Module 1.2.2
Ikauti langkah-langkah instalasi database server MySQL dan Python Module 1.2.2 pada artikel http://artikel.magnet-id.com/knowledge-base/vps-knowledge-base/menggunakan-mysqldb-untuk-aplikasi-django/ , hal ini harus dilakukan secara manual, karena python adapter untuk MySQL dari CentOS 5.2 yum masih pada versi 1.2.1 sementara django membutuhkan versi 1.2.1p5 ke atas.
Membuat Direktori Template dan Aplikasi
Berbeda dengan PHP, django di deploy tanpa menempatkan source file template dan aplikasi di document root web server, django kemdian akan melakukan pemetaan URL melalui Django URL Resolver. Untuk memudahkan proses development nantinya, kita akan membuat user di luar root terlebih dahulu;
Install sudo
yum install -y wget sudo
Buat username dan berikan password
adduser username passwd usename
Berikan akses sudo kepada user terkait
visudo
Tambahkan baris berikut;
username ALL=(ALL) ALL
Save dan exit visudo
:wq
Su ke user tersebut dan pindah ke home direktori user;
su username cd ~
Ubah username dengan nama user yang anda buat, buat direktori djangoapps (untuk aplikasi dan project anda nantinya) dan djangowww untuk file media dan template.
mkdir djangoapps mkdir djangowww mkdir djangowww/template mkdir djangowww/media
Buat test project;
cd djangoapps/ django-admin.py startproject testapp exit
Ubah permission home direktori user agar dapat diakses oleh Apache kemudian dan tidak memunculkan Forbidden 403 Error;
cd /home/ chmod 711 username/
Membuat Egg Cache
Kemudian siapkan direktori untuk menyimpan Python Egg Cache dan pastikan bahwa web server memiliki hak tulis ke direktori tersebut, dalam hal ini adalah /var/cache/.
mkdir -p /var/cache/www/pythoneggs chown apache /var/cache/www/pythoneggs
Konfigurasi Virtual Host Apache
Pada bagian ini kita akan menambahkan sebuah virtual host di Apache, yang nantinya domain pada virtual host tersebut akan berjalan di atas aplikasi django yang akan kita kembangkan.
Buat konfigurasi Virtual Host di file /etc/httpd/conf.d/vhosts.conf yang akan diload oleh Apache pada saat startup.
vi /etc/httpd/conf.d/vhosts.conf
Masukkan baris berikut, bisa ditambahkan atau dikurangi kemudian sesuai dengan kebutuhan anda; Gantikan username, tesdomain.com dan testapp dengan konfigurasi anda.
NameVirtualHost *:80 <VirtualHost *:80> ServerName tesdomain.com DocumentRoot "/home/username/djangowww/" # Menambahkan www. untuk domain (optional) # RewriteEngine On RewriteCond %{HTTP_HOST} ^tesdomain\.com [NC] RewriteRule (.*) http://www.tesdomain.com$1 [R=301,L] # Django stuff # <Location "/"> SetHandler python-program PythonHandler django.core.handlers.modpython PythonPath "['/home/username/djangoapps/'] + sys.path" SetEnv DJANGO_SETTINGS_MODULE testapp.settings SetEnv PYTHON_EGG_CACHE "/var/cache/www/pythoneggs" PythonDebug On </Location> # Static media: images, css, etc. # <Location "/media/"> SetHandler None </Location> </VirtualHost>
Save dan Exit; kemudian restart httpd;
:wq service httpd restart
Tes setup virtual host anda; Apabila konfigurasi virtual host apache dan django sudah dilakukan dengan benar maka akan muncul gambar seperti berikut;
Aplikasi Django anda sudah siap untuk dikembangkan dengan menggunakan Apache Web Server.
Referensi