Django网站Ubuntu 14.04系统pip3部署详细教程

  • A+
所属分类:环境配置

其实写过很多个教程,在本地也好,在博客也好,很多人容易搞错,乱七八糟的问题,各种bug,可能一个符号的出错,一个字母的出错,都能让你绝望很久。

Django网站Ubuntu 14.04系统pip3部署详细教程

所以重新再写个简单一点的教程。

注:本教程可能会出现权限问题

 

系统包含如下

 

教程分类

  • 系统更新
  • 安装虚拟环境
  • 创建项目
  • 安装uwsgi与配置
  • 安装nginx与配置
  • 最后处理

系统更新

  1. sudo apt-get update
  2. sudo apt-get upgrade

 

安装虚拟环境

安装pip3

  1. sudo apt-get install python3-pip

 

安装virtualenv和virtualenvwrapper,关于virtualenv和virtualenvwrapper相关介绍可自行百度了解。这里不展开说明。

  1. sudo pip3 install virtualenv virtualenvwrapper

 

  1. echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
  2. echo "export WORKON_HOME=~/Env" >> ~/.bashrc
  3. echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
  4. //提供shell初始化脚本
  5. source ~/.bashrc

切记不要一下子复制。别偷懒,中文内容不需要放入,如果你没有在服务器中创建其他的用户

 

创建项目

创建虚拟环境mysite, 查看root/Env/ 目录下多了一个mysite文件夹,后期当前网站的配置文件都将在此文件夹中。

  1. mkvirtualenv mysite

指定安装django版本1.11.7

  1. pip install django ==1.11.7

在当前目录下创建示例项目

  1. cd ~
  2. django-admin.py startproject firstsite

cd ~ 是指进入当前用户的目录下,我们使用的是root,所以会在root文件下创建firstsite文件夹

因下面的内容不需要服务的主要内容,所以快速带过。

  1. cd ~/firstsite   //进入项目目录
  2. ./manage.py migrate  //创建数据库,db.sqlite3
  3. ./manage.py createsuperuser   //创建管理员
  4. vi firstsite/settings.py  //配置静态文件
  5. STATIC_ROOT = os.path.join(BASE_DIR, "static/")   //增加此内容到settings.py文件中
  6. ./manage.py collectstatic  //收集静态文件
  7. ./manage.py runserver 0.0.0.0:8080   //启动服务

退出虚拟环境

  1. deactivate  //退出虚拟环境
  2. workon firstsite  //进入虚拟环境

安装本地的pip配置环境

  1. //本地操作
  2. pip freeze  #查看项目的配置环境
  3. pip freeze > requirements.txt  #将项目的配置环境导出至requirements.txt中
  4. //服务器操作
  5. cd  //进入到requirements.txt文件的目录下
  6. pip install -r requirements.txt  # 安装原项目的环境配置

 

安装uwsgi

在安装uwsgi之前,需要先安装依赖

  1. sudo apt-get install python3-dev
  2. sudo pip3 install uwsgi

 

创建uwsgi配置文件

为了后期的方便管理,在/etc/uwsgi/目录下创建sites文件夹

  1. sudo mkdir -p /etc/uwsgi/sites   //创建sites文件夹
  2. cd /etc/uwsgi/sites  //进入此文件夹

通过linux自带的编辑器,创建配置文件

  1. sudo vi firstsite.ini

配置内容如下

  1. [uwsgi]
  2. project = firstsite
  3. base = /root
  4. chdir = %(base)/%(project)
  5. home = %(base)/Env/%(project)
  6. module = %(project).wsgi:application
  7. master = true
  8. processes = 5
  9. socket = %(base)/%(project)/%(project).sock
  10. chmod-socket = 664
  11. vacuum = true

在内容输入后,按下Esc键后输入下面的命令保存并退出文件。

  1. :wq   //请注意是英文状态

 

为了方便懒人直接复制上述内容,在下面拷贝一份做说明,请注意在复制的时候,可能[uwsgi]是不完整,切记不要犯这个低级错误

  1. [uwsgi]
  2. project = firstsite  //项目名称
  3. base = /root  //用户主目录
  4. chdir = %(base)/%(project)  //项目地址
  5. home = %(base)/Env/%(project)  //项目环境
  6. module = %(project).wsgi:application  //
  7. master = true
  8. processes = 5  //项目进程数
  9. socket = %(base)/%(project)/%(project).sock  //Unix套接字地址
  10. chmod-socket = 664  //设置套接字权限
  11. vacuum = true  //项目停止自动清理

 

创建自启动脚本

在etc/init/目录下创建uwsgi.conf  文件用于自启动服务

  1. sudo vi /etc/init/uwsgi.conf

 

自启动服务内容包含

  1. description "uWSGI application server in Emperor mode"
  2. start on runlevel [2345]
  3. stop on runlevel [!2345]
  4. setuid root
  5. setgid www-data
  6. exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
  • 服务内容描述
  • 启动级别
  • 停止权限
  • 运行的用户名
  • 运行的组
  • 在Emperor模式下启动uWSGI并传入我们存储配置文件的目录。

 

安装nginx

  1. sudo apt-get install nginx

创建nginx配置文件

  1. sudo vi /etc/nginx/sites-available/firstsite

配置内容

  1. server {
  2.     listen 80;
  3.     server_name firstsite.com www.firstsite.com;
  4.     location /static/ {
  5.         root /root/firstsite;
  6.     }
  7.     location / {
  8.         include         uwsgi_params;
  9.         uwsgi_pass      unix:/root/firstsite/firstsite.sock;
  10.     }
  11. }

注释版:

  1. server {
  2.     listen 80;  //端口
  3.     server_name firstsite.com www.firstsite.com;  //绑定的域名,多个域名中间空格隔开
  4.     location /static/ {
  5.         root /root/firstsite;   //静态文件的地址
  6.     }
  7.     location / {
  8.         include         uwsgi_params;
  9.         uwsgi_pass      unix:/root/firstsite/firstsite.sock;  //套接字位置
  10.     }
  11. }

nginx配置文件语法检测

  1. sudo service nginx configtest

 

最后处理

软连接sites-enabled目录

  1. sudo ln -s /etc/nginx/sites-available/firstsite /etc/nginx/sites-enabled

重启nginx

  1. sudo service nginx restart

启动uwsgi

  1. sudo service uwsgi start

扩展阅读

  1. #cat 的用途是查看
  2. cat /var/log/nginx/access.log  #网站日志
  3. cat /var/log/nginx/error.log  #系统日志
  1. sudo service nginx start  //启动nginx
  2. sudo service nginx stop  //停止nginx
  3. sudo service uwsgi restart  //重启restart
  4. sudo service uwsgi stop //停止uwsgi

 

李金龙

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: