休憩小站!

补充能量,继续奋斗!

宝塔面板部署Django项目教程(手把手),Nginx+uwsgi+Django,阿里云多网站

引言:

        近期学习了python编程,然后学了一些Django框架做网站,在本机测试没有问题,一直想架设在一台服务器上,于是就在阿里云上租了一台服务器,找了一些教程,发现都有问题,尤其里面的Python项目管理器更是部署不成功,于是乎,经过自行研究,终于得法,分享如下:

image.png


一、测试环境

      系统:centos 7.9

      CPU:1核

      内存:2G

二、安装宝塔面板

image.png

输入命令:

           yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

后面会全自动完成,完成后跳出登录方式。

image.png

进入宝塔面板后,按提示框中模式一Nginx的方式安装组件,如果没有选也没有关系,在软件商店中把下图中的软件安装好。

image.png

三、创建站点及数据库

    预先解析好域名,如果没有域名就填服务器的外部IP地址。然后创建站点。

image.png

创建好后,点击根目录,点击终端,进入当前目录下的终端(这点非常重要,很多不成功的原因就是在这里)

image.png


在网站目录下运行:

python3 -m venv venv

激活虚拟环境:

source venv/bin/activate

!!一下所有的服务器操作,都要在网站目录下,并且进入到虚拟环境!!

用宝塔面面板或者用xftp软件,将本地调试好的网站上传到服务器新建的目录中。

image.png

在本地电脑用命令将Python需要的环境进行安装

Pip freeze > requirements.txt



image.png


在服务器终端虚拟环境下安装依赖

pip3 install -r requirements.txt

    

如果pip3 install -r requirements.txt报错,就手动一个一个安装

pip3 install asgiref

pip3 install Django

----------一个一个来

image.png


安装uwsgi

pip3 install uwsgi

安装mysql数据库接口,执行

 pip3 install mysqlclient


配置数据库连接

在项目包下找到setting.py,基本配置如下(因为测试不成功我改了几次,最后发现是host的原因,不知道具体原因是什么。:)

image.pngimage.png

用系统里面的数据库工具增加需要的数据库

image.png


在终端虚拟环境下分别执行这两条命令

python3 manage.py makemigrations

python3 manage.py migrate

数据库需要初始数据的,自行导入数据。

四、配置项目

在项目目录创建一个deploy的文件夹,用来存放uwsgi的配置文件及日志文件!

image.png


我们在该文件夹下分别创建一个params的文件与uwsgi.ini的文件。

params中的内容如下:

uwsgi_param  QUERY_STRING       $query_string;

uwsgi_param  REQUEST_METHOD       $request_method;

uwsgi_param  CONTENT_TYPE           $content_type;

uwsgi_param  CONTENT_LENGTH        $content_length;

 

uwsgi_param  REQUEST_URI             $request_uri;

uwsgi_param  PATH_INFO           $document_uri;

uwsgi_param  DOCUMENT_ROOT        $document_root;

uwsgi_param  SERVER_PROTOCOL     $server_protocol;

uwsgi_param  REQUEST_SCHEME       $scheme;

uwsgi_param  HTTPS                      $https if_not_empty;

 

uwsgi_param  REMOTE_ADDR           $remote_addr;

uwsgi_param  REMOTE_PORT            $remote_port;

uwsgi_param  SERVER_PORT            $server_port;

uwsgi_param  SERVER_NAME            $server_name;

这个文件中的内容我们可以不用去深究是什么意思,直接拿去用就可以了,他主要的目的就是转发非静态文件请求到uwsgi服务!


uwsgi.ini文件中的内容如下:

[uwsgi]

socket = 127.0.0.1:8000

chdir = /www/wwwroot/witpen.cn

module = myobject.wsgi

home = /www/wwwroot/witpen.cn/venv

master = true

processes = 10

threads = 2

chmod-socket = 666

vacuum = true

daemonize = /www/wwwroot/witpen.cn/deploy/uwsgi.log

pidfile = /www/wwwroot/witpen.cn/deploy/uwsgi.pid

每一项的配置含义自己领悟一下,大家看情况修改为自己的即可!(可以参考别的网站对每行的定义)

image.png



uwsgi配置完成之后,去修改网站Nginx的配置文件!

image.png

主要一下要修改内容,其它都可以按上图来写,其中8000端口和uwsgi.ini配置对应,params和deploy文件夹内的对应。

到现在基本全配置完了。

五、启动服务

启动uwsgi(虚拟环境下)

uwsgi --ini deploy/uwsgi.ini

重启uwsgi

uwsgi --reload deploy/uwsgi.pid

停止uwgi

uwsgi --stop deploy/uwsgi.pid


总结:

    无论是用宝塔还是服务器直接部署django,都逃不出配置Nginx使其正确加载静态文件,配置uwsgi,关联nginxuwsgi这几个步骤,掌握了这几个核心步骤,无论何种方法,我们配置中设置的那几个文件均适用,部署也就变得更加容易和简单!

       如果再有问题,欢迎留言讨论。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年3月    »
12
3456789
10111213141516
17181920212223
24252627282930
31
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
      友情链接
      • 订阅本站的 RSS 2.0 新闻聚合

      Powered By Z-BlogPHP 1.7.2

      Copyright Your WebSite.Some Rights Reserved.

      沪ICP备2022026513号-1