рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╡рд░реНрдгрди рдХрд░реВрдБрдЧрд╛ рдХрд┐ Django рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рд╢реАрд░реНрд╖ рдкрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ Django рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЛрдб рджреЗрдЦ рд╕рдХреЗрдВред1 - рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рд╕реЗ рдлреНрд░реАрдмреАрдПрд╕рдбреА рдкрд░ Django рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдореЗрд░реЗ рдкрд╛рд╕ FreeBSD 8.0 рд╣реИ, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдЬреИрд╕реЗ MySQL, Python2.6, nginx, рдЖрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВред Django рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛, рдореИрдВрдиреЗ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреА рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдЪреБрдирд╛:
cd /usr/ports/www/py-django
make install clean
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди, рдЪрдпрди рдХрд░реЗрдВ
[X] POSTGRESQL PostgreSQL support
[X] MYSQL MySQL support
[X] FASTCGI FastCGI support
Django 1.3.1 /usr/local/lib/python2.6/site-packages/django рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдФрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
2 - Django рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛ рддреИрдпрд╛рд░ рдХрд░рдирд╛
рдкреЗрд╢реЗрд╡рд░ рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, / www рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде)ред рд╣рдо рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЛ рд╕реБрдирддреЗ рд╣реИрдВ рдФрд░ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ
рдбрд┐рдл -рдпреВрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ -
рд╣реЙрд╕реНрдЯрд▓реЙрдЯ рдпрд╣
рдЪрд┐рд▓реНрд▓рд╛ рд░рд╣рд╛ рд╣реИ ред
Django рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдирд┐рдореНрди рдкрде рдкрд░ рд░рд╣реЗрдВрдЧреЗ - / home / hostalot / data / django
рд╣рдо рдЗрд╕ dir рдФрд░ рдЬрд╛рдБрдЪ рдореЗрдВ Django рдкрд░ рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рдмрдирд╛рддреЗ рд╣реИрдВ:
cd /home/hostalot/data/django
ln -s /usr/local/lib/python2.6/site-packages/django django
python
>>> import django
>>> exit()
3 - рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ
рд╕рд╛рдЗрдЯ hostalot.ru рдХреЗ рд▓рд┐рдП рдПрдХ Django- рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд╕реЗ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ -
hostalot_ruрдЙрд╕реА рд╕рдордп, рдкрд▓ рдХреЛ рдпрд╛рдж рдХрд░реЗрдВ рдФрд░ рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдбрд╛рдпрд░ рдмрдирд╛рдПрдВ, рдЬреЛ рдмрд╛рдж рдореЗрдВ рд╕реАрдзреЗ рдиреЗрдЧреНрдиреЗрдХреНрд╕ (рдЙрд╕рд╕реЗ рдиреАрдЪреЗ рдкрд░ рдЕрдзрд┐рдХ) рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
python django/bin/django-admin.py startproject hostalot_ru
mkdir /home/hostalot/data/django/hostalot_ru/media
рд╣рдорд╛рд░реЗ рдирдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ (/home/hostalot/data/django/hostalot_ru/settings.py) рдХреА рдХреЙрдиреНрдлрд┐рдЧрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдо рдмрд┐рдирд╛ рдЕрд╕рдлрд▓рддрд╛ рдХреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗред
4 - Django рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ
рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ / usr / рд╕реНрдерд╛рдиреАрдп / рдмрд┐рди / hostalot_ru рдмрдирд╛рдПрдБ
#!/usr/local/bin/bash
exec -a hostalot_ru /usr/local/bin/python $1 $2 $3 $4 $5 $6 $7
рдЕрдЧрд▓рд╛, /usr/local/etc/rc.d/hostalot_ru рдмрдирд╛рдПрдБ
#!/usr/local/bin/bash
# Replace these three settings.
. /etc/rc.subr
name=hostalot_ru # your project name
rcvar=`set_rcvar`
load_rc_config $name
PROJDIR="/home/hostalot/data/django/$name"
PIDFILE="$PROJDIR/$name.pid"
HOST="127.0.0.1" # local
PORT="9010" # may be any foreach 9010-9900
METHOD="threaded" # may be "pre fork"
command=/usr/local/bin/$name
command_args=" $PROJDIR/manage.py runfcgi method=$METHOD host=$HOST port=$PORT pidfile=$PIDFILE"
run_rc_command "$1"
рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рди рднреВрд▓реЗрдВ:
chmod 555 /usr/local/bin/hostalot_ru
chmod 555 /usr/local/etc/rc.d/hostalot_ru
/Etc/rc.conf рдореЗрдВ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдСрдЯреЛрд░рди рдЬреЛрдбрд╝реЗрдВ:
hostalot_ru_enable="YES"
рд╣рдо Django рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЪрдпрдирд┐рдд рдбреЗрдореЙрди рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
cd /home/hostalot/data/django/hostalot_ru
python ./manage.py syncdb
/usr/local/etc/rc.d/hostalot_ru restart
Nginx рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
Django / usr / рд╕реНрдерд╛рдиреАрдп / etc / nginx / django_fastcgi рдХреЗ рд▓рд┐рдП nginx fastcgi рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_ruTHOD $request_ruthod;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_SOFTWARE "nginx";
fastcgi_param GATEWAY_INTERFACE "CGI/1.1";
рд╣рдо рдбреЛрдореЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ /usr/local/etc/nginx/confs/hostalot_ru.conline рдмрдирд╛рддреЗ рд╣реИрдВ:
server {
listen 193.106.172.16:80;
server_name hostalot.ru;
set $proot "/home/hostalot/data/django/hostalot_ru/media";
location / {
fastcgi_pass 127.0.0.1:9010;
include django_fastcgi;
client_max_body_size 120m;
access_log main;
error_log main;
root $proot;
}
location ~* ^/.+\.(htm|swf|flv|xml|ico|jpg|jpeg|js|css|png|gif|mpg|avi|mp3|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|rtf|mpeg)$ {
root $proot;
limit_rate 2000K;
access_log off;
}
}
рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ:
/usr/local/etc/rc.d/nginx restart
рдХреБрд▓: рдкреНрд░рддреНрдпреЗрдХ Django- рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЕрдкрдирд╛ рдбреЗрдореЙрди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╢реАрд░реНрд╖ рдореЗрдВ рдЗрд╕рдХреЗ рдкреНрд░рддреНрдпрдп рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рднреА рдЖрдБрдХрдбрд╝реЗ nginx рджреНрд╡рд╛рд░рд╛ рдХреИрд╢ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред