Установка 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.czurpmi.addmedia --update contrib_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/updates with media_info/hdlist.czurpmi.addmedia main ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/release with media_info/hdlist.czurpmi.addmedia --update main_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/updates with media_info/hdlist.czDjango может использовать несколько бэкендов баз данных, например, 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-mysql4 Настройте 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 |
(Эта конфигурация действительна для виртуального хоста Mandriva по умолчанию в /var/www/html - если вы уже определили другие виртуальные хосты, где вы хотите использовать Django, пожалуйста, поместите секцию
Путь в первой строке (
Перезапустите 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 -pCREATE 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 Ссылки
- Django: http://www.djangoproject.com
- Python: http://www.python.org
- Mandriva: http://www.mandriva.com
Get new posts in your inbox
No spam. Unsubscribe anytime.