使用ssh来直接登陆到服务器terminal进行操做,推荐使用XShell和XFtp来进行远程登陆和文件传输。html
本组得到的华为云服务器为ubuntu16.04版本,先安装python和pip。而后安装django,注意安装版本要和本地测试的django版本一致,下面以2.0为例python
pip3 install django2.0
安装nginxmysql
sudo apt-get update sudo apt-get install nginx
安装完成后。用你电脑的浏览器访问你的服务器的公网ip地址,看看安装成功没有。nginx
安装uwsgigit
在你的本地电脑访问https://uwsgi-docs.readthedocs.io/en/latest/Download.html,下载Stable/LTS版本的源文件。sql
本地下解压这个源文件,而后用xftp把文件拖放到阿里云的Ubuntu的家目录(home)下,使用cd命令进入到该文件夹下,按顺序依次输入下面三条命令:django
sudo apt-get install python3-setuptools sudo apt-get install python3-dev sudo python3 setup.py install
安装MySQLubuntu
sudo apt-get install mysql-server mysql-client
配置mysql文件:vim
sudo vim/etc/mysql/mysql.conf.d/mysqld.cnf
而后注释掉下面这行代码:浏览器
# band-address = localhost
先用xftp把你的整个博客项目拖到家目录(home)那里,或者使用git工具从代码库里面拷贝,而后开始配置nginx文件:
cd /etc/nginx/sites-available vim default
使用cd命令进入到sites-available文件夹,文件夹下有一个default文件,使用vim打开它,找到default文件下的这段代码,若是没有就要添加上去:
server_name 192.168.1.121; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. # try_files $uri $uri/ =404; include uwsgi_params; uwsgi_pass 127.0.0.1:8000; } location /static { alias /home/feixue/python/www/for_test/static; } location /media { alias /home/ubuntu/blog/media; }
192.168.1.121替换成你本身服务器公网IP地址;
static 那里也要替换成你本身Django项目的static路径;
media 同理换成你本身Django项目的media路径,这是媒体文件的文件夹;
注意:location后面是有空格的,必需要有!alias后面也是有空格的;include上面那句话也是要注释掉的!
修改为完成后使用 wq 保存退出。
再输入下面命令重启服务:
sudo service nginx restart
配置uwsgi
在django项目有manage.py文件的目录下,新建一个uwsgi.ini文件和一个run.log文件
而后咱们使用vim编辑器编辑uwsgi.ini文件:
[uwsgi] chdir = /home/NAME module = NAME.wsgi:application socket = 127.0.0.1:8000 master = true daemonize = /home/run.log disable-logging = true
chdir 是你的项目的根目录,要替换成实际的路径;
moudule 是你的入口wsgi模块,将NAME替换成项目名称;
socket 是通讯端口设置,这个设置不用改,复制便可;
master = true 表示以主进程模式运行,不用改,复制便可;
daemonize 是日志文件目录,这个路径就是刚刚新建的run.log文件的路径;
disable-logging = true 表示不记录正常信息,只记录错误信息。
修改settings.py文件
打开settings.py文件找到下面代码并修改:
DEBUG = False ALLOWED_HOSTS = [‘192.168.178.128’]
上面这个在一些状况下不改好像也不影响运行。
使用下面的命令重启运行nginx和uwsgi:
sudo service nginx restart sudo killall -9 uwsgi sudo uwsgi uwsgi.ini
django项目在本地的运行方式是python manage.py runserver,而在服务器上则不须要,交给uwsgi来完成这步便可。在三者的框架下,django做为一个基于python的Web应用框架,实现网站的实际功能。nginx做为一个Web服务器,经过监听端口来接收用户端信息。uwsgi则是把上面二者链接起来,uwsgi做为通讯协议能够肯定服务器(nginx)和应用框架(django)之间的传输信息标准。因此咱们在服务器上启动nginx service后再启动uwsgi便可运行服务。