Разработчик на Битрикс и Django. Django cms установка на хостинг
Запуск Django на хостинге — Техническая поддержка — NetAngels
Инструкции из этой статьи подойдут для Django устаревших версий (до 1.9).
Актуальные версии Django можно развернуть на облачном хостинге.
Django (Джанго) -- это свободный фреймворк, позволяющий быстро и качественно разрабатывать динамические веб-приложения на языке Python.
Django на хостинге доступен на тарифах виртуального хостинга Лайт, Стандарт и Профи.
В данной статье будет описываться один из способов запуска фреймворка Django на хостинге для тарифного плана "Профи". Выполнение настроек на сервере будет производиться через протокол SSH. Для установки соединения можно воспользоваться программой PUTTY и инструкциями из статьи SSH-доступ. Без каких-либо изменений приведенные инструкции будут работать для тарифов "Лайт" и "Стандарт".
Настройка virtualenv
Авторизовавшись на сервере, мы окажемся в своем домашнем каталоге. Внутри домашнего каталога располагаются каталоги ваших сайтов, а также служебные каталоги bin, etc, log и tmp.
Для облегчения работы с библиотеками и приложениями Python на хостинге мы воспользуемся дополнительным приложением virtualenv, который установлен на всех серверах хостинга. Инструмент virtualenv позволит нам создать собственное изолированное окружение Python:
virtualenv --system-site-packages ~/pythonПосле выполнения указанной выше команды будет создан каталог python. Его содержимое выглядит следующим образом:
bin include libВ директории python/bin находится исполняемый бинарный файл python и несколько дополнительных скриптов. В python/lib -- дерево каталогов, повторяющее такое же дерево каталогов у общесистемного python.
Для того чтобы код, написанный на языке python, работал в этом окружении, его нужно запускать, используя интерпретатор /home/uXXXX/python/bin/python, или воспользоваться следующими командами:
source ~/python/bin/activate echo "source ~/python/bin/activate" >> ~/.bashrcУстановка Django
Если вы уже активировали изолированное окружение, то установка может быть выполнена с помощью команды pip:
pip install DjangoПроверка корректности установки
Выйдите из каталога с Django (например, перейдите в домашний каталог) и проверьте, импортируется ли модуль django.
cd python >>> import django >>> django.VERSION (1, 4, 0, 'final', 0) >>> django.__path__ ['/home/uXXXX/python/lib/python2.6/site-packages/django']Если указанные команды выполняются без ошибок, значит установка Django на хостинге прошла успешно.
Развертывание проекта
Теперь мы можем создать пустой проект Django и приступить к его наполнению смыслом. Рекомендуем для каждого проекта создавать каталог внутри каталога с сайтом, к которому этот проект относится:
cd ~/sitename.ru && django-admin.py startproject myprojectВесьма вероятно, что проект на самом деле уже готов. В этом случае достаточно просто скопировать каталог с проектом в соответствующую папку.
Поскольку Django будет работать через интерфейс FastCGI, то для включения соответствующих настроек нам необходимо создать CGI-обработчик (враппер):
touch ~/sitename.ru/cgi-bin/django-wrapper.fcgi && chmod 755 ~/sitename.ru/cgi-bin/django-wrapper.fcgiСозданный файл нужно заполнить следующим текстом:
Для Django версий 1.9 и старше
#!/home/uXXXXX/python/bin/python # -*- coding: utf-8 -*- import os import sys # Add a custom Python path. sys.path.insert(0, "/home/uXXXXX/sitename.ru/myproject") # Switch to the directory of your project. (Optional.) #os.chdir("/home/uXXXXX/sitename.ru/myproject") # Set the DJANGO_SETTINGS_MODULE environment variable. os.environ['DJANGO_SETTINGS_MODULE'] = "myproject.settings" from django_fastcgi.servers.fastcgi import runfastcgi from django.core.servers.basehttp import get_internal_wsgi_application wsgi_application = get_internal_wsgi_application() runfastcgi(wsgi_application, method="prefork", daemonize="false", minspare=1, maxspare=1, maxchildren=1) Для Django версии 1.8 и более ранних версий
#!/home/uXXXXX/python/bin/python # -*- coding: utf-8 -*- import sys, os # Add a custom Python path. sys.path.insert(0, "/home/uXXXXX/sitename.ru/myproject") # Switch to the directory of your project. (Optional.) # os.chdir("/home/uXXXXX/sitename.ru/myproject") # Set the DJANGO_SETTINGS_MODULE environment variable. os.environ['DJANGO_SETTINGS_MODULE'] = "myproject.settings" from django.core.servers.fastcgi import runfastcgi runfastcgi(method="prefork", daemonize="false", minspare=1, maxspare=1, maxchildren=1)- uXXXXX -- имя вашего пользователя на сервере хостинга. В большинстве случаев, совпадает с логином
- myproject -- название созданного проекта
Обратите особое внимание на первую строку:
#!/home/uXXXXX/python/bin/pythonЭта строка заставляет работать Python в созданном виртуальном окружении.
Теперь необходимо сообщить веб-серверу Apache о том, что для обработки поступающих запросов должен использоваться созданный ранее враппер. Создадим файл .htaccess в каталоге sitename.ru/www и запишем в него следующее указание:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ cgi-bin/django-wrapper.fcgi/$1 [QSA,L]Обратившись к сайту sitename.ru через браузер, мы должны увидеть приветственное сообщение от Django. Это означает, что настройки выполнены правильно и можно приступать к работе с проектом.
Дополнительные замечания
- На серверах хостинга у Вас не получится установить python-модуль, который содержит в себе компоненты, написанные на Си и компилирующиеся в процессе установки.
- Чтобы перезапустить FastCGI-процесс после обновления кода, достаточно принудительно завершить все текущие FastCGI-процессы командой pkill -u uXXXX -f django-wrapper.fcgi
Настройка каталогов для хранения static и media
Начиная с Django 1.3, фреймворк упорядочил работу со staticfiles и mediafiles.
Теперь после обновления кода на сервере необходимо еще и выполнять команду ./manage.py collectstatic. Эта команда собирает всю статику из каталогов приложений, и копирует ее в единый каталог, указанный в settings.py.
Для корректного отображения статики и медиафайлов, а также для корректной работы management-команды нужно внести следующие настройки в settings.py.
MEDIA_ROOT = '/home/uXXXX/sitename.ru/www/media' MEDIA_URL = '/media/' STATIC_ROOT = '/home/uXXXX/sitename.ru/www/static' STATIC_URL = '/static/'www.netangels.ru
Как установить django на хостинг ?
Эта инструкция позволит вам установить Django Framework. Вам понадобится любой клиент, который поддерживает протокол SSH (например, putty).
1) Создаем директорию private в домашнем каталоге:
cd ~ && mkdir -p ~/private/lib/python2.7/site-packages2) Прописываем параметры окружения:
export PYTHONPATH="$HOME/private:$HOME/private/lib/python2.7/site-packages"3) Добавляем данную строку (export) в файл .bashrc который размещен в нашем домашнем каталоге:
echo "export PYTHONPATH=\"$HOME/private:$HOME/private/lib/python2.7/site-packages\"" >> $HOME/.bashrc4) Установка пакета django: Переходим в директорию private:
cd ~/private/Загружаем пакет с Django необходимой версии:
wget https://www.djangoproject.com/m/releases/1.8/Django-1.8.8.tar.gzИзвлекаем файлы из архива:
tar -xzf Django-1.8.8.tar.gzМеняем имя директории с файлами:
mv Django-1.8.8 djangoПереходим в директорию с django:
cd djangoЗапускаем процесс установки:
python2.7 setup.py install --prefix=$HOME/private5) Дополнительная настройка окружения для удобства:
ln -s /usr/bin/python2.7 $HOME/private/bin/pythonустановка PATH к дополнительной директории bin
export PATH="$HOME/private/bin:$PATH"После чего добавляем export PATH в файл .bashrc:
echo "export PATH=\"$HOME/private/bin:$PATH\"" >> $HOME/.bashrc6) Установка пакета Flup, необходимого для функционирования fcgi. Процедура установки аналогична Django:
cd ~/private && wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz tar xzvf flup-1.0.2.tar.gz && mv flup-1.0.2 flup && cd flup python2.7 setup.py install --prefix=$HOME/private7) Далее необходимо создать fcgi-скрипт и поместить его в директорию /home/httpd/vhosts/site.com/cgi-bin/ (где site.com - адрес вашего сайта) : Для примера название файла будет site.fcgi с содержанием:
#!/usr/bin/python2.7 import sys, os sys.path.append('/home/httpd/vhosts/site.com/private') sys.path.append('/home/httpd/vhosts/site.com/private/lib/python2.7/site-packages') sys.path.append("/home/httpd/vhosts/site.com/private/django") sys.path.append("/home/httpd/vhosts/site.com/private/flup") sys.path.append("/home/httpd/vhosts/site.com/httpdocs/djmc") # more path stuff os.environ['DJANGO_SETTINGS_MODULE'] = "djmc.settings" from django.core.servers.fastcgi import runfastcgi runfastcgi(method="threaded", daemonize="false")Где djmc название созданого Django проекта и site.com имя вашего домена.
Установим права на файл site.fcgi:
chmod 755 site.fcgiСоздаем файл .htaccess в корне сайта с содержимым:
AddHandler fcgid-script .fcgi Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^(media/.*)$ - [L] RewriteRule ^(adminmedia/.*)$ - [L] RewriteCond %{REQUEST_URI} !(cgi-bin/site.fcgi) RewriteRule ^(.*)$ cgi-bin/site.fcgi/$1 [L]7) Создание проекта Django: Переходим в директорию с сайтом:
cd $HOME/httpdocs/Создание проекта, где djeuro название проекта:
django-admin startproject djmc django-admin syncdbУстановка Django успешно завершена, на сайте site.com должна отобразиться страница приветствия Django.
Данная инструкция подходит для всех версий Django кроме 1.9, по причине отсутствия поддержки fastcgi в данной версии.
mchost.ru
Как установить django на хостинг ?
Эта инструкция позволит вам установить Django Framework. Вам понадобится любой клиент, который поддерживает протокол SSH (например, putty).
1) Создаем директорию private в домашнем каталоге:
cd ~ && mkdir private2) Прописываем параметры окружения:
export PYTHONPATH="$HOME/private:$HOME/private/lib/python2.7/site-packages"3) Добавляем данную строку (export) в файл .bashrc который размещен в нашем домашнем каталоге:
echo "export PYTHONPATH=\"$HOME/private:$HOME/private/lib/python2.7/site-packages\"" >> $HOME/.bashrc4) Скопируем компоненты python2.7 в папку вновь созданную private:
mkdir -p ~/private/lib64/python2.7/ && cp -r /opt/rh/python27/root/usr/lib/python2.7/site-packages ~/private/lib64/python2.7/В каталоге /opt/rh/python27 лежит необходимое окружение, которое необходимо экспортировать:
export PATH=/opt/rh/python27/root/usr/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/opt/rh/python27/root/usr/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export MANPATH=/opt/rh/python27/root/usr/share/man:${MANPATH} # For systemtap export XDG_DATA_DIRS=/opt/rh/python27/root/usr/share${XDG_DATA_DIRS:+:${XDG_DATA_DIRS}} # For pkg-config export PKG_CONFIG_PATH=/opt/rh/python27/root/usr/lib64/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}5) Установка пакета django: Переходим в директорию private:
cd ~/private/Загружаем пакет с Django необходимой версии:
wget https://www.djangoproject.com/m/releases/1.8/Django-1.8.8.tar.gzИзвлекаем файлы из архива:
tar -xzf Django-1.8.8.tar.gzМеняем имя директории с файлами:
mv Django-1.8.8 djangoПереходим в директорию с django:
cd djangoЗапускаем процесс установки:
python2.7 setup.py install --prefix=$HOME/private6) Дополнительная настройка окружения для удобства:
ln -s /usr/bin/python2.7 $HOME/private/bin/pythonустановка PATH к дополнительной директории bin
export PATH="$HOME/private/bin:$PATH"После чего добавляем export PATH в файл .bashrc:
echo "export PATH=\"$HOME/private/bin:$PATH\"" >> $HOME/.bashrc7) Установка пакета Flup, необходимого для функционирования fcgi. Процедура установки аналогична Django:
cd ~/private && wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz tar xzvf flup-1.0.2.tar.gz && mv flup-1.0.2 flup && cd flup python2.7 setup.py install --prefix=$HOME/private8) Далее необходимо создать fcgi-скрипт и поместить его в директорию www/site.com/cgi-bin/ (где site.com - адрес вашего сайта) : Для примера название файла будет site.fcgi с содержанием:
#!/usr/bin/python2.7 import sys, os sys.path.append('/var/www/vhXXXXX/data/private') sys.path.append('/var/www/vhXXXXX/data/private/lib/python2.7/site-packages') sys.path.append("/var/www/vhXXXXX/data/private/django") sys.path.append("/var/www/vhXXXXX/data/private/flup") sys.path.append("/var/www/vhXXXXX/data/www/site.com/djeuro") # more path stuff os.environ['DJANGO_SETTINGS_MODULE'] = "djeuro.settings" from django.core.servers.fastcgi import runfastcgi runfastcgi(method="threaded", daemonize="false")где vhXXXXX — название вашей услуги виртуального хостинга
Установим права на файл site.fcgi:
chmod 755 site.fcgiСоздаем файл .htaccess в корне сайта с содержимым:
AddHandler fcgid-script .fcgi Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^(media/.*)$ - [L] RewriteRule ^(adminmedia/.*)$ - [L] RewriteCond %{REQUEST_URI} !(cgi-bin/site.fcgi) RewriteRule ^(.*)$ cgi-bin/site.fcgi/$1 [L]9) Создание проекта Django: Переходим в директорию с сайтом:
cd $HOME/www/site.com/Создание проекта, где djeuro название проекта:
django-admin startproject djeuro django-admin syncdbУстановка Django успешно завершена, на сайте site.com должна отобразиться страница приветствия Django.
eurobyte.ru
Как начать проект на Django? — Вопросы и ответы — Джино • Хостинг
Прежде всего убедитесь, что у вас подключена услуга «Поддержка Python + Django». На время разработки вам также часто будет нужен доступ по SSH, поэтому перед созданием нового Django-проекта подключите и услугу «Поддержка SSH». Если в качестве базы данных вы будете использовать MySQL, соответствующая услуга также должна быть подключена.
Подключитесь к серверу по SSH и создайте и активируйте виртуальное окружение Python (если вы создаете не первый проект и в качестве виртуального окружения хотите использовать уже существующее, пропустите этот и следующие два шага). Введите команды:
virtualenv-2.7 virtualenv/MyEnv . virtualenv/MyEnv/bin/activateВ результате будет создана папка virtualenv/MyEnv. Вместо MyEnv вы можете выбрать и любое другое имя виртуального окружения.
В рамках виртуального окружения установите свежую версию Django:
pip install --upgrade djangoМожно установить и любую другую версию. Например, 1.4:
pip install --upgrade django==1.4Таким же образом можно установить и любые другие модули Python.
Создайте папку, где будут располагаться ваши проекты. Эта папка должна находиться вне DOCUMENT_ROOT, то есть вне папок вида domains/имя_домена. Лучшим вариантом будет создать папку django рядом с директорией domains:
mkdir djangoПерейдите в папку с проектами и создайте новый проект:
cd django django-admin.py startproject имя_проектаВ результате будет создана папка имя_проекта со стандартным шаблоном Django-проекта.
Откройте файл settings.py и измените в нем значения необходимых переменных. В качестве значения переменной STATIC_ROOT укажите os.path.join(os.path.expanduser('~'), 'domains/имя_домена/static/'), добавив в самое начало файла строку import os.
Внимание! Если вы будете использовать команду syncdb через SSH, то при использовании MySQL в качестве движка баз данных в поле HOST словаря DATABASES['default'] обязательно нужно указать IP 127.0.0.1. Подробнее об этом здесь.
Более подробную информацию о переменных, доступных для редактирования в settings.py, можно найти в документации Django.
В директории домена, на котором будет находиться ваш проект (domains/имя_домена) создайте файл django.wsgi и поместите в него такие строки:
import os, sys virtual_env = os.path.expanduser('~/virtualenv/MyEnv') activate_this = os.path.join(virtual_env, 'bin/activate_this.py') execfile(activate_this, dict(__file__=activate_this)) sys.path.insert(0, os.path.join(os.path.expanduser('~'), 'django/имя_проекта')) os.environ['DJANGO_SETTINGS_MODULE'] = 'имя_проекта.settings' from django.core.wsgi import get_wsgi_application application = get_wsgi_application()Примечание. Обратите также внимание на пятую и шестую строки этого кода: если вы в своих проектах обычно не используете имя проекта внутри оператора import (например, «from имя_приложения.models import *», а не «from имя_проекта.имя_приложения.models import *» в файле views.py), то указывать имя проекта в пятой строке нужно два раза, а в шестой, наоборот, не нужно:
sys.path.insert(0, os.path.join(os.path.expanduser('~'), 'django/имя_проекта/имя_проекта')) os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'Вернитесь к этому примечанию, если будете получать ошибки вида «ImportError: No module named...»
Затем создайте в той же папке еще один файл — .htaccess — и поместите в него следующие директивы:
AddHandler wsgi-script .wsgi RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /django.wsgi/$1 [QSA,PT,L]На этом установка проекта завершена. Теперь вы можете создавать приложения и приступать к разработке.
Если же в результате выполнения этих действий получаете в браузере ошибку 500, загляните в раздел «Хостинг / Статистика / Лог-файлы».
hosting.jino.ru
Установка Django на VDS хостинг — Разработчик на Битрикс и Django
Если честно как то не хорошо получается. Я уже несколько лет работаю с VDS и непосредственно на хостинг компании ispserver.com и firstvds.ru, думаю ни кому не секрет, что это одна и та же компания, дак вот и не написал не разу о том как я разворачиваю свои приложения. Вот на это нотке и стартую описание действий по боевому разворачиванию django приложения.
1. Для начала нам понадобиться Subversion для установки django.
cd /usr/ports/devel/subversion make install clean2. Теперь тащим и ставим django
cd /usr/local/lib/python2.6/site-packages svn co http://code.djangoproject.com/svn/django/trunk/ djangoи ставим симлинк на django-admin.py туда где система сможет найти его
cd /usr/local/bin ln -s /usr/local/lib/python2.5/site-packages/django/django/bin/django-admin.py django-admin.py3. Устанавливаем mysql-python драйвер для работы с базой данный MySQL
cd /usr/ports/databases/py-MySQLdb< make install cleanотмечаем оцию
[X] MYSQLCLIENT_R Use libmysqlclient_r (thread safe)4. Ставим mod_python (на данный момент не рекомендуется разворачивать приложение на данной связке, так как оно не поддерживается и не ведется на настоящее время)
cd /usr/ports/www/mod_python3 make install5. Теперь нам необходим каталог где мы будет разворачивать свои приложения
cd /home/darkfraud/data/ mkdir django-apps cd django-appsи тут делаем симлинк на Джангу
ln -s /usr/local/lib/python2.6/site-packages/django/django djangoтеперь проверим работоспособность
python >>> import django6. Теперь нам нужно настроить конфиг апача httpd.conf
у меня он лежит тут /usr/local/etc/apache22/httpd.conf
Открываем его на редактирование и ищем в нем бокс своего проекта
<VirtualHost darkfraud.com:80>в него нам нужно вписать такое
<Location "/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE darkfraud.settings PythonOption django.root /darkfraud PythonAutoReload On PythonDebug On PythonPath "['/home/darkfraud/data/django-apps', '/usr/local/lib/python2.6/site-packages/django'] + sys.path" </Location>и еще чтоб не напрягать джангу статикой
<Location "/static"> SetHandler None </Location> <Location "/media">> SetHandler None </Location> Главное не забудьте сделать симлинки в веб доступной директории симлинки на static - статика сайта и media - статика админки. Вот и все, теперь заливаем свое приложение и пере загружаемся. Сервер с приложением работает=)developtolive.com
Здесь описано как дистанционно установить Django на хостинге, позволяющем это сделать.Я размещаю свои сайты на Django, в том числе этот, здесь. Это — виртуальный выделенный сервер (VDS) по абсолютно виртуальной цене от ~250 руб в месяц. На нем можно разместить любой сайт, требующий нестандартного программного обеспечения, в том числе Django сайт. Что такое VDS? VDS — это практически полноценный выделенный сервер, на котором вы — полный хозяин: вы можете установить или удалить любое программное обеспечение, вы можете конфигурировать все, что угодно, под свои нужды, вы можете перезагружать сервер или отключить его совсем и установить другой. Root доступ, отличная панель управления, возможность не только разместить множество собственных сайтов, но и перепродавать услуги хостинга, техническая поддержка. При этом ваш сервер не является отдельной физической машиной, но реализован программно, разделяя один физический компьютер с рядом других таких же виртуальных выделенных серверов. Преимущества VDS: вместо тысяч рублей (аренда выделенного сервера) вы платите во много раз меньше и имеете полную свободу действий в ваших web-экспериментах. Ограничения данной схемы: вы имеете в распоряжении не все ресурсы, имеющиеся в наличии, а только столько, сколько предусмотрено вашим тарифным планом. Если ваш проект потребует больше ресурсов, нужно подключить другой тарифный план. Делается это из панели управления. Далее описан процесс уcтановки Django по SSH на вышеуказанном хостинге. Надеюсь, эта шпаргалка поможет вам устроиться на новом месте быстрее.Наша цель — запустить джанго-проект на CentOS + Apache + MySQL + Django WSGI (Web Server Gateway Interface) на данный момент является стандартом для запуска Django. Для работы необходим ssh клиент. Я использую putty.Также установите sftp клиент (ftp через ssh). Я использую WinSCP. Обычный FTP не позволяет входить с правами root. Для работы будет полезен pip - менеджер пакетов Python.Проверьте его наличие в системе командой pip Если pip не найден, установить его можно, выполнив следующие команды: curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" python get-pip.py Установка последней стабильной версии Django: pip install Django При необходимости можно указать, какую именно версию устанавливать: pip install django==1.8.2 В веб-сервере Apache WSGI реализован через модуль mod_wsgi Проверим, установлен ли mod_wsgi rpm -q mod_wsgi Если мы получим сообщение "package mod_wsgi is not installed", то модуль mod_wsgi требуется установить: pip install mod_wsgi Если не получается (ошибка), то есть два пути: 1) Быть сильнее обстоятельств - погуглить, почему ошибка и как с ней бороться 2) Быть выше их - использовать другой менеджер пакетов. В CentOS есть yum (Yellowdog Updater), воспользуемся им: yum install mod_wsgi Для работы MySQL с Python потребуется драйвер MySQLdb, установим его: yum install MySQL-python Если при установке выводится сообщение об ошибке или если при попытке доступа к сайту получите сообщение "Error loading MySQLdb module: No module named MySQLdb", значит, MySQL-python не установлен/установлен не полностью. Поробуем так: pip install MySQL-python Теперь работает? Прекрасно! Не работает? Странные жалобы на то, что "EnvironmentError: mysql_config not found"? Я решил эту проблему так: yum install mariadb-devel MariaDB - это свободая (GNU General Public License) версия MySQL. Наверное, есть более правильное решение проблемы, но я нашёл это и результат меня устроил. У вас в системе имеется главный конфигурационный файл Apache, путь к нему /etc/httpd/conf И пользовательские конфигурации ваших виртуальных хостов, путь к ним /etc/httpd/conf/vhosts/www-root Т.е. там есть файл с названием, например, mydomain.ru, который нужно будет отредактировать в соответствии с особенностями Django. Пример конфигурационного файла дан ниже. #user 'www-root' virtual host 'mydomain.ru' configuration file <VirtualHost xx.xxx.xx.xx:80> ServerName mydomain.ru ServerAlias www.mydomain.ru AssignUserID www-root www-root ServerAdmin [email protected] WSGIDaemonProcess mydomain.ru python-path=/var/www/www-root/data/django-projects/myproject:/usr/lib/python2.7/site-packages Alias /robots.txt /var/www/www-root/data/django-projects/myproject/static/robots.txt Alias /favicon.ico /var/www/www-root/data/django-projects/myproject/static/favicon.ico Alias /static/ /var/www/www-root/data/django-projects/myproject/static/ <Directory /var/www/www-root/data/django-projects/myproject/static> Require all granted </Directory> WSGIScriptAlias / /var/www/www-root/data/django-projects/myproject/myproject/myproject.wsgi CustomLog /var/www/httpd-logs/mydomain.ru.access.log combined ErrorLog /var/www/httpd-logs/mydomain.ru.error.log LogLevel debug <Directory /var/www/www-root/data/django-projects/myproject/myproject> Require all granted </Directory> </VirtualHost> Перезапускаем сервер (это можно сделать из панели управления или командой аpachectl restart в коммандной строке). Если после перезагрузки в списке сервисов (см. в панели управления) нет ни одного процесса httpd — проверяем, что мы написали в конфигурационном файле и исправляем ошибки. Если httpd (один или несколько) есть в списке процессов — сервер работает нормально.Не забывайте, что после любых изменений в конфигурационном файле и файлах django (кроме шаблонов) сервер необходимо перезагрузить. Осталось набрать в браузере URL вашего сайта и посмотреть, что из всего этого получилось... Если с первого раза не все идет гладко — не расстаивайтесь, внимательно пройдитесь по всем моментам процесса настройки и разберитесь, что вы пропустили. Зайдите по FTP и посмотрите, действительно ли все созданные вами папки находятся там, где им предполагается быть.Я же благодарю всех, кто воспользовался вышеприведенными ссылками и желаю им удач во всех web-начинаниях! Наша цель — запустить джанго-проект на freeBSD + Apache + modpython + MySQL + Django SVN (текущая версия из транка).Этот способ устарел и не применяется в современных системах. Установка SubversionSubversion — программа контроля версий. С её помощью мы далее установим Django и его модули и всегда сможем одной командой обновить их до последних версий.Ставим из портов.Порты freeBSD — это стандартный набор ПО, тестированного на данной ОС.Установка из портов - самый быстрый и надежный способ. cd /usr/ports/devel/subversion make install clean Отмечаем только эти 2 опции:[X] MOD_DAV_SVN mod_dav_svn module for Apache 2.X[X] NEON WebDAV/Delta-V repository access moduleНа втором появившемся экране настроек жмем "cancel". Установка Djangocd /usr/local/lib/python2.5/site-packages svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk Создаем символическую ссылку, указывающую, что /django на самом деле нужно искать в /django-trunk/django ln -s django-trunk/django /usr/local/lib/python2.5/site-packages/django Далее "подкладываем" ссылку на django-admin.py туда, где система может ее найти. cd /usr/local/bin ln -s /usr/local/lib/python2.5/site-packages/django-trunk/django/bin/django-admin.py django-admin.py Если вы ошиблись при создании ссылки и хотите, чтобы новая ссылка перезаписала уже существующую, используйте ключ f:ln -fs ...Установка mysql-pythonmysql-python — драйвер, реализующий доступ к MySQL из python.Ставим из портов. cd /usr/ports/databases/py-MySQLdb make install clean Отмечаем единственную опцию[X] MYSQLCLIENT_R Use libmysqlclient_r (thread safe)Установка mod_pythonmod_python — модуль python для ApacheСтавим из портов. cd /usr/ports/www/mod_python3 make install cleanСоздание папки для наших django проектовДжанго-код рекомендуется хранить в местах, недоступных по http. В остальном место, куда вы его положите, принципиального значения не имеет. Предположим, ваш пользовательский эккаунт называется myname (существует пользователь myname). cd /home/myname/data/ mkdir django-apps Создаем symlink, чтобы иметь отсюда доступ к django: cd django-apps ln -s /usr/local/lib/python2.5/site-packages/django-trunk/django django проверяем, доступен ли здесь django: python import django если сообщений об ошибке не появилось, выходим из коммандной оболочки python коммандой quit()Если django недоступен, проверяем, имеется ли в папке django-apps ссылка django и действительно ли она ведет туда, куда мы ожидаем. Например, щелкните по ссылке в ftp — если появится ссобщение об ошибке ("файл не найден"), это значит, что ссылка неверна. В WinSCP можно получить окно редактирования символической ссылки, выделив ее и нажав Alt+F6. В папке django-apps создаем папку проекта (например, myproject1) и переносим туда по FTP все имеющиеся у нас файлы и папки из папки нашего django-проекта. mkdir myproject1 В эту папку мы переносим наши папки приложений, файлы urls.py, settings.py и т.д.Чистый проект можно содать командой python django-admin.py startproject myproject2 Возможная ошибка: No module named django.coreРешение: возвращаемя к пункту "Если django недоступен" python manage.py syncdbУстановка модулей Djangocd /home/myname/data/django-apps/myproject1/ svn co http://откуда ставить модуль и т.д.Установка memcachedmemcached реализует кэширование страниц. Установка этого ПО опциональна и не влияет на работоспособность всего остального.Ставим из портов. cd /usr/ports/databases/memcached make install clean Опцию REPCACHED не отмечаемУстановка python библиотеки для memcachedcd /usr/ports/databases/py-memcached make install clean Подробнее о конфигурировании и использовании Django + memcached см. на сайте Django.Настройка settings.pyДля добавления пути к проекту в system path включите в начале settings.py import sys sys.path.append('/home/myname/data/django-apps/myproject1') Не забудьте, что данные доступа к БД на продакшн сервере скорее всего не такие, как на тестовом сервере.После отладки проекта нужно будет отключить вывод подробных сообщений об ошибках: DEBUG = False Настройте пути к медиа файлам (своим и админки Джанго): MEDIA_ROOT = '/home/myname/data/www/mydomain.ru/files/' MEDIA_URL = 'http://mydomain.ru/files/' ADMIN_MEDIA_PREFIX = '/media/' Предполагается, что пути к медийным файлам (которые обрабатываются сервером, а не django), указаны в вашем коде как "/files/myimage.jpg", "/files/js/myscript.js" и т.п.Теперь по URLhttp://mydomain.ru/files/myimage.jpg или http://mydomain.ru/files/js/myscript.js сервер будет выдавать соответственно файлы/home/myname/data/www/mydomain.ru/files/myimage.jpg,/home/myname/data/www/mydomain.ru/files/js/myscript.js Теперь нужно создать папку files /home/myname/data/www/mydomain.ru/files и положить туда по FTP свои файлы и папки. Чтобы админка django нашла свои медийные файлы, нужно будет создать ссылку, связывающую путь /media в URL файлов с их реальным расположением в папке django: cd /home/myname/data/www/mydomain.ru ln -s /usr/local/lib/python2.5/site-packages/django-trunk/django/contrib/admin/media mediaНастройка httpd.confhttpd.conf — конфигурационный файл Apache, путь к нему:/usr/local/etc/apache22/httpd.confРекомендую перед внесением изменений в httpd.conf сохранить его копию в тихом теплом месте. Если вы в нем допустите ошибку, Apache не будет работать и вам пригодится начальная копия для восстановления порядка. Кстати, ISPmanager (панель управления) позволяет редактировать любые файлы, в том числе этот. Итак, вносим в httpd.conf команду загрузки мод-питона: LoadModule python_module libexec/apache22/mod_python.so Далее дополняем определение вашего виртуального хоста так, чтобы получилось похоже на это: <VirtualHost 11.222.3.44:80> ServerName mydomain.ru DocumentRoot /home/myname/data/www/mydomain.ru SuexecUserGroup myname myname CustomLog /home/httpd-logs/mydomain.ru.access.log combined ErrorLog /home/httpd-logs/mydomain.ru.com.error.log ServerAlias www.mydomain.ru ServerAdmin [email protected] AddDefaultCharset utf8 ...... #Этот блок определяет, что все url (/) обрабатываются mod-python, #устанавливает корневую папку нашего джанго-проекта, #включает вывод сообщений об ошибках mod-python и его рестарт при рестарте сервера, #добавляет пути к папке наших проектов и к Django в PythonPath <Location "/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE myproject1.settings PythonOption django.root /myproject1 PythonAutoReload On PythonDebug On PythonPath "['/home/myname/data/django-apps', '/usr/local/lib/python2.5/site-packages/django'] + sys.path" </Location> #Этот блок определяет, что все пути, начинающиеся на /files, обрабатываются сервером. #В папке mydomain.ru/files/... хранятся все наши медиа файлы - картинки, css, js, pdf... <Location "/files"> SetHandler None </Location> #Этот блок определяет, что все пути, начинающиеся на /media, обрабатываются сервером. #В папке mydomain.ru/media/... как бы хранятся медиа файлы джанго-админ интерфейса. #На самом деле нет никакой надобности куда-то переносить сами файлы, достаточно #создать в mydomain.ru/ ссылку media, указывающую на действительное расположение файлов. <Location "/media"> SetHandler None </Location> #этот блок определяет, что все пути, кончающиеся .jpg .gif и т.д., обрабатываются сервером. <LocationMatch "\.(jpg|gif|pdf|zip|css|js|ico)$"> SetHandler None </LocationMatch> </VirtualHost> |
nowhereland.ru
Django cms установка на хостинг
Где найти место для проживания своего сайта? Конечно, в интернете. Такую возможность предоставляет хостинг, это своеобразная «аренда квартиры» для расположения сайта. Вам выделяется специальное место, позволяющее разместить подробную информацию о своих товарах и услугах, вы сможете привлечь внимание потенциальных потребителей, ваши предложения будут доступны круглосуточно django cms установка на хостинг.
Дорого ли стоит хостинг сайтов? Опытные люди знают, что экономить на размещении сайта нельзя. Имеет смысл обратиться к профессионалам, которые посоветуют место для расположения сайта. Платный hosting обеспечивает бесперебойный доступ к вашей информации, следовательно, он постоянно работает для вашего блага. Вы сможете развить свой бизнес, получить хорошую прибыль.
Позвольте себе профессиональный хостинг сайта. Он окупится очень быстро, потому что будет работать круглосуточно, постоянно информировать посетителей о предложениях и услугах вашего предприятия. Разработку сайта стоит доверять специалистам, обладающим достаточным опытом и знаниями, таким образом вы сможете продвинуть свой бизнес, получить прибыль.
Именно django cms установка на хостинг
Для того, чтобы развиваться и расширяться, потребуется грамотный хостинг сайта. Он обеспечивает постоянный доступ к вашему ресурсу, круглосуточно оповещает посетителей об услугах вашей компании. Следовательно, vps сервера недорого ваш сайт работает в режиме круглосуточного доступа для посетителей. О вас узнают клиенты разного возраста, проживающие в любом городе.
Хостинг предоставляет бесконечные возможности для развития вашего бизнеса, он обеспечивает постоянный доступ к вашему сайту, отсутствуют территориальные ограничения. При грамотном размещении сайта у вас появляется шанс увеличить доходность своего предприятия. Не стоит экономить на профессиональном размещении, это затраты способны быстро окупиться.
Профессиональный хостинг позволяет находиться в постоянном поле зрения клиентов. Они смогут посетить ваш ресурс днем и ночью, в любой день для потенциальных покупателей доступна информация, ваш бизнес не ограничится рамками своего города. Ваши контакты будут доступны жителям любых стран, преимущества сетей с выделенным сервером вы сможете оперативно донести информацию о своей деятельности до потребителей.
caumoxocm.tw1.su