Так случается, что иногда нужно не только написать проект на django но и использовать его.
В качестве сервера предлагаю использовать nginx.
Сперва установить его и flup :
sudo aptitude install nginx python-flup
Теперь запустите fastcgi:
python ./manage.py runfcgi host=127.0.0.1 port=8080
Когда это проделано, создаём конфигурациооный файл для nginx:
sudo touch /etc/nginx/sites-available/sample_project.conf
sudo ln -s /etc/nginx/sites-available/sample_project.conf /etc/nginx/sites-enabled/sample_project.conf
Файлы одинаковы, так что имеет смысл создать один файл и ссылку на него.
Вот содержание:
server {
listen 80;
server_name myhostname.com; # имя вашего хоста. Можно прописать в /etc/hosts
access_log /var/log/nginx/sample_project.access.log;
error_log /var/log/nginx/sample_project.error.log;
# каталог для static файлов
location /static/ { # STATIC_URL
alias /home/www/myhostname.com/static/; # STATIC_ROOT
expires 30d;
}
# для media
location /media/ { # MEDIA_URL
alias /home/www/myhostname/static/; # MEDIA_ROOT
expires 30d;
}
location / {
include fastcgi_params;
fastcgi_pass 127.0.0.1:8080;
}
}
Вот и всё. Теперь просто перезапустите nginx. От root:
/etc/init.d/nginx restart
Вот и всё. Теперь у вас настоящий хостинг))))
Имеет смысл в каталоге с проектом создать скрипт запуска/остановки:
#!/bin/bash
case "$1" in
"start")
python ./manage.py runfcgi method=prefork host=127.0.0.1 port=8080 pidfile=/tmp/server.pid
;;
"stop")
kill -9 `cat /tmp/server.pid`
;;
"restart")
$0 stop
sleep 1
$0 start
;;
*) echo "Usage: ./server.sh {start|stop|restart}";;
esac
Использовать соответственно ./server.sh start для запуска и ./server.sh stop для остановки







