Установка Django · 4 min read · Dec 04, 2025

Как установить Django на Mandriva 2008.1 (Apache2/mod_python)

Как установить Django на Mandriva 2008.1 (Apache2/mod_python)

Версия 1.0
Автор: Фалко Тимме

Этот учебник объясняет, как установить Django на сервере Mandriva 2008.1. Django — это веб-фреймворк, который позволяет быстро разрабатывать веб-приложения на Python с максимальной автоматизацией. В этом руководстве я буду использовать его с Apache2 и mod_python.

Этот howto предназначен как практическое руководство; он не охватывает теоретические основы. Они рассматриваются во многих других документах в сети.

Этот документ предоставляется без каких-либо гарантий! Я хочу сказать, что это не единственный способ настройки такой системы. Существует много способов достижения этой цели, но это тот путь, который я выбираю. Я не даю никаких гарантий, что это сработает для вас!

1 Установите MySQL

Прежде чем устанавливать какие-либо пакеты, мы должны включить основные репозитории, обновления основных, contrib и обновления contrib. Перейдите на http://easyurpmi.zarb.org/ - он должен предоставить вам команды, которые нужно выполнить для включения этих репозиториев. В моем случае я выполнил

urpmi.addmedia contrib ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/release with media_info/hdlist.cz
urpmi.addmedia --update contrib_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/updates with media_info/hdlist.cz
urpmi.addmedia main ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/release with media_info/hdlist.cz
urpmi.addmedia --update main_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/updates with media_info/hdlist.cz

Django может использовать несколько бэкендов баз данных, например, PostgreSQL, MySQL, SQLite и т.д. Если вы хотите использовать MySQL, вы можете установить его следующим образом:

urpmi MySQL MySQL-client

По умолчанию сетевые функции не включены в пакет MySQL Mandriva 2008.1. Мы можем изменить это, закомментировав строку skip-networking в /etc/my.cnf:

vi /etc/my.cnf

| [...] # Не слушать на TCP/IP порту вообще. Это может быть улучшением безопасности, # если все процессы, которым нужно подключиться к mysqld, работают на одном и том же хосте. # Все взаимодействия с mysqld должны осуществляться через Unix-сокеты или именованные каналы. # Обратите внимание, что использование этой опции без включения именованных каналов в Windows # (через опцию "enable-named-pipe") сделает mysqld бесполезным! # #skip-networking [...] |

После этого мы создаем системные ссылки для запуска MySQL…

chkconfig mysqld on

… и запускаем его:

/etc/init.d/mysqld start

Теперь проверьте, что сетевые функции включены. Выполните

netstat -tap | grep mysql

Вывод должен выглядеть так:

[root@server1 ~]# netstat -tap | grep mysql  
tcp        0      0 *:mysql-im                  *:*                     LISTEN      3746/mysqlmanager  
tcp        0      0 *:mysql                     *:*                     LISTEN      3754/mysqld  
[root@server1 ~]#

Выполните

mysqladmin -u root password yourrootsqlpassword  
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

чтобы установить пароль для пользователя root (в противном случае любой сможет получить доступ к вашей базе данных MySQL!).

2 Установите Apache и mod_python

Если Apache2 и mod_python еще не установлены на вашей системе, вы можете установить их следующим образом:

urpmi apache-mod_python

(Это также установит Apache2, если он еще не установлен.)

3 Установите Django

Чтобы установить Django и привязки Python MySQL, мы выполняем:

urpmi python-django python-mysql

4 Настройте Apache

Прежде чем настраивать Apache, мы должны создать проект Django (например, названный mysite) (см. http://www.djangoproject.com/documentation/tutorial01/). По соображениям безопасности я создаю этот проект вне корневого каталога документов (я использую корневой каталог документов Mandriva по умолчанию /var/www/html) (например, в /home/mycode):

mkdir /home/mycode  
cd /home/mycode  
/usr/bin/django-admin.py startproject mysite

Это создаст каталог /home/mycode/mysite с некоторыми файлами Python в нем.

Теперь, когда проект mysite создан, мы можем настроить Apache. Я создаю резервную копию оригинального файла /etc/httpd/modules.d/16_mod_python.conf и создаю новый следующим образом:

cp /etc/httpd/modules.d/16_mod_python.conf /etc/httpd/modules.d/16_mod_python.conf_orig  
cat /dev/null > /etc/httpd/modules.d/16_mod_python.conf  
vi /etc/httpd/modules.d/16_mod_python.conf

| LoadModule python_module extramodules/mod_python.so SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonDebug On PythonPath "['/home/mycode'] + sys.path" |

(Эта конфигурация действительна для виртуального хоста Mandriva по умолчанию в /var/www/html - если вы уже определили другие виртуальные хосты, где вы хотите использовать Django, пожалуйста, поместите секцию в соответствующую конфигурацию виртуального хоста, но оставьте строку LoadModule в /etc/httpd/modules.d/16_mod_python.conf.)

Путь в первой строке ( ) относится к URL - это означает, что эта конфигурация будет использоваться, если вы используете /mysite в URL (например, http://www.example.com/mysite). Вы можете изменить это по своему усмотрению. Пожалуйста, отрегулируйте другие значения ( SetEnv DJANGO_SETTINGS_MODULE mysite.settings и PythonPath “[‘/home/mycode’] + sys.path”) на имя вашего проекта и путь, где он находится.

Перезапустите Apache после этого:

/etc/init.d/httpd restart

Теперь вы можете получить доступ к http://www.example.com/mysite в браузере. Если все прошло хорошо, вы должны увидеть что-то вроде этого:

Это означает, что Django был успешно установлен, и теперь вы можете использовать его для разработки ваших веб-приложений на Python (пожалуйста, обратитесь к http://www.djangoproject.com/documentation/, чтобы узнать, как разрабатывать веб-приложения с помощью Django).

5 Подключение к базе данных MySQL из проекта Django

Если вы хотите использовать базу данных MySQL в вашем проекте Django, вам сначала следует создать эту базу данных (например, mysite) и пользователя базы данных (например, mysiteadmin) для этой базы данных:

mysql -u root -p
CREATE DATABASE mysite;  
GRANT ALL ON mysite.* TO 'mysiteadmin'@'localhost' IDENTIFIED BY 'mysiteadmin_password';  
GRANT ALL ON mysite.* TO 'mysiteadmin'@'localhost.localdomain' IDENTIFIED BY 'mysiteadmin_password';  
FLUSH PRIVILEGES;  
quit;

Затем откройте файл settings.py в папке проекта (например, /home/mycode/mysite) и измените настройки базы данных, например, следующим образом:

vi /home/mycode/mysite/settings.py

| [...] DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' или 'ado_mssql'. DATABASE_NAME = 'mysite' # Или путь к файлу базы данных, если используется sqlite3. DATABASE_USER = 'mysiteadmin' # Не используется с sqlite3. DATABASE_PASSWORD = 'mysiteadmin_password' # Не используется с sqlite3. DATABASE_HOST = '' # Установите в пустую строку для localhost. Не используется с sqlite3. DATABASE_PORT = '' # Установите в пустую строку для значения по умолчанию. Не используется с sqlite3. [...] |

6 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.