19.05.11

Недавно начал изучать фреймворк Django и столкнулся с одной проблемой – нигде в интернете нет подробного и работающего руководства по установке Django. Я решил исправить эту проблему и представляю на ваш суд пошаговый мануал по установке Django на Ubuntu linux.

Будем считать, что работающее приложение будет использовать БД MySQL, в роли веб-сервера выступает Apache с модулем mod_python.

Все нижеследующие команды должны выполняться с правами суперпользователя.

Установка MySQL:

Shell
1
apt-get install mysql-server mysql-client

Установка Apache и mod_python:

Shell
1
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-python

Установка самого Django:

Shell
1
apt-get install python-django

Теперь настало время создать БД и пользователя для Django. Для этого запускаем клиент MySQL и выполняем следующие команды:

1
2
3
4
5
6
CREATE DATABASE mydjango;
CREATE USER 'mydjango'@'localhost' IDENTIFIED BY 'mydjango'
CREATE USER 'mydjango'@'%' IDENTIFIED BY 'mydjango'
GRANT ALL PRIVILEGES ON mydjango.* to 'mydjango'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON mydjango.* to 'mydjango'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Это позволит нам создать БД mydjango и пользователя mydjango с паролем mydjango, имеющего к ней полный доступ.

Теперь можно приступить к созданию проекта:

Shell
1
2
3
4
5
6
7
8
9
10
mkdir ~/www
cd ~/www
sudo mkdir media
sudo ln -s /usr/share/django/django/contrib/admin/media ./admin_media
/usr/share/django/django/bin/django-admin.py startproject mydjango
cd mydjango
./manage.py startapp someapp
cd someapp
mkdir templates
cd ..

Мы создали проект someapp, теперь настало время его настроить. Для этого открываем файл settings.py и изменяем:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
DATABASES = {
'default': {
'ENGINE': 'mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', $
'NAME': 'mydjango', # Or path to database fil$
'USER': 'mydjango', # Not used with sqlite3.
'PASSWORD': 'mydjango',
TIME_ZONE = 'Russia/Moscow'
MEDIA_ROOT = '/home/username/www.media/'
MEDIA_URL = 'http://dev-4-web.ru/media'
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates"
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
"/home/username/www/mydjango/someapp/templates"
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'mydjango.someapp',
)

Конечно же пути к папкам должны быть заменены на те, которые соответствуют вашей системе.

Теперь вносим изменения в urls.py:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from django.conf.urls.defaults import *
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Example:
# (r'^someapp/', include('someapp.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
#(r'^admin/', include(admin.site.urls)),
(r'^admin/(.*)', admin.site.root),
)

Теперь выполняем синхронизацию БД и задаем логин и пароль администратора Django:

Shell
1
./manage.py syncdb

Можно переходить к настройке Apache. Поправьте файл /etc/apache2/conf/sites-available/default в соответствии вот с этим:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<virtualHost *:80>
RewriteEngine On
ServerAdmin webmaster@localhost
ServerName knowledgebase
<location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE knowledgebase.settings
PythonDebug On
PythonPath "['/home/username/www'] + sys.path"
</location>
Alias /media /home/username/www/media
<location "/media">
SetHandler None
</location>
Alias /admin_media /home/username/www/admin_media
<location "/admin_media">
SetHandler None
</location>
<locationmatch ".(jpg|gif|png)">
SetHandler None
</locationmatch>
ErrorLog /var/log/apache2/knowledgebase-error.log
LogLevel warn
CustomLog /var/log/apache2/knowledgebase-access.log combined
</virtualHost>

Необходимо только оставить ваши пути. При необходимости можно создать отдельный виртуальный хост под ваши нужды. И обязательно нужно перезапустить Apache:

Shell
1
service apache2 restart

Вот и все – установка Django завершена, теперь при заходе по адресу http://вашсайт/admin можно увидеть окно авторизации админского интерфейса.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>