วันอังคารที่ 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
ติดตั้ง gunicornpip 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
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/
สมัครสมาชิก:
ส่งความคิดเห็น
(
Atom
)
ไม่มีความคิดเห็น :
แสดงความคิดเห็น