欢迎光临散文网 会员登陆 & 注册

腾讯云(Ubuntu)部署Django(uwsgi)详细版

2023-02-27 23:35 作者:HangzhouLoser  | 我要投稿

零、相关说明

通过命令行(uwsgi)与宝塔面板的配合使用,在腾讯云部署Django项目。宝塔面板的Python项目管理器不是很好用,但用于文件管理以及Nginx配置会带来不少便利,因此这篇文档的部分操作是在宝塔面板下完成的。由于项目少,体量也不大,所以没有使用虚拟环境。这里所有的命令都是运行过的,并且单行放上来,无脑复制粘贴就行。

一、安装系统,解锁root登陆以及安装宝塔面板

1.1、安装ubuntu操作系统

进入腾讯云,在轻量应用服务器的控制台界面,选择【更多操作】,【重装系统】

轻量应用服务器控制台,更多操作点开后再点重装系统

【从零开始】,【Ubuntu】,【22.04 LTS】,这一步要微信扫码确认

操作系统选择Ubuntu

1.2、解锁root登陆

【远程登陆】,【一键登录】,登陆后腾讯的OrcaTerm会提示安装增强功能,【点击安装】。安装后再浏览器底部就会出现服务器的资源占用情况。

设置root密码,输入命令:

命令设置好会提示密码更新成功

输入两次相同的密码,更新root,注意,linux系统输入密码是看不见提示的

继续配置【sshd_config】,输入命令:

进入到VI编辑器的界面,点击【i】键,会提示进入到编辑模式

看到【insert】的状态才能编辑

找到【# Authentication:】配置项,去掉【PermitRootLogin】最前面的【#】,删除【prohibit-password】,替换为【yes】。

在【PermitRootLogin】下面增加一行,【PasswordAuthentication yes】,修改后的【sshd_config】如下图:

这是修改后的【sshd_config】


点击【esc】键,退出编辑模式,点击【:】(冒号)键,最下方会出现【:】,输入【wq】(保存与退出的指令),回车,退出VI编辑器后,再次回到OrcaTerm终端。

重启ssh服务,输入命令:

测试root是否可以登录,输入命令:

看到用户名变成root即可,以后的操作也都是用root账户进行

登录用户已经为root

1.3、安装宝塔面板

进入宝塔铭板主页:https://www.bt.cn/new/download.html

点击【立即免费安装】,输入服务器的IP地址,以及root的登陆密码,点击【立即安装到服务器】

输入服务器IP地址,root账户的密码

个人感觉在线安装更靠谱,我也试过用脚本安装,但出现过Nginx错误的情况。

安装宝塔面板和LNMP的瞬间比较久,建议先注册一个宝塔面板的账号,后面用得到。

安装以后千万不要关闭页面,安装完成会弹出一个登陆的信息,要注意保存。

点击安装后,会弹出界面,选择相关的软件,选择【LNMP】,除了FTP,建议其余都安装,版本根据自己的情况来选择。

选择LNMP环境

等待宝塔面板安装好,将登陆的用户名密码保存到云笔记。


二、宝塔面板登陆,安装Python与uwsgi,以及Django的运行环境

2.1、宝塔面板登陆

宝塔面板的账号密码要保存好,【复制面板信息】,建议保存到云笔记,并且将网址添加到收藏夹。

进入腾讯云控制台,【防火墙】,【添加规则】,放行8888(宝塔面板),以及8000(Django),3306(mysql)三个端口。

注意:如果使用脚本安装,宝塔面板的端口可能是随机的,所以要看链接判断端口号。

放行宝塔面板与Django的端口

登陆后需要将用户协议滑到底,勾选【我已阅读并同意“《用户协议》”】,【进入面板】

【绑定宝塔账号】,输入宝塔的用户名与密码,没有的话要先注册,网址:https://www.bt.cn/register.html。

安装好宝塔面板,先进入宝塔面板确认一下软件的安装情况,如果LNMP没装上,又很难解决,建议重装系统,重装宝塔面板,宝塔面板装好,墙裂建议做一个镜像,这样以后就避免了安装宝塔这个漫长的过程了。

2.2、安装Python与uwsgi

升级系统,输入命令:

在OrcaTerm终端下,查看Python版本,输入命令:

注意:大写的【V】。

系统已经安装了3.10.6,如果愿意,可以下载最新的3.11安装,输入命令:

在根目录下,下载python3.11,输入命令:

解压Python的安装包,输入命令:

进入解压的文件夹,输入命令:

进行编译,输入命令:

优化,输入命令:

安装,输入命令:

软链接python3,输入命令:

软链接pip3,输入命令:

将python3加入shell环境变量,输入命令:

在VI编辑器中输入【i】,进入编辑模式,加入:

PATH=$PATH:$HOME/bin:/usr/local/python3/bin

export PATH

环境变量加入python3

按【esc】,输入【:】,输入【wq】,回车退出VI编辑器。

初始化shell环境变量,让python3软链接生效,输入命令

查看python3版本,输入命令:

