Гид по технологиям

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

5 min read Linux Python Обновлено 21 Nov 2025
Установка Django на Mandriva 2009.1
Установка Django на Mandriva 2009.1

Версия 1.0
Автор: Falko Timme

Введение

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

Важно: предоставленная инструкция даётся «как есть» без каких-либо гарантий. Тестируйте изменения на тестовом окружении перед продакшеном.

Основные шаги (обзор)

  1. Обновить базу пакетов
  2. Установить MySQL и включить сетевое соединение
  3. Установить Apache2 и mod_python
  4. Установить Django и драйверы Python для MySQL
  5. Создать проект Django и настроить Apache
  6. Создать базу данных и подключить её в settings.py

1 Установка MySQL

Сначала обновим базу пакетов:

urpmi.update -a

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

urpmi MySQL MySQL-client

По умолчанию в пакете MySQL для Mandriva 2009.1 сетевой доступ отключён. Чтобы включить его, откройте /etc/my.cnf и раскомментируйте (удалите) строку skip-networking, например:

vi /etc/my.cnf

| [...] # Don't listen on a TCP/IP port at all. This can be a security enhancement, # if all processes that need to connect to mysqld run on the same host. # All interaction with mysqld must be made via Unix sockets or named pipes. # Note that using this option without enabling named pipes on Windows # (via the "enable-named-pipe" option) will render mysqld useless! # #skip-networking [...] |

Затем создадим системные ссылки для автозапуска MySQL:

chkconfig mysqld on

и запустим сервис:

/etc/init.d/mysqld start

Проверьте, что MySQL слушает сетевые сокеты:

netstat -tap | grep mysql

Ожидаемый пример вывода:

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

Установите пароль для пользователя root MySQL (иначе база будет доступна без пароля):

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

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

Если Apache2 и модуль mod_python ещё не установлены, выполните:

urpmi apache-mod_python

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

Примечание: модуль mod_python устарел для многих современных конфигураций. Рассмотрите использование mod_wsgi и виртуальных окружений (см. раздел «Альтернативные подходы»).

3 Установка Django

Установим Django и Python-байндинги для MySQL:

urpmi python-django python-mysql

4 Настройка Apache для проекта Django

Сначала создайте проект Django (в примере — mysite). Для безопасности я помещаю проект за пределы docroot (по умолчанию /var/www/html), например в /home/mycode:

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

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

Теперь настройте 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" |

