| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> ubuntu 20.04.4 安装部署django应用记录(踩坑,再踩坑) -> 正文阅读 |
|
[系统运维]ubuntu 20.04.4 安装部署django应用记录(踩坑,再踩坑) |
1、安装ubuntu 经过测试网易云下载速度最快,地址如下: 2、安装ubuntu 文章后面14节提到了要设置账号密码信息,记得修改 3、更新 ubuntu 软件源,推荐清华镜像站,写的很清楚 4、更新可安装软件包,及更新已安装软件版本
5、安装 net-tools? 系统默认没有安装net-tools,因此无法使用ifconfig,需要手动安装
6、修改固定IP地址 这里可以参考我之前记录的过程,时隔多年,依然是一把过 7、安装ssh 如果安装的时候忽略了ssh的安装,这里需要再安装下,很简单
8、测试ssh
username 需替换成安装系统时的用户名,后面的IP地址已ifconfig查到的为准 回车后输入密码即可登录系统 * 阿里云等服务器需开防火墙端口。 9、测试 SFTP 服务器远程管理,windows用xshell secureCRT,在macos环境提供一个利器transmit,不用任何设置,即可上传成功。 10、修改 pip3 源
?==========? ?至此 ubuntu 部分安装完毕? ?========== 10、安装、测试nginx
安装后用用浏览器访问? xxx.xxx.xxx.xxx即可访问,看到下方图片即表示安装成功,nginx主要为开机启动且提供不间断网络访问的伺服程序 11、安装、测试 django
如果出现了下面图片即表示安装成功。 *这时还不能网络访问,因为没有打开允许IP地址的选项,因为是linux没有界面,本机也无法看到状态,具体修改内容另发文再记录。 12、安装、测试 uwsgi
uwsgi --http :8000 --wsgi-file ./django-admin/wsgi.py 如果没有报错,就应该能访问到刚才和django默认页面一样的页面了 * 我在自己装的服务器上安装uwsgi就会出现打不开,找不到路径的情况,在阿里云的服务器上就有一个较长时间的编译过程,我把图截下来了 在我自己的设备上则是下面的界面,我还特意卸载和重安装了,但没有 building wheel for uwsgi的部分。 ?最后找了一些文章通过源码安装解决了这个问题,不知道会不会下次还遇到这样的问题,大家可以自行搜索学习,这个问题以后装机再考虑解决吧 ?==========? ?至此 程序安装完成? ?========== 13、? nginx + uwsgi + django 联调 这个问题困扰了我很久,因为一直在学习编程序就没太重视,后来程序编辑的差不多了,看了很多文章说这块,总是感觉很困难,这里调试我的一个应用,终于成功了,耗时10小时,在这里记录下。 13.1、NGINX nginx是这里最简单的部分,nginx目录如下,默认系统安装好的时候调用的是default的解释文件,
这个文件里只有基本配置,如果正常上线部署应该是在 /etc/nginx/conf.d目录里新建配置文件,默认的则失效(个人理解没有验证) 因此default是最简配置,方便学习,我把default里的所有注释去掉,内容如下:
这里我解释下各个模块的意思: server:核心模块,相当于一个虚拟主机,因此可以有多个虚拟主机 加# 注释的三句是我后来添加的,IP地址就不说了 include /etc/nginx/uwsgi_params;? 这句话说明要加载nginx自带的uwsgi的解释器,装NGINX的时候就有,就在/etc/nginx/目录下,相当于开启了nginx转发到uwsgi的解释通道; uwsgi_pass 127.0.0.1:8010? 是uwsgi内网监听的接口,uwsgi通过ini方式启动的时候,端口只为内部服务,这时nginx相当于把80接口的对UWSGI的访问全转发到127.0.0.1:8010,这个地址上,实现了对于python程序的解释转发; 把 # 注释的部分放开就相当于nginx调试完毕,这时再访问80端口则出现下面的页面: 这个表示nginx启动了,但是转发请求被拒绝或没有响应了,因为uwsgi还没有配置,这就是正确的反馈。 ?13.2、uwsgi 这块就是坑了我将近10个小时的地方,我分别在根目录下将我开发的软件和一个django的默认初识环境放在一起测试 django_test? ? ? ? 是初始应用 1、在两个目录下执行启动命令均可看到界面 ????????python3 manage.py runserver 0.0.0.0:8000 2、使用uwsgi启动 uwsgi --http :8020 -w api_2.wsgi 也是June可启用,只是api_2失去了对静态文件的解析 3、使用 ini 方式启动 这里是卡了最长的时间,django_test 一下就成功了,配置如下:
socket:是监听内部从nginx发过来的端口请求,如果是从外网访问会显示500错误,我卡这里好久,明明收到了请求,为啥不返回信息呢,后来看了很多文章才发现,之前的启动命令?uwsgi --http :8020 -w api_2.wsgi 是响应http协议对8020端口的访问请求,ini文件是socket = :8010,只响应接口的请求,所以不对外网访问,这个事终于明白了; chdir:启动路径,因为django里的项目名和默认应用名称是一样的,因此chdir截止在项目名称 module:是模块名称,也是项目启动的uwsgi.py文件,所以是项目名称+启动文件的形式; pythonpath:是查了很多文章说同时安装2.x和3.x会冲突,就写了个路径; 其他素材都可以查到就不说了,启动 uwsgi --ini django_test.ini 成功启动!!! 但是同样的配置放在api_2上就不行了 无论怎么调模块都不行,踩的坑包括路径有问题,直接指定wsgi.py的启动绝对路径,最终实际上只改了一句话,因为我编写的应用里有很多应用名称,所以要标明,有的文章提了这个问题,但因为各种场景不理解,没有想到,最终终于成功了。
就是这句:module = api_2.wsgi:application 至此? uwsgi --ini api.ini 一键启动,访问成功 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 3:43:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |