Так случается, что иногда нужно не только написать проект на 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 для остановки