准备工作:安装Mysql和Python3.x
注意事项:安装之前,我们需要给默认的Python2.7安装pymysql+Django库,因为后面会出错就是因为未安装这两个库!
1 pip install pymysql==0.7.10 2 pip install django==1.10.6
安装虚拟环境:
提示:因Python3+自带虚拟环境,更简单好用,所以没必要再装一个。
在home目录下创建名称为vcmt的虚拟环境。
1 python3.6 -m venv /home/vcmt
激活虚拟环境:
1 source /home/vcmt/bin/activate
退出命令:
1 deactivate
安装Python扩展库:
第一步,在已配置好的机器上使用:
1 pip freeze > requirements.txt
第二步,把生成的requirements.txt文件复制到目标机器上的root目录下。
第三步,在目标机器上执行pip install -r requirements.txt,读取文件requirements.txt中的扩展库信息并在本机进行安装。
上传项目到服务器:
把Django项目上传到服务器上。
注意:上传项目文件后把 /项目名/app名/migrations/ 下的类似00.. 的记录文件删除,有几个删除几个,但是不要删除别的文件。
修改settings.py文件:
1 DEBUG = False 2 3 ALLOWED_HOSTS = ['*'] 4 5 6 7 8 STATIC_ROOT = os.path.join(BASE_DIR, 'static') 9 10 MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 11 12 STATIC_URL = '/static/'
配置Django项目:
安装好Django等必须库后,进入Django项目下,同步并创建数据库,执行:
1 python manage.py makemigrations 2 python manage.py migrate
建立后台超级用户:
1 python manage.py createsuperuser
启动自带的服务器,测试是否可以正常运行!(此时settings.py 中的DEBUG = False)输入:
python manage.py runserver 0.0.0.0:8000
同步静态文件:
python manage.py collectstatic
配置uWsgi:
在Django项目主目录下创建uwsgi.ini文件:
1 [uwsgi] 2 # 项目目录 3 chdir=/root/biomass/ 4 # 指定项目的application 5 module=biomass.wsgi:application 6 # 进程个数 7 workers=5 8 pidfile=/root/biomass/script/uwsgi.pid 9 # 指定IP端口 10 #http=:9090 11 # 指定静态文件 12 static-map=/static=/root/biomass/static 13 # 启动uwsgi的用户名和用户组 14 uid=root 15 gid=root 16 # 启用主进程 17 master=true 18 # 自动移除unix Socket和pid文件当服务停止的时候 19 vacuum=true 20 # 序列化接受的内容,如果可能的话 21 thunder-lock=true 22 # 启用线程 23 enable-threads=true 24 # 设置自中断时间 25 harakiri=30 26 # 设置缓冲 27 post-buffering=4096 28 # 设置日志目录 29 daemonize=/root/biomass/script/uwsgi.log 30 # 指定sock的文件路径 31 socket=127.0.0.1:9090
1 $ uwsgi --ini uwsgi.ini # 启动uwsgi配置 2 [uwsgi-static] added mapping for /static => /home/trunk/static # 启动成功 3 4 $ uwsgi --stop uwsgi.pid # 关闭uwsgi 5 signal_pidfile()/kill(): Operation not permitted [core/uwsgi.c line 1659] 6 7 $ uwsgi --reload uwsgi.pid #重新加载配置
Nginx配置:
Nginx常用命令:
1 $ /etc/init.d/nginx start #启动 2 $ /etc/init.d/nginx stop #关闭 3 $ /etc/init.d/nginx restart #重启 4 $ killall nginx #杀死所有nginx 5 $ nginx -t #检查配置文件是否有错 6 7 # 如果是生产环境的话Nginx正在运行,就不要直接stop start 或者 restart 直接reload就行了 8 # 对线上影响最低 9 $ /etc/init.d/nginx reload
创建一个xxx.conf配置文件(nginx的默认配置目录为/etc/nginx/conf.d):
1 server { # 这个server标识我要配置了 2 listen 80; # 80 是http默认的端口, 443 是https默认的端口(网页一般使用这两个端口) 3 server_name 39.105.157.191 ; # 你访问的路径前面的url名称 4 access_log /var/log/nginx/access.log; # Nginx日志配置 5 error_log /var/log/nginx/error.log; # Nginx错误日志配置 6 charset utf-8; # Nginx编码 7 gzip on; # 启用压缩,这个的作用就是给用户一个网页,比如3M压缩后1M这样传输速度就会提高很多 8 gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; # 支持压缩的类型 9 10 error_page 404 /404.html; # 错误页面 11 error_page 500 502 503 504 /50x.html; # 错误页面 12 13 # 指定项目路径uwsgi 14 location / { # 这个location就和咱们Django的url(r'^admin/', admin.site.urls), 15 include /etc/nginx/uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的 16 uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间 17 # 指定uwsgi的sock文件所有动态请求就会直接丢给他 18 uwsgi_pass 127.0.0.1:9090; 19 } 20 21 # 指定静态文件路径 22 # location /static/ { 23 # alias /root/biomass/static/; 24 # index index.html index.htm; 25 #} 26 }
启动uWsgi后再启动Nginx即可