Ubuntu上部署Django项目

版权声明:慢半帧 https://blog.csdn.net/Py1807A/article/details/84258651

首先我的操作系统是ubuntu-18.04-desktop-amd64,Django1.11,Python3.56,nginx和uwsgi是直接下载的最新版(2018-11-18下载的)。

一.连接远程服务器

    一般购买的服务器都会默认可用xsheel等工具连接。
    在虚拟机上实验或者服务器没有开启远程连接权限的可参考-->[ \[ubuntu上实现远程访问和ftp文件上传\]](http://www.manbanzhen.top/?p=84)[(安全要求高的话可以另找方法,因此方法开启的是root权限)

二.安装python环境

    安装python3
    sudo apt-get install python3
    安装pip3
    sudo apt-get install pip3
    

PS:可以在此步骤设置虚拟环境,我在服务器上试了几次没成功,就没有配置虚拟环境,故略过。(配置虚拟环境和不配置基本区别不大(别喷))

三.把项目打包完成传到服务器存放的文件夹

1.远程传输到服务器上可以参考
2.远程服务器或虚拟机开启远程文件传输方法: [ubuntu上实现远程访问和ftp文件上传][2](同样,安全要求高的话略过,一般购买的服务器都会配置好的)

四.安装所需数据库和所需要的库

1.安装数据库(我用的mysql)
sudo apt-get update
sudo apt-get install mysql-server
2.安装django(我用的版本是1.11)
sudo apt-get install django==1.11
3.导出环境所需要的所有库的名称
   切换到项目目录
   1.cd /home/manbanzhen/myproject/
   导出项目所需的所有库
   2.pip3 freeze > requirements.txt(这时在我们项目文件夹中会出现一个 requirements.txt 的文件)
   安装需要的库
   3.sudo pip3 install -r requirements.txt
(python3 manage.py runserver  < --> 测试是否所需的环境都安装成功)

五.创建静态文件文件夹并收集静态文件

在项目文件夹下创建文件夹:mkdir static_file 在setting.py文件中 添加 STATIC_ROOT =
'static_file文件夹的绝对路径' 然后执行: python manage.py collectstatic    (收集静态文件)

六.安装uwsgi

sudo pip3 install uwsgi

安装成功之后,我们进入项目根目录/home/mabanzhen/projects新建一个 uwsgi.ini 文件,在里面输入代码:
enter image description here 要留意里面的项目路径和指定uwsgi文件,看清楚你的文件路径填写。

七.创建数据库及同步数据库

1.进入数据库,创建相应名称的数据库
2.在setting.py中修改对应的数据库连接信息
3.同步和迁移数据库
  python3 manage.py makemigrations
  python3 manage.py migrate

八.下载nginx并配置

sudo apt-get install nginx 
cd /etc/nginx  
 修改 nginx.conf

在这里插入图片描述

注意项目路径和静态资源的文件路径。
server_name:这里填你的域名或IP。
(上图中是我截图别人的)
进入/usr/local/nginx/sbin/目录
执行下面语句启动
nginx ./nginx

九.启动uwsgi

切换进入到项目的根目录
cd /home/manbanzhen/myproject/
启动
uwsgi --ini uwsgi.ini


现在就可以在浏览器中输入你的域名或IP可以访问啦!!!


uwsgi相关命令:

uwsgi --ini uwsgi.ini 启动项目 
uwsgi --stop uwsgi.pid 停止项目  
uwsgi--reload uwsgi.pid 重启项目   

nginx相关命令:

cd /usr/local/nginx/sbin/ ----- ./nginx ----- 启动nginx 
  cd /usr/local/nginx/sbin/ ----- ./nginx -s reload ----- 重启nginx
  ps--ef|grep nginx -----               快速停止
  kill -TERM 2132 或 kill -INT 2132 ----- 杀死进程   
  pkill -9 nginx ----- 强制停止   

以上是我在Ubuntu上部署Django项目时的一些笔记;可能会存在一些错误,如果发现,请底下评论联系我,我将积极进行修改。 参考资料链接:
https://www.django.cn/article/show-22.html
https://www.cnblogs.com/codingcloud/p/5095066.html
https://blog.csdn.net/fengzq15/article/details/78633827
https://blog.csdn.net/nancy50/article/details/81080693

还有一些参考未放上来,感谢所有。

展开阅读全文

没有更多推荐了,返回首页