因為我是用windows開發(fā)庸追,這個部署上線真是相當折騰orz
這里我采用了nginx+django+uwsgi的方式阀趴,系統(tǒng)選用了阿里云的ubuntu16.04功偿,用到的工具有Xshell 5和Xftp 5
第一步:安裝nginx
當然是先更新系統(tǒng)了
apt-get update
上面是錯誤做法orz
sudo apt-get update
這才是正確的做法粱坤,因為我們最好不要在日常工作中使用root用戶(但下面我會省去sudo 233)
接下來就是安裝nginx了
apt-get install nginx
在ubuntu中痕慢,nginx的目錄結(jié)構(gòu)如下:
配置文件:/etc/nginx下念搬;
啟動程序文件:/usr/sbin/nginx下抑堡;
日志文件:/var/log/nginx/下,分別是access.log和error.log锁蠕;
此外夷野,/etc/init.d自動生成了啟動腳本nginx。
nginx的操作
sudo /etc/init.d/nginx start # 啟動
sudo /etc/init.d/nginx stop # 停止
sudo /etc/init.d/nginx restart # 重啟
ps -ef | grep nginx # 查看進程
第二步:配置環(huán)境
首先安裝virtualenv
pip install virtualenv
然后創(chuàng)建一個虛擬環(huán)境
virtualenv --no-site-packages web
接著荣倾,激活虛擬環(huán)境
source web/bin/activate
退出時使用deactivate
接下來安裝必要的package悯搔,然后直接copy幾個我改過源碼的包。
通常直接拷貝在site-packages目錄中就能用,前提是這個包依賴安裝好妒貌,并且本身不需要編譯通危。
最后,copy我們的項目目錄到服務器中
第三步:安裝灌曙、配置uwsgi
pip install uwsgi
然后菊碟,在django項目目錄下創(chuàng)建配置文件myproject.ini
# Django-related settings
socket = :8001
# the base directory (full path)
chdir = /root/myproject
# Django s wsgi file
module = blog.wsgi
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 4
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
啟動uwsgi
uwsgi --ini uwsgi.ini
第四步:配置nginx
配置文件/etc/nginx/sites-enabled/default
server {
# the port your site will be served on
listen 8000; # 域名沒備案,先用著8000端口吧
server_name 127.0.0.1; # substitute your machine's IP address or FQDN
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
# Django media
location /media {
alias /home/ubuntu/blog/media; # your Django project's media files - amend as required
}
location /static {
alias /home/ubuntu/blog/static; # your Django project's static files - amend as required
}
# Finally, send all non-media requests to the Django server.
location / {
include uwsgi_params; # the uwsgi_params file you installed
uwsgi_pass 127.0.0.1:8001;
}
}
第五步:收集django靜態(tài)在刺、媒體文件(這一步可以事先完成)
把django自帶的靜態(tài)文件收集到同一個配置好的目錄中逆害,不然訪問django的許多頁面會找不到靜態(tài)文件。
在項目目錄中執(zhí)行
python manage.py collectstatic
最后
啟動uwsgi和nginx即可
大功告成了蚣驼!