宝塔面板部署Django项目图文教程

Django是一个由Python写成的Web应用框架,它主要目的是简便、快速的开发数据库驱动的网站。本教程将介绍下如何在宝塔面板中快速部署Django项目。

1、部署Django项目我们一般都推荐使用Linux操作系统,这样能更加效率的运行Django。例如,这里我们开通了一台全新的RAKsmart美国服务器,并已安装好CentOS系统。然后使用PuTTY或Xshell等SSH工具登录该Linux服务器。

2、成功登录到Linux服务器后,运行下面命令在系统根目录上创建WWW目录。

mkdir /www

这个目录主要是用于存放宝塔面板和网站(项目)数据的。如果服务器有多个数据盘,建议把磁盘挂在到 /www目录下。

3、接下来安装宝塔面板。宝塔Linux面板安装比较简单,我们可通过命令行或在线安装进行操作。推荐阅读:《RAKsmart服务器安装Linux宝塔面板教程》

4、宝塔面板安装成功后,我们会看到类似下面的信息:包含了宝塔面板的登录地址、用户名和登录密码,复制并保存好这些信息,以便访问宝塔面板。

宝塔面板部署Django项目图文教程插图

5、在浏览器里访问前文保存的登录地址,该地址是用来登录宝塔面板,管理宝塔面板的。输入用户名和登录密码后,进入宝塔Linux面板后台管理界面。

宝塔面板部署Django项目图文教程插图1

这里可根据实际需要一键安装所需的环境,选择合适的Nginx、MySQL、PHP等应用版本后,点击一键安装,系统将会自动开始安装过程,耐心等待一段时间即可。

6、基本环境配置好后,我们在左边的“软件管理”里选择“宝塔插件”,找到“Python项目管理器”这个插件进行安装。安装成功后,点击Python项目管理器的设置链接,在版本管理里安装我们需要的Python版本。

宝塔面板部署Django项目图文教程插图2

7、添加项目站点。预先解析好域名,如果没有域名就填该RAKsmart美国服务器的外部IP地址,然后创建站点。

宝塔面板部署Django项目图文教程插图3

8、创建好后,点击根目录,点击终端,进入当前目录下的终端,如下图所示:

宝塔面板部署Django项目图文教程插图4

9、在网站目录下运行:

python3 -m venv venv

激活虚拟环境:

source venv/bin/activate

以下所有的服务器操作,都要在网站目录下,并且进入到虚拟环境!!用宝塔面板或者用Xftp软件,将本地调试好的网站上传到服务器新建的目录中。

宝塔面板部署Django项目图文教程插图5

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

Pip freeze > requirements.txt

宝塔面板部署Django项目图文教程插图6

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

pip3 install -r requirements.txt

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

pip3 install asgiref

pip3 install Django

安装uwsgi

pip3 install uwsgi

安装MySQL数据库接口。

pip3 install mysqlclient

在项目包下找到setting.py,配置数据库连接(注意数据库用户名及密码,以及HOST项)。然后用系统里面的数据库工具增加需要的数据库。

宝塔面板部署Django项目图文教程插图7

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

python3 manage.py makemigrations

python3 manage.py migrate

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

11、在项目目录创建一个deploy的文件夹,用来存放uwsgi的配置文件及日志文件!在该文件夹下分别创建一个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/idcspy.com

module = myobject.wsgi

home = /www/wwwroot/idcspy.com/venv

master = true

processes = 10

threads = 2

chmod-socket = 666

vacuum = true

daemonize = /www/wwwroot/idcspy.com/deploy/uwsgi.log

pidfile = /www/wwwroot/idcspy.com/deploy/uwsgi.pid

具体配置根据站点的实际情况进行修改即可。

12、uwsgi配置完成之后,还需修改网站Nginx的配置文件。其中8000端口和uwsgi.ini配置对应,params和deploy文件夹内的对应。

13、基本配置完成后,便可启动服务。

启动uwsgi(虚拟环境下)

uwsgi –ini deploy/uwsgi.ini

重启uwsgi

uwsgi –reload deploy/uwsgi.pid

停止uwgi

uwsgi –stop deploy/uwsgi.pid

THE END
点赞493 分享