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

Установка Django на Fedora 9 (Apache2/mod_python)

• 5 min read • Инструкция • Обновлено 26 Nov 2025
Установка Django на Fedora 9
Установка Django на Fedora 9

Version 1.0
Автор: Falko Timme

Важно: этот документ предоставляется “как есть” без каких-либо гарантий. Это один из возможных способов настройки — он подходит в большинстве простых случаев, но не гарантированно сработает во всех окружениях.

Описание и назначение

Это практическое руководство объясняет, как быстро развернуть Django на Fedora 9 с Apache2 и mod_python. Здесь описаны команды и минимальные настройки, необходимые для того, чтобы запустить проект Django и подключиться к базе данных MySQL.

Кто выиграет от этой инструкции: системные администраторы и разработчики, которым нужно быстро развернуть тестовый или небольшой продакшен-сервер на Fedora 9. Для обучения разработке на Django см. официальную документацию.

Ключевые термины

  • Django: высокоуровневый веб-фреймворк для Python.
  • mod_python: модуль Apache, позволяющий интерпретировать Python-код в контексте веб-сервера.
  • MySQL: реляционная база данных.

Содержание

  • Установка MySQL
  • Установка Apache и mod_python
  • Установка Django и Python-биндингов для MySQL
  • Настройка Apache для проекта Django
  • Подключение Django к базе MySQL
  • Проверка, отладка и безопасность
  • Альтернативные подходы и когда это не подходит
  • Чек-лист ролей и критерии приёмки
  • Короткий словарь
  • Полезные ссылки

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

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

yum install mysql mysql-server

Создайте автозапуск сервиса MySQL при загрузке:

chkconfig --levels 235 mysqld on

Запустите MySQL:

/etc/init.d/mysqld start

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

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

Примечание: замените yourrootsqlpassword на надёжный пароль. Если сервер доступен извне, ограничьте доступ по сети и используйте firewall.

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

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

yum install mod_python

Эта команда установит также Apache, если он отсутствует.

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

Для установки Django и Python-биндингов для MySQL выполните:

yum install Django MySQL-python

После этого у вас появится django-admin.py и необходимые библиотеки для работы с MySQL.

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

Перед настройкой Apache создайте проект Django (например, mysite) вне web-докрут-дерева по соображениям безопасности (в примере используется /home/mycode):

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

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

Создайте резервную копию существующей конфигурации и подготовьте новый файл конфигурации для mod_python:

cp /etc/httpd/conf.d/python.conf /etc/httpd/conf.d/python.conf_orig  
cat /dev/null > /etc/httpd/conf.d/python.conf  
vi /etc/httpd/conf.d/python.conf

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

Этот блок конфигурации подходит для дефолтного vhost (/var/www/html). Если у вас несколько виртуальных хостов, поместите секцию … в конфиг нужного vhost, а строку LoadModule оставьте в /etc/httpd/conf.d/python.conf.

Пояснения:

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

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

/etc/init.d/httpd restart

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

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

Страница означает успешную установку и работу фреймворка. Для разработки изучайте официальную документацию по Django.

5 Подключение MySQL к проекту 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;

Затем отредактируйте settings.py вашего проекта (например, /home/mycode/mysite/settings.py):

vi /home/mycode/mysite/settings.py

| [...] DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'. 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. [...] |

Сохраните файл и перезапустите Apache, если считаете нужным.

Проверка и отладка

  1. Логи Apache: /var/log/httpd/error_log и access_log — первые места для поиска ошибок.
  2. Логи MySQL: /var/log/mysqld.log — ошибки подключения и прав.
  3. Ошибки Django в режиме отладки: включите DEBUG = True в settings.py (только для тестирования), чтобы увидеть стек-трейсы.

Типичные проблемы и решения:

  • Ошибка импорта django.core.handlers.modpython: убедитесь, что Django установлен в системном Python, путь в PythonPath верный.
  • Ошибка доступа к базе: проверьте пользователя, пароль, права и host (localhost/127.0.0.1).
  • Права на файлы: Apache должен иметь доступ к каталогу проекта, но по возможности не давать полного доступа пользователю www-data/ apache.

Безопасность и эксплуатация

  • Никогда не включайте DEBUG = True в продакшене.
  • Используйте сложные пароли для пользователей БД.
  • Ограничьте доступ к серверу через межсетевой экран (firewall) и настройте SELinux при необходимости.
  • По возможности используйте виртуальные окружения Python (virtualenv) и изолируйте зависимости проекта. mod_python запускает код в процессе Apache — это может затруднять изоляцию окружения, поэтому для продакшена рекомендованно использовать WSGI (mod_wsgi) или отдельные WSGI-сервисы.

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

Когда этот способ не рекомендован:

  • Когда нужна изоляция приложений и управление зависимостями — лучше использовать virtualenv и mod_wsgi.
  • Когда требуется масштабирование — используйте WSGI-приложения за балансировщиком (nginx + uWSGI/gunicorn).
  • Если вы разворачиваете современное приложение — Fedora 9 устарела; лучше выбрать поддерживаемую ОС и актуальные версии Python/Django.

Альтернативы:

  • mod_wsgi вместо mod_python (рекомендуется для современных развёртываний).
  • Контейнеризация (Docker) для изоляции и удобства миграции.
  • Использование PostgreSQL вместо MySQL для расширенных возможностей транзакций и репликации.

Роли и чек-лист для развертывания

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

  • Установить и запустить MySQL.
  • Настроить автозапуск mysqld.
  • Заблокировать доступ к базам снаружи и настроить firewall.

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

  • Создать проект Django вне document root.
  • Установить зависимости (Django, MySQL-python или альтернативы).
  • Настроить Apache и убедиться в корректной PythonPath и DJANGO_SETTINGS_MODULE.

Чек-лист перед сдачей в тестовую эксплуатацию:

  • Доступна стартовая страница Django по URL.
  • Подключение к БД работает, миграции применяются.
  • DEBUG выключен.
  • Логи собираются и ротация настроена.

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

  • Страница проекта доступна по заданному URL и возвращает HTML 200.
  • Django успешно подключается к MySQL и может создавать/читать записи.
  • Сервис Apache работает стабильно после перезапуска.
  • Отсутствуют очевидные утечки прав доступа к файлам проекта.

Короткий словарь (1 строка)

  • vhost — виртуальный хост Apache;
  • mod_python — модуль Apache для запуска Python-кода;
  • WSGI — интерфейс для запуска Python веб-приложений;
  • virtualenv — инструмент для создания изолированного окружения Python.

Полезные ссылки


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

  • Установите MySQL, Apache/mod_python и Django через yum.
  • Создайте проект вне document root и настройте Apache, добавив проект в PythonPath.
  • Настройте подключение к MySQL в settings.py и проверьте работу через браузер.

Заметка: для продакшена рассмотрите использование mod_wsgi или WSGI-серверов, а также обновление ОС и версий компонентов.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро