Но вот возникла необходимость запустить такую связку, и хабр пришел на помощь. Хотя, мне пришлось пойти несколько другим путем. Не буду описывать процесс установки 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