ระบบควบคุมในการกระจายและเข้าถึงข่าวสาร การประกาศ

วันอังคารที่ 2 มกราคม พ.ศ. 2561

การติดตั้งโปรเจ็คบน server digital ocean

ไม่มีความคิดเห็น :
    ในการติดตั้ง django cms นั้นจะอธิบายภาพรวมก่อนว่าจะใช้องค์ประกอบอะไรบ้าง  สิ่งแรกนั้นคือ virtualenv ใช้สำหรับจัดการ library ของ python โดยสร้าง environment ขึ้นมาเพื่อติดตั้งแอป djnago cms ที่เราต้องการซึ่งเราจะรันแอปใน environment ที่เราสร้าง   สิ่งต่อมาคือ nginx ใช้สำหรับจัดการเรื่องรัน server และเก็บ log file   ส่วนต่อมาคือ gunicorn ใช้สำหรับสั่งรันแอปและ supervisor ใช้สำหรับจัดการเรื่องการรันคำสั่งในที่นี้จะนำมาใช้สั่งรันแอป รายละเอียดในแต่ละส่วนเป็นดังนี้

อัพเดตการติดตั้งของ ubuntu
sudo apt-get update

ติดตั้ง virtualenv
sudo apt-get install virtualenv

ใช้คำสั่งต่อไปในเพื่อสร้าง environment ของ python3
virtualenv -p python3 env_name

เปิดใช้งาน environment ด้วยคำสั่ง
source env_name/bin/activate

ติดตั้ง pip
sudo apt-get install python-pip

ติดตั้ง library python ที่จำเป็นของโปรเจ็คโดยนำ library ทั้งหมดใน
http://anounceprojectcpre55.blogspot.com/2016/10/library-python-pip.html มาสร้างเป็นไฟล์ requirement.txt จากนั้นใช้คำสั่งต่อไปนี้เพื่อติดตั้ง library ทั้งหมด
install pip requirement.txt
 
ติดตั้ง git
sudo apt-get install git

ดาวน์โหลดโปรเจ็คด้วยคำสั่ง
  git clone https://bitbucket.org/phongyanon/announce_demo.git

ติดตั้ง nginx
sudo apt-get install nginx

เปิด service nginx
sudo /etc/init.d/nginx start

เปิดเว็บบราวเซอร์เข้า url ของ digital ocean จะได้ดังรูปด้านล่าง

รูปหน้าเว็บเมื่อเริ่มเปิดใช้งาน nginx
ติดตั้ง gunicorn
pip install gunicorn

สร้างไฟล์ mysite_nginx.conf เพื่อตั้งค่าการรัน server
server {
    listen 8000;
    server_name 0.0.0.0;
    charset utf-8;

    # max upload size
    #client_max_body_size 75M;

    # Django media
    location / {
        include proxy_params;
        proxy_pass http://unix:/path_to/announce_demo/mysite/mysite.sock;
        #proxy_pass http://server_ip_address;
        #proxy_read_timeout 300000;
    }
    location /media {
        alias /path_to/announce_demo/media;
    }

    location /static {
        alias /path_to/announce_demo/mysite/static;
    }
}

ใช้คำสั่งต่อไปในเพื่อเชื่อมไฟล์กับไดเรกทอรี่ของ nginx
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled

ทดสอบไฟล์ mysite_nginx.conf ด้วยคำสั่งต่อไป
sudo nginx -t

ถ้าใช้งานได้จะได้ผลเป็นข้อความดังนี้
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful



เข้าไปยังไดเรกทอรีโปรเจ็คแล้วรันคำสั่งต่อไปนี้เพื่อให้ nginx รู้ที่เก็บไฟล์ static
./manage.py collectstatic

ติดตั้ง supervisor
sudo apt-get install supervisor

สร้างไฟล์ myproject.conf
sudo nano /etc/supervisor/conf.d/myproject.conf

ใส่ข้อมูลของ myproject.conf ดังนี้
[program:myproject]
command=/path_to/env/bin/gunicorn --workers 3 --bind unix:/path_tp/announce_demo/mysite.sock mysite.wsgi
directory=/path_to/announce_demo
autostart=true
autorestart=true
stderr_logfile=/var/log/myproject.err.log
stdout_logfile=/var/log/myproject.out.log

ใช้คำสั่งต่อไปนี้เพื่อรันโปรเจ็ค
sudo supervisorctl start myproject

ใช้คำสั่งต่อไปนี้เพื่อบันทึก path ของไฟล์ log
sudo supervisorctl reread
sudo supervisorctl update

ตรวจสอบสถานะการรันของโปรเจ็คถ้าใช้งานได้จะขึ้นคำว่า running
sudo supervisorctl status myproject

ทดลองเปิดเว็บบราวเซอร์ถ้าขึ้นหน้าเว้บของโปรเจ็คตามปกติแสดงว่าใช้งานได้

รูปหน้าเว็บโปรเจ็คที่ทำงานบน cloud


เอกสารอ้างอิง
http://rahmonov.me/posts/run-a-django-app-with-gunicorn-in-ubuntu-16-04/


ไม่มีความคิดเห็น :

แสดงความคิดเห็น