å€ãã®Djangoéçºãã¥ãŒããªã¢ã«ã§ã¯ãæ©èœãããããã°ãµãŒããŒïŒpython manage.py runserverïŒãè¿
éã«ååŸããæ¹æ³ãæããã«ãããŠãããæŠéã¢ãŒãã§ã®ãããã€ã®åé¡ã¯æªè§£æ±ºã®ãŸãŸã§ããããæãåçŽã§æã广çãªæ¹æ³ãšã¯ããé¢ããŠããŸãã
以äžã§ã¯ããã¹ãã£ã³ã°ã®éžæããWebãµãŒããŒã®ãããã€ãŸã§ãæŠéã¢ãŒãã§Djangoã«ãµã€ãããããã€ããæ¹æ³ã®1ã€ã«ã€ããŠèª¬æããŸãã ãããã£ãŠããã®èšäºã¯ãDjangoã«åºã¥ããéçºããã¹ã¿ãŒãããããµãŒããŒã®å±éã®çµéšããªã人ã«ã¯åœ¹ç«ã€ãããããŸããã ç§ã®æ¹æ³ã¯æ°å€ããããŸãããéåžžã«ã·ã³ãã«ã§ãæäœãå¹ççã§ãä¿å®ã容æã§ãã VPSãã¹ãã£ã³ã°ãUbuntu 10.04ãnginxãgunicornã䜿çšããŸãã
ç®æ¬¡
ãããžã§ã¯ãæ§é
ããã«è°è«ããã«ã¯ãå±éãããããžã§ã¯ãã®æ§é ã«ã€ããŠè©±ãå¿
èŠããããŸãã
- myproject/ - , , ; - env/ - , virtualenv; - src/ - , IDE, , myproject ; - myproject/ - , Django-; - __init__.py - settings.py - manage.py - urls.py - myapp1/ - myapp2/ ... - static_content/ - , - ( - nginx), , - , ; - static/ - ( ); - media/ - media-, ; - docs/ - , , ; - logs/ - , , ; - pids/ - pid-.
äžèŠããœãŒã¹ã®ãã¹ãã®æ·±ããé床ã«èŠãããããããŸããã ããããç§ã®çµéšã§ã¯ããã®æ·±ãã§äœæ¥ããã³ã¹ãã¯å°ãããããæ§é åãããæ§é ã®å©ç¹ã¯éèŠã§ããããšã瀺ãããŠããŸãã
ãœãŒã¹ã¹ãã¬ãŒãžã«ã€ããŠãã®èšäºã§ã¯ããããžã§ã¯ããœãŒã¹ãã¡ã€ã«ã®ä¿åã®åé¡ã«ã€ããŠã¯é瀺ããŠããŸãããéžæãç·šæãããã³ãªããžããªã¢ã¯ã»ã¹ã®èšå®ã¯èšäºã®å¥ã®ãããã¯ã§ããããã§ãã
ãã¹ãã£ã³ã°
ç§ã«ãšã£ãŠãdjangoã®æã䟿å©ãªãã¹ãã£ã³ã°ã¯VPSãã¹ãã£ã³ã°ã§ããããšããã£ãšåã«ããããŸããã ããã€ãã®VPSãã¹ãã£ã³ã°ã詊ããåŸãäŸ¡æ Œ/å質æ¯ã§æãåãå
¥ãããã
FirstVDSã«æ±ºããŸãã ã ç§ã¯æã«400ã«ãŒãã«ã®æéã䜿çšããŸã-1500 MB RAMã24000 MB HDDã ãã ããæåã¯150ã«ãŒãã«ã®é¢çšãããããŸãïŒãã®å Žåãäžéšã®ã¢ããªã±ãŒã·ã§ã³ã«ãããå°ãªããªãœãŒã¹ãæ¶è²»ããããã«æããå¿
èŠããããŸãïŒã
ãããã£ãŠãéå§ããã«ã¯ãVPSãæ³šæããŠæ¯æããä»®æ³åOpenVZã®çš®é¡ãéžæããå¿
èŠããããŸã-ç©çãã·ã³ã®äžå®å
šãªã·ãã¥ã¬ãŒã·ã§ã³ã§ãããã¿ã¹ã¯ã«ã¯ååã§ããåããéã§ä»®æ³åãè¡ããšãmemcachedã«åœ¹ç«ã€ã¡ã¢ãªãå¢ããŸãã ã ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšããŠãUbuntu Server 10.04 LTSïŒãéžæããããšããå§ãããŸãã Ubuntu Server 12.04 LTSãå©çšå¯èœã§ããç§ã¯ãããããã»ã©é£ãªãåäœãããããšãã§ããŸããããæè¿ãã¹ãã£ã³ã°ã«ãã³ãã¬ãŒããçŸããŸããããããŠãã¹ãã£ã³ã°ãããã€ããŒã®ãµããŒãã¹ãã·ã£ãªã¹ãã¯ãŸã ããã«ãµãŒããŒã«ãããã€ã³ã¹ããŒã«ããããšãæšå¥šããŠããŸããã çŸåšã¯ããã¹ããµãŒããŒã§ã®ã¿äœ¿çšããŠããŸãã
代æ¿ã®UbuntuãµãŒããŒãã¹ãã£ã³ã°ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã 確ãã«ãããå®å®ãããã¹ãã£ã³ã°ã·ã¹ãã ã®æ¯æè
ãããŸãïŒFreeBSDãDebianãRedHatãCentOSã ããªããŒã«ã¯é¢äžããŸããã ç§ã®çµéšã§ã¯ãDjangoã§ã®éçºã«ã¯ãããªãæ°ããããŒãžã§ã³ã®ããã±ãŒãžãšã¢ããªã±ãŒã·ã§ã³ãå¿
èŠã«ãªãããšãå€ãããšã«æ³šæããŠãã ããã ãããã®ããã±ãŒãžã¯ãå€ãã®æŸèæã«æ¯ããããŠãªã¹ãã«èšèŒãããã·ã¹ãã ã«å
¥ããŸãããã®çµæãä¿¡é Œæ§ã倱ãããŸãã Ubutnuã§ã¯ãããã±ãŒãžã®æ°ããããŒãžã§ã³ããªããžããªã§ããéãåãå
¥ããããŸãã
ã¡ãŒã«ã泚æããŠæ¯æããæžãŸãããšãSSHã¢ã¯ã»ã¹ãå¯èœã«ãªãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®èšå®ãéå§ã§ããŸãã
UbuntuãµãŒããŒ
ã¢ã¯ã»ã¹ãååŸãããããŸãã·ã¹ãã ãæŽæ°ããŠãããSSHã«ãŒãã¢ã¯ã»ã¹ãç¡å¹ã«ããŸãã
SSHã¯ãããç¥ãããŠãã
Puttyããã°ã©ã ã䜿çšããŠWindowsã«æ¥ç¶ã§ããŸãããç§ã¯ããããããããä¿®æ£
-kittyã䜿çšããŸãã ãµãŒããŒã®IPã¢ãã¬ã¹ãšããŠããã¹ãã«ãã£ãŠéä¿¡ãããã¢ãã¬ã¹ãå
¥åããæ¥ç¶ããããã³ããã衚瀺ãããããŠãŒã¶ãŒããã³ãã¹ã¯ãŒããšããŠrootãå
¥åããŸãã
Linuxã«äŒŒãã·ã¹ãã ã«æ¥ç¶ããã«ã¯ãåçŽãªã³ãã³ããå
¥åããŠãã€ãã£ãã¿ãŒããã«ïŒã¿ãŒããã«ãKonsoleãªã©ïŒã䜿çšããŸãã
ssh root@1.2.3.4
1.2.3.4ã¯ãã¹ãã«ãã£ãŠéä¿¡ãããIPã¢ãã¬ã¹ã§ããããã³ããã衚瀺ããããããã¹ãã£ã³ã°ãããã€ããŒã«ãã£ãŠéä¿¡ããããã¹ã¯ãŒããå
¥åããŸãã
ãŸããã«ãŒããã¹ã¯ãŒãã倿ŽããŸãã
passwd
ãªã¯ãšã¹ãã«å¿ããŠãæ°ãããã¹ã¯ãŒãã2åå
¥åããŸããçæããŠ
KeePassXã«ä¿åããããšããå§ãããŸããããè€éã«ããããšã
heããªãã§ãã ããïŒ20æå以äžïŒãã»ãšãã©äœ¿çšããå¿
èŠã¯ãããŸããã
ã·ã¹ãã å
ã®ããã±ãŒãžã®æŽæ°ïŒ
apt-get update apt-get upgrade
ãµãŒããŒããããã€ãããŠãŒã¶ãŒã«ä»£ãã£ãŠãŠãŒã¶ãŒã远å ããŸãã
adduser myuser
ãã¹ã¯ãŒã以å€ã¯äœãå
¥åã§ããŸããããããè€éãªãã®ãèãåºãæ¹ãè¯ãã§ã
ä»ãããªãã¯èšå®ãç·šéããããã®ãšãã£ã¿ãå¿
èŠã§ããç§ã¯ããã奜ãïŒ
apt-get install nano
ãŠãŒã¶ãŒã«ã«ãŒãïŒsudoïŒãšããŠã³ãã³ããå®è¡ããæš©éã远å ããŸãã
nano /etc/sudoers
次ã«ãrootãŠãŒã¶ãŒãSSHçµç±ã§ãã°ã€ã³ããæ©èœãç¡å¹ã«ããŸãïŒãªãã·ã§ã³ãã»ãã¥ãªãã£å¯ŸçïŒã
nano /etc/ssh/sshd_config
ãã®åŸããã·ã³ãåèµ·åããŠããã¹ãŠãæ£åžžã«å®è¡ãããããšã確èªããŸãã
reboot
1ååŸãmyuserãšããŠãã°ã€ã³ã§ããŸãïŒãŸãã¯ããã°ã€ã³ãæ©èœããªãããšãäºåã«ç¢ºèªã§ããŸãïŒã
ssh myuser@1.2.3.4
次ã«ãDjangoã¢ããªã±ãŒã·ã§ã³ãšã€ã³ãã©ã¹ãã©ã¯ãã£ãæ©èœããããã«å¿
èŠãªã·ã¹ãã ããã±ãŒãžãããã€ãé
眮ããŸãã
sudo apt-get install gcc mysql-server python-mysqldb memcached mercurial python-profiler w3m python-setuptools libmysqlclient-dev git-core python-dev rabbitmq-server supervisor nginx
äœãäœãªã®ãèŠãŠã¿ãŸãããïŒ
- gcc-CãC ++ããã®ä»ã®ããŒãã®åã®ã³ã³ãã€ã©ãããã€ãã®ããã±ãŒãžããã«ãããå¿
èŠããããŸãã
- python-setuptools-easy_installã³ãã³ããã€ã³ã¹ããŒã«ããå Žåãvirtualenvãã€ã³ã¹ããŒã«ããã ãã§ããäºå®ãvirtualenvã¯ã·ã¹ãã ããã±ãŒãžã®ææ°ããŒãžã§ã³ã§ã¯ãªããããå€ãã®åä»ãªåé¡ãçºçããŸãã
- mysql-server-ååããããããMySQLãµãŒããŒã§ããããšã¯æããã§ããWebã¢ããªã±ãŒã·ã§ã³ãã¹ãäžã§ããŒã¿ããŒã¹ãµãŒããŒãäžããããããããå¿
èŠã«ãªããŸãã
- libmysqlclient-dev-ãã®ããã±ãŒãžã¯ãPythonçšã®MySQLã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ãã¢ã»ã³ãã«ããããã«å¿
èŠã§ãã
- python-dev-ããã€ãã®ããã±ãŒãžããã«ãããããã«å¿
ãå¿
èŠãªpython APIã
- ã¹ãŒããŒãã€ã¶ã¯ããã°ã©ã ã§ããããŒã¢ã³ã³ã³ãããŒã©ã§ããWebãµãŒããŒãšãå Žåã«ãã£ãŠã¯ä»ã®å€ãã®ããã°ã©ã ã飌ããªããå¿
èŠããããŸãã
- nginx-nginx WebãµãŒããŒã Igor Sysoevã«æè¬ããŸãã
- rabbitmq-server-ãªãã·ã§ã³ã®AMQPãµãŒããŒãã»ããªã䜿çšããå¿
èŠãããå Žåã«åœ¹ç«ã¡ãŸãã
- memcached-ãªãã·ã§ã³ã§ãRAMå
ã®ãã£ãã·ã¥ã®æ¢ç¥ã®å®è£
ã
- git-core-ãªãã·ã§ã³ãgitããŒãžã§ã³ç®¡çã·ã¹ãã ã®ã¯ã©ã€ã¢ã³ããå¿
èŠãªããã±ãŒãžãgitãªããžããªã«ä¿åãããŠããå Žåã¯å¿
é ã§ãã
- mercurial-ãªãã·ã§ã³ãmercurialïŒhgïŒããŒãžã§ã³ç®¡çã·ã¹ãã ã®ã¯ã©ã€ã¢ã³ããå¿
èŠãªããã±ãŒãžãmercurialãªããžããªã«ä¿åãããŠããå Žåã«å¿
èŠã§ãã
ãããžã§ã¯ãå±é
ãããã€ã«ã¯ãvirtualenvããŒã«ã䜿çšããŠä»®æ³ç°å¢ã䜿çšããŸãã
åã®ç« ã§ã¯ã䟿å©ãªeasy_installãŠãŒãã£ãªãã£ãã€ã³ã¹ããŒã«ããŸãããããã䜿çšããŠãvirtualenvææ°ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããŸãã
sudo easy_install virtualenv
ãæ³šæ ä»®æ³ç°å¢ã®pipãå¶çºçã«ç«¶åããªãããã«ãæå³çã«pipãã°ããŒãã«ã«ã€ã³ã¹ããŒã«ããŸããã§ããã
ããã§ããããžã§ã¯ãã®å±éãéå§ã§ããŸãã ãŸããããŒã ãã£ã¬ã¯ããªã®ã©ããã«é
眮ããå¿
èŠããããŸãã
/home/myuser/web/myproject
gitããŒãžã§ã³ç®¡çã·ã¹ãã ã䜿çšããŠããŸãã ãã ããSCPã«æ²¿ã£ãŠã³ããŒããã ãã§ãããå®çŸã§ããŸãã Windowsã§ã¯ã
WinSCPã䜿çšã§ããŸããLinuxã§ã¯ããã¡ã€ã«ãããŒãžã£ãŒã¯ã¢ãã¬ã¹åœ¢åŒsftpããµããŒãããŸãïŒ//myuser@1.2.3.4ãããããæšæž¬ãããããã«ãèªèšŒããŒã¿ã¯SSHçµç±ã®ã¢ã¯ã»ã¹ã«äœ¿çšãããŸãã
ç§ã®ãããžã§ã¯ãã§ã¯ãä»®æ³ç°å¢ãæ§ç¯ããããã®ã«ãŒããã¡ã€ã«ã¯build_env.shã§ãã
ãŸããrequirements.confãã¡ã€ã«ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãæ©èœããããã«å¿
èŠãªããã±ãŒãžãå«ãŸããŠããŸãã
django git+git://github.com/sehmaschine/django-grappelli.git#egg=django-grappelli git+git://github.com/django-mptt/django-mptt.git#egg=django-mptt git+git://github.com/krvss/django-social-auth.git#django-social-auth git+git://github.com/gabrielhurley/django-wymeditor.git#django-wymeditor git+git://github.com/jtauber/django-mailer.git#django-mailer git+git://github.com/tweepy/tweepy.git#tweepy django-celery django-debug-toolbar django-pdb python-memcached MySQL-python xlrd unidecode anyjson gunicorn pillow south fabric requests xlwt
ããã¯å¯èœãªããã±ãŒãžã®ã»ããã§ããããã€ãã®ããã±ãŒãžã«ã€ããŠè©³ãã説æããŸããããã®ãããã¯ã®éçºé¢ã«ã€ããŠã¯èª¬æããŸããã
ãã®ããããããžã§ã¯ããã©ã«ããŒ/ home / myuser / web / myprojectã§éå§ããåŸïŒ
./build_env.sh
ä»®æ³ç°å¢ã¯ããµãŒããŒã®æäœã®ããã«ã€ã³ã¹ããŒã«ãããŸãã
ããã§ãããŒã¿ããŒã¹ã®äœæã«æ³šæããå¿
èŠããããŸãã ãããžã§ã¯ãã§ã¯ãMySQLã䜿çšããŸãã MySQLã³ã³ãœãŒã«ãèµ·åããŸãã
mysql -uroot -pROOTPASSWORD
ããŒã¿ããŒã¹ãšãŠãŒã¶ãŒãäœæããå ŽæïŒ
CREATE DATABASE myproject CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'myproject'@'localhost' IDENTIFIED BY 'USERPASSWORD'; GRANT ALL PRIVILEGES ON myproject.* TO 'myproject'@'localhost';
ããã§ãã¢ã¯ã»ã¹èšå®ããããžã§ã¯ãèšå®ãã¡ã€ã«ïŒsettings.pyãŸãã¯local_settings.pyïŒã«å
¥åã§ããŸãã
ããŒã¹ãã³ããããå Žåã¯ãäœããã¹ãããç¥ã£ãŠããŸãã ããã§ãªãå Žåã¯ããã®äžã«å³ãšå¿
èŠãªããŒã¿ãäœæããŸãã
cd ~/web/myproject
次ã«ãéçãã¡ã€ã«ãåéããŸãã
python manage.py collectstatic
ãã®ã¢ããªã±ãŒã·ã§ã³ã§å®è¡ããæºåãæŽããŸããã
Nginx WebãµãŒããŒãæ§æãã
Nginx WebãµãŒããŒãæ§æããã«ã¯ãmyproject.confæ§æïŒæ¥å°ŸèŸã¯.confã§ãªããã°ãªããŸããïŒã/ etc / nginx / sites-available /ãã©ã«ããŒã«é
眮ããå¿
èŠããããŸãã
nanoãä»ããŠSSHã³ã³ãœãŒã«ã§ãã¡ã€ã«ãäœæããã³ç·šéã§ããŸãã
sudo nano /etc/nginx/sites-available/myproject.conf
次ã«ã以äžã®äŸã®å
容ã貌ãä»ãïŒShift + InsertïŒãå¿
èŠã«å¿ããŠä¿®æ£ããä¿åïŒCtrl + OïŒãçµäºïŒCtrl + XïŒããŸãã
myproject.confãã¡ã€ã«ã®å
容ã®äŸïŒ
upstream myproject.ru { server localhost:12345 fail_timeout=0; } server { listen 80; server_name www.myproject.ru; rewrite ^/(.*) http://myproject.ru/$1 permanent; } server { listen 80; client_max_body_size 4G; server_name myproject.ru; access_log /home/myuser/web/myproject/logs/myproject.access.log; keepalive_timeout 5; root /home/myuser/web/myproject/static_content; location / { proxy_pass http://myproject.ru; } error_page 500 502 503 504 /500.html; location = /500.html { root /home/myuser/web/myproject/static_content/static/html; } location ~ ^/(static|media)/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://myproject.ru; break; } } }
äžè¬çãªèšèãçè§£ããŠã¿ãŸããããäœãäœã§ãã
ãã®äŸã§ã¯ãã¢ããã¹ããªãŒã ã¯localhostïŒ12345ãœã±ããã§ãããæ¬¡ã®URLãæºãããªããã¹ãŠã®èŠæ±ãããã«è»¢éããŸãã
/ static / *-éçãµã€ããã¡ã€ã«ã
/ media / *-ã¡ãã£ã¢ãã¡ã€ã«ããµã€ãã®éçšäžã«äœæããããã¡ã€ã«ã
ãã®ãœã±ããã«ããªã¹ãã³ã°ã®ããã«èšäºã®æ¬¡ã®éšåã§gunicornãæããŸãã çè«çã«ã¯ãã¢ããã¹ããªãŒã ã®ååã¯ä»»æã«éžæãããŸãããã¢ããã¹ããªãŒã ã®ååããµã€ãã®ãã¡ã€ã³åãšç°ãªãå Žåãåé¡ã«ééããŸããïŒè©³çްã説æããDjangoãšã©ãŒã®ããã¹ãã¯èŠããŠããŸããïŒã
æ§æã®ããã«è峿·±ãéšåïŒ
www.myproject.ruãµããã¡ã€ã³ããmyproject.ruã«ãªãã€ã¬ã¯ãããŸããå¿
èŠã«å¿ããŠå察ã®ããšãã§ããŸãã
5XXãšã©ãŒåŠçã¯ãéçãª500.htmlãã¡ã€ã«ã®åºåã«ãã£ãŠç·šæãããŠããŸãã ãã®ãããªãã¡ã€ã«ã®ååŸã¯éåžžã«ç°¡åã§ãããµã€ãã«404ããŒãžã衚瀺ãããã©ãŠã¶ã«500.htmlãšããŠä¿åãããšã©ãŒããã¹ããç·šéããŸãã
éçãã¡ã€ã«ãèŠã€ãããªãå ŽåãèŠæ±ã¯gunicornã«éä¿¡ãããæšæºã®404ãšã©ãŒãã¹ããŒã§ããããã«ãªããŸãã
æ§æãã¡ã€ã«ãååšããå Žæã«é
眮ããããïŒã³ãã³ãcat /etc/nginx/sites-available/myproject.confã§ç¢ºèªã§ããŸãïŒãã·ã³ããªãã¯ãªã³ã¯ãé
眮ããå¿
èŠããããŸãã
sudo ln -s /etc/nginx/sites-available/myproject.conf /etc/nginx/sites-enabled/
nginxãåèµ·åããŸãã
sudo service nginx restart
gunicornãšã¹ãŒããŒãã€ã¶ãŒãæ§æãã
ãããžã§ã¯ãããããã€ãããšãã«ãgunicornããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãããããã䜿çšããŠãåçHTTPå¿çïŒHTTPå¿çïŒDjangoã¢ããªã±ãŒã·ã§ã³ãçæããŸãã Gunicornèªäœã¯ãªã¯ãšã¹ããåãå
¥ããŠãããã«å¯Ÿããåçãçæã§ããŸãããgunicornãå®è¡ãç¶ããå¿
èŠããããŸããããšãã°ãã·ã¹ãã ã®åèµ·åæã«èµ·åããŸããããããã®ããã°ã©ã ã«ç¹åããã¹ãŒããŒãã€ã¶ãŒã«ä»»ããŸãã
gunicornéçºè
ã¯ãæåç·ã«é
眮ããããšãæšå¥šããŠããªãããšã«æ³šæããŠãã ãããããããnginxãªã©ã®å°çšãµãŒããŒã«ãŠãŒã¶ãŒããã®ãªã¯ãšã¹ããåä¿¡ããããæç€ºããŸãã
ãããã£ãŠã/ etc / supervisor / conf.d /ãã©ã«ããŒã§ã次ã®å
容ã®myproject.confãã¡ã€ã«ãäœæããŸãã
[program:myproject] command=/home/myuser/web/myproject/env/bin/python /home/myuser/web/myproject/src/myproject/manage.py run_gunicorn --bind=localhost:12345 --workers=3 --pid=/home/myuser/web/myproject/pids/gunicorn.pid --log-file /home/myuser/web/myproject/logs/gunicorn.log directory=/home/myuser/web/myproject/src/myproject umask=022 autostart=true autorestart=true startsecs=10 startretries=3 exitcodes=0,2 stopsignal=TERM stopwaitsecs=10 user=myuser
gunicornã®ãã©ã¡ãŒã¿ãŒã§ã¯ãçèŽçšã®åãããŒãïŒãã®äŸã§ã¯12345ïŒãæž¡ãããšã«æ³šæããŠãã ãããããã¯nginxæ§æã§ç€ºãããŠããŸãã ã¯ãŒã¯ããã»ã¹ã®æ°ã¯3ã«èšå®ãããŠããŸããã¯ãŒã¯ããŒãã«åºã¥ããŠããµã€ãã®1ã€ã«å¯ŸããŠãã®ãã©ã¡ãŒã¿ãŒã䞻芳çã«éžæããŸããããããŸã§ã®ãšãããå€ãæšå¥šããããšã¯ã§ããŸããã
æ§æãæ£ãããã©ã«ããŒã«é
眮ããããïŒcat /etc/supervisor/conf.d/myproject.confãå®è¡ããããšã§ç¢ºèªã§ããŸãïŒããã¡ã€ã«ãåèªã¿åãããããã¹ãŒããŒãã€ã¶ãŒãåèµ·åããå¿
èŠããããŸããä¿¡é Œæ§ã®ããã«2çªç®ã®ãªãã·ã§ã³ã䜿çšããŸãã
sudo supervisorctl reload
次ã®ã³ãã³ãã䜿çšããŠãèµ·åã®æåã確èªã§ããŸãã
sudo supervisorctl status
æåããå Žåãmyprojectããã»ã¹ã®ã¹ããŒã¿ã¹ã¯æ°ç§ã§å®è¡äžã«ãªããŸãã
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
perlïŒèŠåïŒãã±ãŒã«ã®èšå®ã«å€±æããŸãããæåãããã³ãã³ããå
¥åãããšãã·ã¹ãã ã¯èŠåã®çºè¡ãéå§ããŸãã
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings:
æ£ãããã±ãŒã«ã远å ããŠè§£æ±ºããŸããïŒ
locale-gen ru_RU.UTF8
ããŒã¹ïŒ
http :
//askubuntu.com/questions/76013/how-do-i-add-locale-to-ubuntu-server sudoïŒsetuidã«ãŒãã§ããå¿
èŠããããŸãæ°ãããŠãŒã¶ãŒã®äžããsudoãåããŠäœ¿çšãããšãããšã©ãŒãçºçããå¯èœæ§ããããŸãã
sudo: must be setuid root
ããšãã°æ¬¡ã®ããã«è§£æ±ºããŸããïŒ
chmod 4755 /usr/bin/sudo
EïŒåé¡ãä¿®æ£ã§ããŸãããå£ããããã±ãŒãžãä¿æããŠããŸããUbuntu 12.04ã«ããã€ãã®ããã±ãŒãžïŒããšãã°ãpython-devãŸãã¯libmysql-devïŒãã€ã³ã¹ããŒã«ãããšããšã©ãŒãçºçããå¯èœæ§ããããŸãã
libc6-dev : Depends: libc6 (= 2.15-0ubuntu10.2) but 2.15-0ubuntu10+openvz0 is to be installed E: Unable to correct problems, you have held broken packages.
ããã解決ããã«ã¯ã/ etc / apt / preferences.d / 99ovz-libc-pinãã¡ã€ã«ã倿Žããã ãã§ãïŒ
亀æ
libc-bin libc6
ã«
libc-bin libc6 libc6-dev libc-dev-bin
/ dev / nullãéããŸããã§ããïŒèš±å¯ãæåŠãããŸãããŠãŒã¶ãŒãäœæãããšãã«ããšã©ãŒãçºçããå ŽåããããŸãã
Couldn't open /dev/null: Permission denied
ãã®ããã«æ±ºããïŒ
sudo chmod 666 /dev/null
ãããã©ãã»ã©æ£ãããã¯ããããŸããããå±éºã¯èŠãŸããã§ããã
ãããã«
ãã®å±éã®è¯å®çãªåŽé¢ã«æ³šæããŠãã ããã
Djangoã¢ããªã±ãŒã·ã§ã³ããããã€ããããã®å€ãã®ãªãã·ã§ã³ã®1ã€ã ããsatyaã§èæ
®ãããŠããŸã;ç§ã¯å€ãã®è©Šè¡é¯èª€ãéããŠããã«åãçµã¿ãŸããã ç§ã®æšå¥šäºé
ã¯ã究極ã®çå®ã§ãããšäž»åŒµããŠããŸããã ããã«ã建èšçãªæ¹å€ãåãã§åããŸãã
䟿å©ãªãªã³ã¯
- FirstVDS-å®äŸ¡ãªVPSãã¹ãã£ã³ã°ã4åã®1ãªãŒããŒã®ãªã³ã¯ãå®äŸ¡ã§ãã
- PuttyãšKittyã¯ãWindowsçšã®SSHã¯ã©ã€ã¢ã³ãã§ãã
- WinSCP -Windowsã®SCPã¯ã©ã€ã¢ã³ããFTPãµãŒããŒãäžããå¿
èŠã¯ãªããæ¢åã®SSHã¢ã«ãŠã³ãã䜿çšããã ãã§ãã
- KeePassXã¯ãã¯ãã¹ãã©ãããã©ãŒã ã®ãã¹ã¯ãŒãä¿åãŠãŒãã£ãªãã£ã§ãã
- Ubuntu LTS -Ubuntué·æãµããŒããªãªãŒã¹ããªã·ãŒã
- Ubuntu Securityã¯ãã¹ã¯ãããã®åå·ççãªèšå®ã§ããããµãŒããŒã«äœããéããããšãã§ããŸãã
- Djangoã®å°å
¥ -ãµã€ããDjangoã«å°å
¥ããä»ã®æ¹æ³ã
- virtualenv - virtualenvã䜿çšããŸãã
- Nginx -nginxã®èšå®ã«é¢ããå€ãã®è峿·±ãããšã
- ã¹ãŒããŒãã€ã¶ãŒ+ gunicorn -nginxãä»ããgunicornã®äœ¿çšã«ã€ããŠã