Примечания:

  • Строка указывает URL-путь (http://www.example.com/mysite). При необходимости измените его.
  • Обновите SetEnv DJANGO_SETTINGS_MODULE и PythonPath в соответствии с именем проекта и путём к нему.
  • LoadModule оставьте в /etc/httpd/modules.d/16_mod_python.conf, а секцию можно переместить в нужный виртуальный хост.

Перезапустите Apache:

/etc/init.d/httpd restart

Откройте в браузере http://www.example.com/mysite. При успешной установке вы увидите стартовую страницу Django.

Стартовая страница Django, подтверждающая успешную установку и работу приложения

Это означает, что Django установлен и готов к разработке приложений. Для изучения разработки обратитесь к официальной документации: http://www.djangoproject.com/documentation/ .

5 Подключение Django к MySQL

Создайте базу данных и пользователя для проекта:

mysql -u root -p

Внутри mysql-консоли:

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;

Откройте файл настроек проекта и укажите параметры БД:

vi /home/mycode/mysite/settings.py

| [...] DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. DATABASE_NAME = 'mysite' # Or path to database file if using sqlite3. DATABASE_USER = 'mysiteadmin' # Not used with sqlite3. DATABASE_PASSWORD = 'mysiteadmin_password' # Not used with sqlite3. DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3. [...] |

После изменения запустите миграции (если версия Django и проекты это поддерживают) и проверьте подключение.

6 Полезные команды и отладка

  • Проверка статуса MySQL: /etc/init.d/mysqld status
  • Проверка портов: netstat -tap | grep mysql
  • Логи Apache: tail -n 200 /var/log/httpd/error_log
  • Логи Django/приложения — если настроены, смотрите LOGGING в settings.py
  • Проверка прав доступа к файлам: ls -la /home/mycode/mysite

Классические симптомы и действия:

  • 500 Internal Server Error: посмотреть /var/log/httpd/error_log и включить PythonDebug On (только для отладки).
  • 404 при обращении к /mysite: проверьте секцию в конфигурации Apache и наличие index-файлов внутри проекта.
  • Ошибки подключения к MySQL: проверьте пользователя, пароль, host и port в settings.py и доступность сервера MySQL.

Альтернативные подходы и рекомендации

  • mod_python против mod_wsgi: mod_python считается устаревшим для развёртывания современных Django-приложений. mod_wsgi чаще используется и лучше интегрируется с виртуальными окружениями (virtualenv) и WSGI-совместимыми приложениями.
  • Используйте virtualenv / venv и pip для установки Django и зависимостей: это изолирует зависимости проекта от системных пакетов.
  • Рассмотрите использование менеджеров процессов (gunicorn/uwsgi) + nginx для продакшена вместо Apache+mod_python.

Краткая методология развёртывания (mini-methodology)

  1. Подготовьте чистую VM или контейнер с Mandriva.
  2. Обновите систему и установите системные зависимости (MySQL, Apache).
  3. Создайте виртуальное окружение Python и установите Django через pip (альтернатива системным пакетам).
  4. Создайте проект и проведите локальную проверку (manage.py runserver).
  5. Настройте веб-сервер (mod_wsgi/nginx+uwsgi) и проверьте в тестовом окружении.
  6. Мигрируйте данные и переведите в продакшен после проверки.

Чек-лист по ролям

Администратор:

  • Обновил пакеты: urpmi.update -a
  • Установил MySQL и включил сетевой доступ
  • Настроил автозапуск mysqld и httpd
  • Проверил логи Apache и MySQL

Разработчик:

  • Создал виртуальное окружение и проект Django
  • Настроил settings.py и подключение к БД
  • Проверил работу приложения локально и через Apache

Критерии приёмки

  • Страница http:///mysite открывается и отображает стартовую страницу Django.
  • В логах Apache нет ошибок уровня ERROR при загрузке проекта.
  • Django успешно подключается к созданной базе данных и выполняет миграции (если применимо).

Отказоустойчивость и откат

Если после внесения изменений сайт перестал работать:

  1. Откатите конфигурацию Apache к резервной копии (/etc/httpd/modules.d/16_mod_python.conf_orig).
  2. Перезапустите apache: /etc/init.d/httpd restart.
  3. Временно включите PythonDebug On для отладки (не делать в продакшене).
  4. Проверьте журналы и исправьте ошибку конфигурации. После исправления выключите PythonDebug.

Безопасность и рекомендации

  • Никогда не храните пароли в общедоступных репозиториях. Для продакшна используйте защищённые секреты/менеджеры.
  • Не включайте PythonDebug в продакшене — он раскрывает внутреннее состояние приложения.
  • Ограничьте доступ к MySQL только нужным хостам и настройте сильные пароли.

Глоссарий (одно предложение)

  • Django: Python-фреймворк для веб-разработки, ускоряющий создание веб-приложений;
  • mod_python: модуль Apache для встраивания Python (устаревающий в пользу mod_wsgi);
  • mod_wsgi: современный способ запуска WSGI-приложений на Apache;
  • virtualenv/venv: виртуальные окружения Python для изоляции зависимостей.

Ссылки

Короткое резюме

Следуя шагам выше, вы установите Django на Mandriva 2009.1 с Apache/mod_python, подключите MySQL и получите рабочую среду для разработки. Для продакшена рассмотрите модернизацию стека (mod_wsgi, virtualenv, gunicorn/uwsgi + nginx).

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

FTP в Linux: подключение, команды и безопасность
Linux

FTP в Linux: подключение, команды и безопасность

Как сохранить GIF из Twitter
Инструкции

Как сохранить GIF из Twitter

Запуск Windows Mobile 6.5 на ПК
Мобильные ОС

Запуск Windows Mobile 6.5 на ПК

Windows 8 в стиле Windows XP
Настройка Windows

Windows 8 в стиле Windows XP

LinkClump: массовое открытие ссылок в Chrome
Инструменты

LinkClump: массовое открытие ссылок в Chrome

Отключить cmd и Выполнить в Windows
Windows

Отключить cmd и Выполнить в Windows