Но вот возникла необходимость запустить такую связку, и хабр пришел на помощь. Хотя, мне пришлось пойти несколько другим путем. Не буду описывать процесс установки nginx, fastcgi, postgre и, тем более django. Всё это легко делается с помощью yaourt.
Остановлюсь только на некоторых ключевых моментах, касающихся настройки этого всего добра.
#nginx.conf
user http;
worker_processes 1;
error_log /var/log/nginx/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nodelay on;
keepalive_timeout 65;
include proj_fcgi.conf;
}
#proj_fcgi.conf
server {
listen 80;
server_name proj.local;
charset utf-8;
access_log logs/proj.access.log;
client_max_body_size 300m;
include fastcgi_params;
location / {
fastcgi_pass unix:/home/django_projects/proj/fastcgi.socket;
}
в fastcgi_params понадобилось заменить строку
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
на
fastcgi_param PATH_INFO $fastcgi_script_name;
Еще написал такой вот скриптик-пускалку и положил его в корень проекта.
#server.sh
#!/bin/bash
SITE_ROOT="/home/django_projects/proj"
PYTHON=$SITE_ROOT/.env/bin/python #путь к virtualenv
PID_FILE="/tmp/proj.pid"
SOCK_FILE="$SITE_ROOT/fastcgi.socket"
COMMAND="$PYTHON ./manage.py runfcgi method=prefork socket=$SOCK_FILE pidfile=$PID_FILE"
case "$1" in
"start")
sudo rc.d start postgresql
sudo rc.d start nginx
$COMMAND
;;
"stop")
sudo rc.d stop postgresql
sudo rc.d stop nginx
kill -9 `cat $PID_FILE`
;;
"restart")
$0 stop
sleep 1
$0 start
;;
*) echo "Usage: ./server.sh {start|stop|restart}";;
esac
Вот, в общем-то и всё. Это максимально упростило мне процедуру запуска сайта локально.
Нужно только ввести в консоли
/proj]$ ./server.sh start
И всё должно работать :3
No comments:
Post a Comment