概述
前段时间简单学习了一下Django框架,跟着网上的视频和文档写了一个简单的博客想把它部署到我的服务器上。
直接上步骤吧。
1、更新源
sudo apt-get update
sudo apt-get upgrade
2、修改系统地Python默认版本
Ubuntu自带Python2和Python3,所以不用再安装Python3。但是系统默认版本是2,所以要换成3。
查看系统python默认版本
python -V
python 2.7.12 默认是2.
修改为python3
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
查看一下
python -V
python 3.5.2 ok了,默认为Python3了。
3、安装pip3
sudo apt-get install python3-pip
4、安装Django以及uwsgi
pip3 install Django
pip3 install uwsgi
5、安装nginx
apt-get install nginx
访问域名,出现欢迎界面就安装成功了
6、安装ubuntu桌面系统
这一步看需要执行,我是为了在服务器上测试项目方便查看安装个桌面。
1)apt-get install ubuntu-desktop
2)vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
修改为:
[Seat:*]
user-session=ubuntu
greeter-show-manual-login=true
allow-guest=false
3)vim /root/.profile
修改为:
# ~/.profile: executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
tty -s && mesg n || true
重启
7、 安装MYSQL
Django自带的sqlite性能较差,我用的是MySQL数据库,所以要安装。
sudo apt-get install mysql-server mysql-client
sudo apt-get install libmysql-dev //这个好像没有用。
sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
pip3 install mysqlclient
安装过程中需要设置密码。
验证一下,命令:mysql -uroot -p
输入密码后就进入MySQL数据库管理系统了。
运行show databases; 查看到当前安装的数据库
顺便把项目要用的数据库建立一下:create database djangoblog;
再次show databases;
8、部署django项目
pip3 install 你需要用到的库
进入项目目录
执行:
python3 manage.py makemigrations
python3 manage.py migrate
创建超级用户
执行:
python3 manage.py createsuperuser
收集静态文件
执行:
python3 manage.py collectstatic --noinput
python3 manage.py compress --force
开始运行:
执行: python3 manage.py runserver
浏览器打开: http://127.0.0.1:8000/ 。
9、部署uwsgi服务器
pip3 instll uwsgi
测试uWSGI是否正常,在项目目录中创建一个测试用的Python文件uwsgi_test.py
def application(env, start_response):
start_response('200 OK',[('Content-Type', 'text/html')])
return (b'Hello world' )
测试一下,在浏览器中访问9000端口,应该看到Hello world字样
uwsgi --http 127.0.0.1:9000 --wsgi-file uwsgi_test.py
10、在项目目录下新建uwsgi.ini
[uwsgi]
http=127.0.0.1:8000
chdir=/home/zxy/DjangoBlog/
master=true
processes=4
threads=2
module=DjangoBlog.wsgi
通过下面命令同样可以启动uWSGI加载Djiango项目
uwsgi --ini uwsgi.ini
访问127.0.0.1:8000 成功运行项目
11、用nginx代理,让我们可以通过域名访问项目
修改uwsgi.ini
[uwsgi]
http=127.0.0.1:8000
socket = /home/zxy/DjangoBlog/DjangoBlog.sock
chdir = /home/zxy/DjangoBlog
wsgi-file = DjangoBlog/wsgi.py
#touch-reload = /home/zxy/DjangoBlog/reload
processes = 2
threads = 4
chmod-socket = 664
chown-socket = zxy:www-data
vacuum = true
在/etc/nginx/sites-available下新建一个DjangoBlog.conf,文件名你根据自己情况取,其实叫什么没关系,xxx.conf这种形式就行。然后复制一份到/etc/nginx/sites-enabled。可以用命令 cp。
内容为
server {
listen 80;
server_name www.XXX.top; //你的域名
charset utf-8;
client_max_body_size 75M;
location /media {
alias /home/zxy/DjangoBlog/media;
}
location /static {
alias /home/zxy/DjangoBlog/collectedstatic;
}
location / {
uwsgi_pass unix:///home/zxy/DjangoBlog/DjangoBlog.sock;
include /etc/nginx/uwsgi_params;
}
}
主要内容都配置好了
打开一个终端运行:sudo uwsgi --ini uwsgi.ini
再打开一个运行:sudo service nginx start
ok,通过域名访问一下试试。
因为这两天在赶论文,这篇学习笔记写的不够详细。配置过程中还遇到权限不够等一些小问题,这些都不难解决,有时间再完善一下这篇笔记。
最后
以上就是现代黑米为你收集整理的在Ubuntu16.04上使用uWSGI和nginx部署Django项目的全部内容,希望文章能够帮你解决在Ubuntu16.04上使用uWSGI和nginx部署Django项目所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复