Версия 12:04, 30 мая 2010 (править) NovaCxarmulo (Обсуждение | вклад) ← К предыдущему изменению |
Текущая версия (18:12, 22 июля 2016) (править) (отменить) Renton (Обсуждение | вклад) |
Строка 1: |
Строка 1: |
- | == Общие сведения == | + | #REDIRECT [[Django - быстрый старт (устарело)]] |
- | Эта статья поможет понять, как можно быстро и просто установить фреймворк [http://en.wikipedia.org/wiki/Django_(web_framework) Django] в режиме FastCGI на хостинге [http://www.1gb.ru 1Gb.ru], а также как устанавливать собственные модули [http://en.wikipedia.org/wiki/Python_(programming_language) Python] | + | |
- | | + | |
- | == Установка == | + | |
- | === Подготовка окружения === | + | |
- | '''Внимание!''' Убедитесь, что ваш сайт работает под управлением web-сервера UNIX/Apache/FastCGI, это можно сделать, а также при необходимости сменить тип сервера, в разделе личного кабинета /Управление сайтами и серверами/. | + | |
- | | + | |
- | Везде, где написано python2.6 нужно подставлять версию python, работающую на вашем сервере (первые два числа) | + | |
- | | + | |
- | python --version | + | |
- | | + | |
- | * Создаем в корне домашнего каталога файл <code>.pydistutils.cfg</code> для настройки путей инсталляции модулей: | + | |
- | [install] | + | |
- | prefix = $HOME/python | + | |
- | | + | |
- | [easy_install] | + | |
- | install_dir = $HOME/python/lib64/python2.6/site-packages | + | |
- | * Для настройки переменных <code>PATH</code>, <code>PYTHONPATH</code> добавьте строки: | + | |
- | export PATH=$PATH:$HOME/python/bin:$HOME/python/lib64/python2.6/site-packages | + | |
- | export PYTHONPATH=$PYTHONPATH:$HOME/python/lib64/python2.6/site-packages | + | |
- | в ваш <code>~/.bashrc</code> | + | |
- | | + | |
- | * Выполняем команду: | + | |
- | source ~/.bashrc | + | |
- | для того, чтобы сделанные изменения вступили в силу. | + | |
- | | + | |
- | * Создаем различные каталоги: | + | |
- | mkdir -p ~/src ~/python/lib64/python2.6/site-packages ~/django | + | |
- | * Симлинк: | + | |
- | cd ~/python; ln -s lib64 lib; cd | + | |
- | | + | |
- | === Установка библиотек === | + | |
- | * Скачиваем и устанавливаем Django: | + | |
- | cd ~/src | + | |
- | wget http://www.djangoproject.com/download/1.0.2/tarball/ | + | |
- | tar xvfz Django-1.0.2-final.tar.gz | + | |
- | cd Django-1.0.2-final | + | |
- | python setup.py install | + | |
- | * Устанавливаем модуль flup, для работы Django в FastCGI режиме: | + | |
- | easy_install flup | + | |
- | | + | |
- | === Настройка приложения, запуск === | + | |
- | * Создаем проект | + | |
- | cd ~/django; django-admin.py startproject demo | + | |
- | * Переходим в каталог с проектом и делаем базовую настройку: | + | |
- | cd demo | + | |
- | в файле <code>settings.py</code> редактируем строки: | + | |
- | DATABASE_ENGINE = 'mysql' | + | |
- | DATABASE_NAME = '' # имя базы | + | |
- | DATABASE_USER = '' # пользователь | + | |
- | DATABASE_PASSWORD = '' # пароль | + | |
- | DATABASE_HOST = '' # адрес сервера БД | + | |
- | | + | |
- | TIME_ZONE = 'Europe/Moscow' | + | |
- | LANGUAGE_CODE = 'ru-RU' | + | |
- | импорт данных в базу: | + | |
- | python manage.py syncdb | + | |
- | | + | |
- | * Переходим в каталог ~/http и делаем настройку FastCGI wrapper'а и правил редирета mod_rewrite. | + | |
- | Содержимое файла .htaccess: | + | |
- | Options +FollowSymlinks | + | |
- | | + | |
- | AddHandler fcgid-script .fcgi | + | |
- | | + | |
- | RewriteEngine On | + | |
- | RewriteCond %{REQUEST_FILENAME} !-f | + | |
- | RewriteRule ^(.*)$ index.fcgi/$1 [QSA,L] | + | |
- | | + | |
- | Файл index.fcgi: | + | |
- | #!/usr/bin/python -OO | + | |
- | | + | |
- | import sys, os, site | + | |
- | | + | |
- | # Add a custom Python path. | + | |
- | PYTHON_CUSTOM_PATH = os.path.abspath (os.path.join (os.path.dirname (os.path.abspath (__file__)), \ | + | |
- | '../python/lib64/python2.5/site-packages')) | + | |
- | sys.path.insert (0, PYTHON_CUSTOM_PATH) | + | |
- | site.addsitedir (PYTHON_CUSTOM_PATH) | + | |
- | | + | |
- | # Add a custom Python path. | + | |
- | PYTHON_CUSTOM_PATH = os.path.abspath (os.path.join (os.path.dirname (os.path.abspath (__file__)), \ | + | |
- | '../django')) | + | |
- | sys.path.insert (0, PYTHON_CUSTOM_PATH) | + | |
- | | + | |
- | # Add a custom Python path. | + | |
- | os.chdir(os.path.join (PYTHON_CUSTOM_PATH, 'demo')) | + | |
- | | + | |
- | os.environ['DJANGO_PROJECT'] = 'demo' | + | |
- | os.environ['DJANGO_SETTINGS_MODULE'] = 'demo.settings' | + | |
- | | + | |
- | from django.core.servers.fastcgi import runfastcgi | + | |
- | runfastcgi(method="prefork", maxchildren=3, daemonize="false") | + | |
- | | + | |
- | '''Не забудьте поменять <code>demo</code> на название своего проекта!''' | + | |
- | | + | |
- | * Создаем симлинк для CSS, JavaScript: | + | |
- | cd ~/http; ln -s ../python/lib64/python2.5/site-packages/django/contrib/admin/media | + | |
- | | + | |
- | Все. Можно попробовать обратиться по HTTP к вашему сайту, вы должны увидеть примерно это: http://django-demo.1gb.ru/ | + | |
- | === Перезагрузка === | + | |
- | Если вы сделали какие-то изменения в проекте, то для того чтобы они вступили в силу необходимо перезапустить FastCGI приложение. Делается это так: | + | |
- | killall index.fcgi | + | |
- | | + | |
- | == См. также == | + | |
- | * [[Юникс шелл]] | + | |
- | == Ссылки == | + | |
- | * [http://www.djangoproject.com/ Официальный сайт Django] | + | |
- | * [http://djbook.ru/ Русский перевод DjangoBook] | + | |
- | * [http://ru.wikipedia.org/wiki/Python Python на wikipedia.org] | + | |
- | * [http://www.python.org/ Официальный сайт языка Python] | + | |
- | * [http://peak.telecommunity.com/DevCenter/EasyInstall Документация по EasyInstall] | + | |
- | | + | |
- | [[Категория:Программирование]] | + | |
- | [[Категория:Python]] | + | |