可以看到python3版本已经更新了。

查看软链接是否生效

安装uwsgi,输入命令:

查看uwsgi是否安装成功,输入命令:

出现版本信息即可

查看uwsgi是否生效

2.3、安装Django的运行环境

进入pycharm的终端,安装pipreqs,输入命令

通过pipreqs生成requirements.txt文件,输入命令:

在项目目录下找到requirements.txt文件,打开查看是否有项目运行所需要的环境软件,

requirements.txt文件的内容是否正确

将项目目录下的文件全选,Ctrl+左键单击venv文件夹,将虚拟环境去除,其余所有文件要锁打包。

venv以外的文件压缩打包

进入宝塔面板,【文件】,【根目录】,【www】,【wwwroot】

删除现有的全部文件

清空wwwroot目录

在宝塔面板,wwwroot目录下,新建项目同名文件夹

在wwwroot目录下,页面空白处点右键,新建文件夹,建立项目同名的文件夹

进入新建的文件夹upload,上传刚刚打包的项目文件。

上传打包文件

双击压缩包解压,确认目录的结构是否与本地一致。项目目录文件夹,包含了项目同名的目录,app同名的目录,以及static文件夹(静态文件),templates文件夹(模板文件),media文件夹(上传文件),以及manage.py,requirements.txt等文件。

确认项目的目录结构是否正确

回到OrcaTerm,命令行进入项目目录,输入命令:

upload换成你自己的项目目录

安装Django项目运行环境,输入命令:

查看python3 site-package路径,输入命令:

获得python3 site-package路径

python3 site-package所在位置

三、配置uwsgi

在本地电脑,新建与项目同名的ini文件,例如upload.ini,使用任意的编辑器编辑,记事本都没问题。先用【#】注释掉socket连接,直接启动http服务测试,ini文件的内容如下:

特别注意两个路径别写错了,路径要修改!

根据自己的情况配置路径信息

编辑器再次新建文件,名字:【uwsgi_params】下文一字不差贴上去

是的!没有扩展名!

保存以后通过宝塔面板上传。宝塔面板,进入【文件】,【项目目录】【上传】

将刚刚做好的ini文件以及uwsgi_params文件上传到项目目录
可以两个文件一起传

在项目目录下,进入项目同名的文件夹,找到【settings.py】,双击打开,修改ALLOWED_HOSTS,改好的代码如下:

保存后退出,进入到ocraterm,命令行进入到项目目录,启动uwsgi,输入命令:

回到宝塔面板,查看项目目录下的【uwsgi.log】文件,确认Django运行环境是否正确,app是否启动,以及http服务器是否启动。

确认uwsgi的运行情况是否正常

宝塔面板,【安全】,关闭宝塔的防火墙,防火墙有腾讯云的一个就足够了。

打开本地的浏览器,输入云服务器ip:8000,跳出提示,不能连接数据库,下一节配置数据库。

数据库连接出错提示,因为我们还没有配置数据库

四、配置数据库

进入本地的数据库,导出数据。

宝塔面板里【数据库】,【root】密码,重置数据库root账号密码,注意,这是数据库的root,不是系统的root。

重置数据库root账号密码

提交以后,进入phpmyadmin,输入 root账号和设置的密码登陆。

依据项目【settings.py】中的设置,新建数据库【test】。

选择【test】,【权限】,为test数据库新建用户

为test数据库新建用户

输入用户名和密码

为test数据库新建用户

为test数据库导入数据

导入数据库

浏览器输入IP+端口,测试数据库是否连通。

已经没有报错了

五、配置Nginx

宝塔面板,【文件】,进入项目的根目录,修改【upload.ini】文件,将http注释掉,socket前面的【#】去掉,准备与Nginx连接。

http切换成socket

宝塔面板,【网站】,【添加站点】

开始添加站点

输入域名或者IP地址,备注自己填,根目录就是Django项目所在的目录,数据库选择mysql,账号和密码就是我们刚才为test数据库设置账号密码,php版本选纯静态。

添加站点

本地新建一个文本文件,名字随意,但建议名字更加易懂,比如项目名_nginx.txt,用任意的编辑器打开。拷贝内容如下:

路径,端口要填写准确

修改好内容全选,复制,是复制文本内容,不是文件。

宝塔面板,【网站】,【网站名】,【配置文件】,

将监听的文件类型注释掉,

下方粘贴刚刚修改的文本内容,记得点保存!

修改网站配置

重启uwsgi,进入OrcaTerm,关闭uwsgi进程,输入命令:

再次运行uwsgi,输入命令:

老规矩,查看uwsgi的日志,没有问题删掉宝塔生成的index.html,404.html。

进入宝塔面板首页,重启Nginx。

重启Nginx

浏览器情况缓存,输入IP地址,注意,没有端口号了。已经正常出现页面,点击上传,文件已经上传,并且在首页显示了文件名。

Nginx配置好以后不用输入端口号了


腾讯云(Ubuntu)部署Django(uwsgi)详细版的评论 (共 条)

分享到微博请遵守国家法律