Python + Django + Apache + Ubuntu

Configurar o framework Django para funcionar com o Apache é um pouco complicado. Aqui está um guia prático rápido.

Vamos começar …

Instalando Python

Por padrão, o python 2.7 está presente no Ubuntu 11.04, caso contrário

sudo apt-get install python2.7 

Instalando Django

Você precisa do instalador do pip para fácil instalação

sudo apt-get install python-pip 

em seguida, instale o framework Django para python

sudo pip install Django

Criação de um projeto Django

É muito fácil criar um novo projeto em Django
. Estou criando-o dentro de / var / www /
(certifique-se de que django-admin.py está em seu PATH)

cd /var/www/
django
-admin.py startproject <my-project-name>

O comando acima deve criar um diretório pelo nome do projeto contendo os seguintes arquivos.

<my-project-name>/
|

|--- manage.py

|---
<my-project-name>/
|

|---- __init__.py

|---- settings.py

|---- urls.py

|---- wsgi.py

Vamos testar se criamos o projeto com sucesso, usando o servidor padrão fornecido pelo Django. Lembre-se de que isso é para o processo de desenvolvimento,

cd /var/www/<my-project-name>
python manage
.py runserver

Se você abrir o navegador e abrir localhost: 8000 , ele deverá mostrar a página padrão de Sucesso.
(lembre-se de pressionar Ctrl + D no terminal para fechar o servidor)

Nota: Você pode querer criar dois diretórios * estáticos ** e modelos dentro do diretório do seu projeto para renderizar arquivos estáticos como imagens, scripts e arquivos css. templates para templates html usados ​​para renderizar páginas. veja a configuração do apache abaixo para diretórios estáticos *

Ok …
Até agora instalamos o python, o Django e criamos um projeto no Django. Agora vamos prosseguir com a implantação do projeto no ambiente de produção, ou seja, configurando-o com o Apache.

Django.wsgi

Django precisa de um arquivo de configuração wsgi para rodar no Apache.
Crie um django.wsgi no diretório do projeto paralelo,

vim /var/www/<my-project-name>/django.wsgi

e adicione o seguinte conteúdo

import os
import sys

path
='/var/www/<my-project-name>'

if path not in sys.path:
sys
.path.append(path)

os
.environ['DJANGO_SETTINGS_MODULE'] = '<my-project-name>.settings'

import django.core.handlers.wsgi
application
= django.core.handlers.wsgi.WSGIHandler()

Configurando o Apache

Você precisa do adaptador mod-wsgi para configurar o Django no Apache
install wsgi lib como abaixo.

sudo apt-get install libapache2-mod-wsgi
sudo a2enmod wsgi

Criação de um host virtual para seu site

Depois de instalar o mod-wsgi você precisa adicionar um host virtual no Apache
, estou chamando-o de django para que eu possa colocar todas as minhas configurações de sites Django em um só lugar

vim /etc/apache2/sites-available/django

e adicione o seguinte conteúdo dentro dele,

<VirtualHost *:80>
#My site Name

ServerName
<my-site-name>.com

#Demon process for multiple virtual hosts

WSGIDaemonProcess
<my-site-name> threads=5

#Pointing wsgi script to config file

WSGIScriptAlias / /
<my-site-dir>/django.wsgi
WSGIProcessGroup
<my-site-name>

#Your static files location

Alias /static/ "/
<my-site-dir>/static/"
<Location "/media">
SetHandler None

</Location>
<LocationMatch ".(jpg|gif|png|js|css)$">
SetHandler None

</LocationMatch>
<Directory /
<my-site-dir> >
WSGIProcessGroup
<my-site-name>
WSGIApplicationGroup %{GLOBAL}

Order deny,allow

Allow from all

</Directory>
</VirtualHost>

Você precisa habilitar a configuração do site recém-criado no apache

sudo a2ensite django

Adicione seu site aos hosts

vim /etc/hosts

e adicionar referência como abaixo

127.0.0.1        <my-site-name>.com

Reinicie o Apache

sudo /etc/init.d/apache2 restart