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

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

• 5 min read • Руководство • Обновлено 26 Nov 2025
Установка Django на Debian Etch (Apache2/mod_python)
Установка Django на Debian Etch (Apache2/mod_python)

Краткое практическое руководство по установке Django на Debian Etch с Apache2 и модулем mod_python. Показывает установку MySQL, Apache и Django, создание проекта, конфигурацию виртуального хоста и подключение к базе данных. Включены советы по безопасности и альтернативы для продакшена.

Введение

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

Это практическое руководство объясняет, как установить Django на сервере Debian Etch и запустить проект через Apache2 с mod_python. Руководство фокусируется на практических шагах: установка пакетов, базовая конфигурация и подключение MySQL. Теоретические основы фреймворка и расширённые темы описаны в официальной документации (см. ссылки в конце).

Важно: этот документ не даёт абсолютных гарантий и показывает один из возможных подходов. Подходите к настройке с учётом вашей инфраструктуры.

Внимание: Debian Etch — устаревший релиз. Для новых проектов рекомендуется современная версия Debian и использование mod_wsgi или Gunicorn + reverse proxy.

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

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

apt-get install mysql-server mysql-client

По умолчанию MySQL иногда слушает только localhost. Чтобы он принимал подключения на всех интерфейсах, откройте конфигурационный файл /etc/mysql/my.cnf и закомментируйте строку bind-address = 127.0.0.1, например через vi:

vi /etc/mysql/my.cnf

| [...] # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...] |

После изменения перезапустите MySQL:

/etc/init.d/mysql restart

Проверьте, что сетевые подключения включены:

netstat -tap | grep mysql

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

server1:~# netstat -tap | grep mysql  
tcp        0      0 *:mysql                 *:*                     LISTEN     3085/mysqld  
server1:~#

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

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

Примечание: используйте надёжные пароли и храните их в защищённом хранилище.

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

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

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

Замечание: mod_python устарел и не рекомендуется для новых проектов. Рекомендуемые альтернативы — mod_wsgi, Gunicorn или uWSGI.

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

Установите пакеты Django и Python-адаптер для MySQL (Debian-пакеты):

apt-get install python-django python-mysqldb

Альтернатива: установка через virtualenv и pip даёт больше контроля и современных версий пакетов.

4 Конфигурировать Apache

В примере используется /var/www как DocumentRoot и файл виртуального хоста /etc/apache2/sites-available/default. Перед настройкой Apache создайте Django-проект (например, mysite). Для безопасности проект размещаем вне DocumentRoot, например в /home/mycode.

Создаём проект:

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

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

Добавьте в конфигурацию виртуального хоста (файл /etc/apache2/sites-available/default) блок Location, например между тегами …:

vi /etc/apache2/sites-available/default

| [...] 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 — указывает модулю mod_python, где брать настройки Django.
  • PythonPath — добавляет путь с вашим проектом в sys.path.

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

/etc/init.d/apache2 restart

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

Пример страницы Django по умолчанию на Apache2

Эта страница подтверждает, что Django запущен и доступен через Apache/mod_python. Для дальнейшей разработки изучите официальную документацию: https://docs.djangoproject.com/en/1.10/ .

5 Подключение MySQL к проекту Django

Создайте базу данных и пользователя для вашего проекта (пример: база mysite, пользователь mysiteadmin). Зайдите в консоль MySQL под root:

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. [...] |

После настройки выполните миграции и создайте суперпользователя (в старых версиях Django команды могут отличаться):

python /home/mycode/mysite/manage.py syncdb
python /home/mycode/mysite/manage.py createsuperuser

6 Ссылки и ресурсы


Дополнительно: когда этот метод уместен и когда нет

Когда подходит:

  • У вас устаревший сервер или вы поддерживаете старую инфраструктуру на Debian Etch.
  • Нужно быстро поднять тестовый экземпляр на старом оборудовании.

Когда не подходит / альтернативы:

  • Для продакшена лучше использовать mod_wsgi, Gunicorn или uWSGI + reverse proxy (nginx).
  • Современные установки лучше делать через virtualenv/venv и pip, чтобы управлять версиями Django и зависимостями.

Частые проблемы и решения

  • Ошибка импорта django.core.handlers.modpython — проверьте, установлен ли пакет python-django и путь в PythonPath.
  • 500 Internal Server Error при обращении — выключите PythonDebug On в продакшен и посмотрите логи Apache (/var/log/apache2/error.log).
  • Невозможно подключиться к MySQL — проверьте, слушает ли mysqld нужный интерфейс, права пользователя и правильно ли указан хост в settings.py.

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

  • Отключите PythonDebug On в настройках Apache для продакшен-сайтов.
  • Не используйте системного пользователя root для приложения; создайте отдельного пользователя MySQL с минимальными привилегиями.
  • Ограничьте доступ к файлам проекта (чтение для веб-сервера, запрет на исполнение).
  • Рассмотрите использование TLS/SSL (ssl-cert пакет и настройка виртуального хоста).
  • Обновите Debian и пакеты — Etch устарел, поддержка и исправления безопасности отсутствуют.

Мини-методология развёртывания (шаблон шагов)

  1. Подготовить сервер: обновить пакеты, настроить бэкапы.
  2. Установить и настроить СУБД (MySQL или PostgreSQL).
  3. Создать пользователя и базу данных.
  4. Создать virtualenv (рекомендуется) и установить зависимости через pip или использовать пакеты Debian.
  5. Создать Django-проект и проверить в режиме разработки.
  6. Настроить веб-сервер (mod_wsgi/Gunicorn) и reverse proxy при необходимости.
  7. Настроить мониторинг, логирование и резервное копирование.

Роли и чек-листы

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

  • Обновление ОС и пакетов.
  • Настройка брандмауэра и прав доступа.
  • Настройка системных служб (MySQL, Apache).

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

  • Настройка virtualenv и зависимостей.
  • Конфигурация settings.py (секретные ключи, базы).
  • Запуск миграций и тестов.

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

  • Запрос к URL /mysite возвращает страницу Django без ошибок.
  • Приложение успешно подключается к MySQL и выполняет миграции.
  • В логах нет критических ошибок, и доступ ограничен (отсутствуют лишние права).
  • Настройки Debug отключены в продакшен-среде.

Факто-бокс

  • Поддержка: Debian Etch — устаревший релиз, используйте современные релизы для новых развёртываний.
  • Рекомендуемая альтернатива для продакшена: mod_wsgi или Gunicorn + nginx.
  • Документация Django: официальная документация всегда актуальнее устаревших туториалов.

Итог

Это практическое руководство показывает базовые шаги по установке Django на Debian Etch с Apache2 и mod_python: установка MySQL, Apache, Django, создание проекта, конфигурация виртуального хоста и подключение к MySQL. Для боевой эксплуатации следует рассмотреть более современные инструменты (mod_wsgi, virtualenv, контейнеры) и уделить внимание безопасности.

Важное: используйте этот документ как стартовую точку и адаптируйте под свою среду.

Поделиться: 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 быстро