巨蟒python全栈开发linux之centos6

2024-02-28 23:10

本文主要是介绍巨蟒python全栈开发linux之centos6,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.nginx复习

1.nginx是什么
nginx是支持反向代理,负载均衡,且可以实现web服务器的软件

在129服务器中查看,我们使用的是淘宝提供的tengine,也是一种nginx服务器

我们下载的是tengine-2.3.0.tar.gz解压之后得到tengine-2.3.0,下面我们cd进入到tengine中

我们发现,下图会有一个脚本文件configure

我们安装好的nginx在opt目录下面的s18tngx中

我们再cd到tengine中的源码包中,

上图最后一步的命令是指定安装路径

我们需要运行的是后两步的命令.

 

运行完之后,我们主要是操作上边的conf这个文件夹

没事我们就pwd一下,看一下我们的绝对路径是什么.ls命令其实就是  ls点

我们需要关注的就是nginx.conf

2.nginx如何实现404页面,access.log访问日志,多虚拟主机,反向代理等功能nginx如果出现403(权限不足)的问题:1.你的nginx代码放在了/root下2.你的客户端被禁止访问了,去找nginx.conf中的配置

我们通过查看上边的这一条命令,进行查看浏览器的访问,

 

 

出现403代表没有权限,也就是权限不足,404代表找不到,也就是请求的url不正确,服务器上找不到这个地址

 

我们可以捕捉到这个访问的浏览器ip地址:

我们看到的"主人进程"是root, 而工作进程是nobody普通用户,  普通用户不能读取/root

 

nginx如果出现403(权限不足)的问题:1.你的nginx代码放在了/root下2.你的客户端被禁止访问了,去找nginx.conf中的配置

第一种排除了,我们看第二种.

老师的注释:

我的注释:

events表示时间驱动,通过大括号掌控

 

参考:解决方案:将文件下载到windows中,进行查看研究,解释修改等等

shift+%表示的是找这两个括号

虚拟主机server,这个是有自上到下 的加载顺序的

 比如:在浏览器上输入:www.s18sssssssssss.com如果不存就解析成相对应的ip,没有就报错.

我们看到显示,找不到"主机名"

 但是,我们ping通了,下面的假的域名,并且解析出了ip,我们是在windows中的cmd解析出来的.

我们在windows中解析这个自定义的域名,就得修改windows的hosts文件.

现在,如果我们想在linux中,也想ping www.s18dnf.com怎么处理?

下面是我们解析的路径:

 

 我们将两个域名解析到一个IP上边:

 现在,我们再增加一个taobao.com

清除缓存:

这个时候,我们再次访问,得到上边的403界面

DNS 的解析流程比较麻烦

etc/hosts文件的优先性,是高于DNS解析的.

 DNS其实就是将域名转换成IP的过程,最后我们删掉自己写的这个路径对应的淘宝地址.

 这个时候,我们再修改etc下面的文件resolv.conf文件

原来的样子:

我们现在修改成:

 

现在,我们发现结果已经ping不通了

/etc/resolv.conf是填写dns记录的文件

我们再次打开,

我们再写一个备用的ip

保存,退出.

一个是114的一个是腾讯的

这个时候我们再ping的时候,是在腾讯和114这两个大的IP中寻找

因为找不到,所以显示"未知的名称或服务"

我们再linux再次写入

 

 

我们需要修改etc下面的文件hosts

我们再写一个ip和域名

 

 保存退出,我们再次ping

 

这个时候,我们再次ping就可以ping通了.

 也就是写了一个强制记录而已.

我们还是删掉这个记录,防止出错

这个时候,我们再次打开nginx配置管理文件

 

 我们必须将域名写在server_name后边,这样nginx才会识别.

我们在nginx.conf配置了两个server,nginx是怎么检测出来的呢?ip和端口都一样,就是通过不同的server_name检测出来的.

这就是基于域名的访问,如果是基于IP的访问,那么就会一直走第一个.

快捷键:

  dd就是删除的快捷键

  u是撤销

  o

 

保存,退出

修改完的代码,唯一要做的就是重启.

这个时候,我们会发现80已经启用了

端口不能用了,我们可以杀死之后,再次查看,然后再次开启nginx,具体见下图操作

这个时候,我们再平滑加载''

 下图表示,检测nginx的语法,显示的结果是没有问题的

 

如果想要重启怎么操作?

查看帮助,文档看一下怎么重启

ps =>kill也是可以的,如果这种方式不会用的话

再次访问,已经通了

 

 我们自己创建的两个文件夹 dnf和hanju

 

 我们只需要将网站和地址修改就行了.

 

如将dnf这个地址转到,"我该睡了"?

 

 原来的内容

我们只需要将root对应的路径修改成,下图所示内容即可:

保存退出:

然后,我们重新启动nginx

再次刷新:

如果没有下图所示的部分:

也就是说,加上这一行代码的优先级更高一些。

status是一个全路径匹配的东西。

如果瞎写,会报404错误,如下图

下面我们开始学习集群的概念。

 

2.集群介绍

 

3.nginx负载均衡配置1

参考第二篇blog

https://www.cnblogs.com/studybrother/p/10649285.html

4.nginx与项目部署1

  https://www.cnblogs.com/pyyu/p/9481344.html

crm项目部署
1.nginx + uwsgi + django + 虚拟环境 + supervisor  + mysql2.django的启动方式 python3 manage.py runserver 为什么不能在生产环境用?django只是一个web逻辑框架,它通过python3 manage.py runserver命令启动的socket服务端
是借助python内置的wsgi框架 wsgiref框架实现的
它是一个单机模块,单进程模块,性能很低因此在线上需要借助通过c语言编写的uwsgi这个web服务器软件,启动djangosanic 旋风小子
由低到高的性能框架
djano 
flask 
tornado
sanic 

 

3.在进行uwsgi启动django的时候,是需要找到wsgi.py这个文件模块的如果你报错提示 找不到application ,就是因为uwsgi  找不到wsgi.py 

这个问题无法避免,只能一步一步调试

 uwsgi就是通过wsgi.py文件里边的application启动的.

保存退出.

4.为什么要用nginx  和uwsgi?
nginx  可以解决uwsgi的静态文件问题,并且支持高并发请求,还能限流,保障后台服务器安全等等为什么要用uwsgi
因为uwsgi支持多进程 多线程的方式,性能很高,启动django性能更好,但是uwsgi不解析django的静态文件我们以后会收集所有的django项目静态文件,丢给nginx去处理

 

 nginx和uwsg中间有一个socket.接口,无法直接跳到django中,

 django处理静态文件的能力很低,nginx处理静态文件的能力很强.

5.准备crm代码

查看虚拟环境存放的目录

上边创建的两个虚拟环境也是两个文件夹.

 

 

 

注意,这种方式是用来调试代码的,以后上线需要用uwsgi处理.

这个时候,我们正常访问是可以的

账号是root@qq.com  密码是123456

输入密码和账户进入:

关键:我们记不住那么多的ip和端口,我们现在只想访问域名,这件事情应该怎么做?

通过什么技术手段?(运用反向代理,80是个代理,通过代理找到8000)

6.准备一个新的虚拟环境,去启动crm,使用virtualenvwrapper创建新的虚拟环境1.解决虚拟环境依赖的问题,也就是保障本地开发环境和线上一致性的问题在windows本地 通过pip3 freeze > requirements.txt就能将    python3解释器中所有的模块导出到这个文件中 2.将这个 requirements.txt  文件传输到服务器上,进行安装,就可以自动解决所有模块问题pip3 install -r requirements.txt 

 

所有的程序员都认识这个requirements.txt这个文档.

看一下文件内的内容:

现在我们退出这个虚拟环境:

现在我们再次新建一个新的虚拟环境

这个时候,新的虚拟环境就创建好了

拿到纯净的环境

我们需要的是,文件传输到服务器上解决依赖关系

安装完成之后,下图就是我们已经解决了文件的一致性的问题了

再看一下这个文件内的内容

上边就是解决环境不匹配问题的解决方法.

 如果是在windows里边的呢?

一种是将内容导入D盘,另一个是切换目录,再有一个是展示安装的包.

我们不可能一个一个安装.

打开之后,我们发现已经将本地的包名,写在了这个文件里边.

只需要将这个文件传递到服务器上安装即可.

再来一个操作,我们可以在windows里边写出了这个文件之后,复制文件内的内容,在linux中再touch一个文件写入内容.

很多事情都是很灵活的,要敢于向,敢于做事情.

这个名字可以随便起,但是这是一个约定俗成的写法,最好这样写.

 

现在我们的目的就是:用nginx反向代理到(uwsgi+django)

笔记真的很重要,一定要看

7.使用uwsgi启动crm项目
确保进入虚拟环境,然后安装uwsgiworkon nginx_crm下载uwsgi
pip3 install uwsgi 

简单看一下,下图这些命令

下面我们安装uwsgi

 我已经安装成了uwsgi,见下图

安装完成之后,我们再启动一个项目:

8.使用uwsgi命令启动django项目
uwsgi支持热加载的启动方式命令如下
uwsgi --http :8000 --module mysite.wsgi --py-autoreload=1 uwsgi --http :8088 --module Crm_Project.wsgi --http指定http协议启动在 8088端口--module 找到项目第二层的目录,里面的wsgi.py文件如果你想启动一个http页面,提供测试访问,就用--http参数如果你结合了nginx反向代理,必须用--socket参数 
uwsgi --socket :8000 --module Crm_Project.wsgi由于参数过多,这里引入配置文件的概念 叫做 uwsgi.ini     my.cnf    nginx.conf 

下图我们进入的是第一层

然后我们切换到第二层,找到wsgi.py

我们要确保的是,我们进入的是第一级目录

uwsgi --http :8088 --module Crm_Project.wsgi 

上边这条命令中表示的是  Crm_Project表示的是文件夹,wsgi表示的是wsgi.py文件

我们就这样用就可以了.

  module 找到项目第二层的目录,里面的wsgi.py文件

现在我们就启动一下这条命令:

warning不是很重要.

 

运行起来之后,我们访问

上边的login不可以访问,但是admin可以访问了.

 

 

 

 crm/login可以访问了

我们已经是开发了,内行应改看F12,注意,我们要看的位置

 

 也就是验证了我们前面说的:

uwsgi不解析django的静态文件

 面试题:

1.项目怎么部署的?:nginx+uwsgi

2.uwsgi是否支持热加载也就是热重启,在后台修改代码之后,立即生效?

 

我们再打开一个窗口

yyp相当于复制一行内容.

保存退出,

我们需要导入一个模块.我们退出查看一下:

退出.

模块是:

from django.shortcuts import render, redirect, reverse, HttpResponse

 重新打开,下面的模块:

退出,保存,后端没有任何的变化

再次访问,我们发现没有权限访问.

重新打开这个文件

 

我们将内容注释掉,然后保存退出

 

我们现在看不到效果,如何看到具体的热重启?

重新创建一个项目

下边的两张图都不是我们想要的结果 

 

 

 

我们进行数据库迁移一下:

下面,我们指定模块再次运行

启动后的页面:

运行admin,出现下面的结果:

 

 访问hello,得到的结果是Not found

现在,我们需要打开hello这个函数:

from django.shortcuts import render, redirect, reverse, HttpResponse

 

 

现在,我们想做的事情是,能否在启动项目的情况下,修改后端代码使其生效

保存,退出

这个时候,依然是加载不了的,

我们中断掉,重启加上参数就可以实现热重启了.

 

 

最后这一行代码,表示的就是开启了这样的一个功能

这时我们再次访问:

得到上边的结果:

 

现在我们修改逻辑代码:

保存退出

这个时候已经发生改变.

 10.配置crm收集所有的crm静态文件.

总结:

  编辑项目的settings.py 写入如下参数
  STATIC_ROOT= '/opt/crmstatic'

 

添加一个静态文件:

保存,退出

 

11.执行命令,收集crm所有的静态文件
python3 manage.py collectstatic

 

 

执行,进行收集内容,也就是在复制内容

 

132个静态文件,都会拷贝到/opt/crmstatic下面.

 

上图就是我们用到的所有静态文件了.

 我们也可以用tree命令看一下树状图,看一下目录结构:

我们可以将上边的文件,也就是说交给nginx处理,nginx更擅长处理静态文件.

#此时后端的配置完毕!!!!开始搞nginx 
#此时后端的配置完毕!!!!开始搞nginx 
#此时后端的配置完毕!!!!开始搞nginx 
#此时后端的配置完毕!!!!开始搞nginx 
#此时后端的配置完毕!!!!开始搞nginx 12.配置nginx,一是支持反向代理,二是支持静态文件加载
修改nginx.conf 代码如下#当用户访问 www.s18dnf.com的时候,就进入这个虚拟主机location / {uwsgi_pass  0.0.0.0:8000;include uwsgi_params;}#这个location是解决crm的静态文件的问题的
location /static  {
#alias参数 就是将/static转化为/opt/crmstatic ,也就找到了我们所有的静态文件
alias /opt/crmstatic;
}

先找到安装后的nginx目录,找到后,打开配置文件

我们以第一个主机为例,修改成反向代理服务器.

将上图中红框内的内容进行修改.

nginx和uWSGI之间有一个unix的socket,也就是一个桥梁,支持uwsgi协议的一个请求转发.

uwsgi_pass  应该填写公司运行的那台服务器,8000指代的是django运行的那个端口.

 include指代的是路由分发的那块.代表的是把外部信息导入进去.

8.使用uwsgi命令启动django项目
uwsgi支持热加载的启动方式命令如下
uwsgi --http :8000 --module mysite.wsgi --py-autoreload=1 uwsgi --http :8088 --module Crm_Project.wsgi --http指定http协议启动在 8088端口--module 找到项目第二层的目录,里面的wsgi.py文件如果你想启动一个http页面,提供测试访问,就用--http参数
如果你结合了nginx反向代理,必须用
--socket参数 uwsgi --socket :8000 --module Crm_Project.wsgi

我们在上边再写一遍笔记

我们先不做操作,先处理下边的内容

我们需要先关闭防火墙和开启nginx

 

 

我们再运行,访问:

我们无法访问这个页面.

 出现"无法正常访问网页的原因是:我们用的是http协议打开网页,而我们启动的却是uwsgi协议

还有一个是,代码串太长容易敲错,怎么处理这个问题?

由于参数过多,这里引入配置文件的概念 叫做 uwsgi.ini     my.cnf    nginx.conf 

 也就是说我们把启动文件的参数,写到一个文件中.

由于参数过多,这里引入配置文件的概念,叫做uwsgi.ini        my.cnf    nginx.conf以后还会有很多这样的配置文件
#正式启动环境在这里 #正式启动环境在这里 #正式启动环境在这里启动crm的配置文件如下 uwsgi.ini内容如下[uwsgi] # Django
-related settings # the base directory (full path) #填写项目的绝对路径(第一层路径) chdir = /opt/Crm_Project # Django's wsgi file #填写crm第二层目录下的wsgi.py文件的路径 module = Crm_Project.wsgi # the virtualenv (full path) #填写虚拟环境的绝对路径 home = /root/Envs/nginx_crm# process-related settings
#master代表这是一个主进程
master
= true # maximum number of worker processes #基于uwsgi的多进程,根据cpu来优化,有人根据cpu的3倍计算
processes
= 4 # the socket (use the full path to be safe

#如果你用了nginx反向代理,就填写socket参数
#如果你用了nginx反向代理,就填写socket参数
#如果你用了nginx反向代理,就填写socket参数
socket = 0.0.0.0:8000

 

#如果你没用nginx,想直接通过浏览器测试后端,使用http
#http = 0.0.0.0:8000

 

# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true




如何进入虚拟环境的绝对路径?

现在,我们需要创建一个ini文件,放在哪里是没有关系的,但是必须创建一个

 我们打开这个文件开始编辑

注意点:打开文件之后,不要在第一行插入东西,可能出现问题

确认没有问题之后,我们"保存",退出

此时的启动方式:

uwsgi --ini  uwsgi.ini

此时通过uwsgi --ini  uwsgi.ini方式启动代码

 

现在,我们启动了四个工作进程

此时,我们访问的是80端口,找到的是8000

下面我们进行下面的操作.

12.配置nginx,一是支持反向代理,二是支持静态文件加载
修改nginx.conf 代码如下#当用户访问 www.s18dnf.com的时候,就进入这个虚拟主机location / {uwsgi_pass  0.0.0.0:8000;include uwsgi_params;}#这个location是解决crm的静态文件的问题的
location /static  {
#alias参数 就是将/static转化为/opt/crmstatic ,也就找到了我们所有的静态文件
alias /opt/crmstatic;
}

在另一个窗口中打开这个文件.

 

 这个时候,我们只需要将下图的内容修改成下面的内容:

还没有修改完毕,我们先保存退出,再查看一下.

运行:

不对,上边是解释器运行的,这样是可以加载静态页面的.

再次访问运行

浏览器再次访问:(显示的是内部服务错误)

指的是我们后台的代码错误.

说明,我们没有wsgi这个对象.,也就是没有找到这个文件.

 

看一下,能不能如下图这样写

 

浏览器访问:

依然是这个问题:

 

 下面我们再次回到mysite进行处理

运行:如果是google可能回家再出来,原因是缓存,现在我们换成了"火狐浏览器"

 

 

 我们最后决定还是用谷歌进行调试一下:首先清除缓存,再访问

 

 

我们需要思考,丢失请求的url是怎样走的?这个问题

我们需要配置一个static的入口进行处理,具体如何配置?

我们先找到静态文件

我们看一下路径:

 

下面我们开始编辑:

这个时候,我们修改的内容如上图:

alias表示别名的意思,也就是将/static 换成 /opt/crmstatic

 

 这个时候,静态文件和返向代理都可以了.

12.

我们保存退出,

 

13.重启nginx,查看反向代理效果

我们先查看nginx是否有错,然后重启nginx

 

报错:

原因,缺少了一个分号

 

上图显示,就没有问题了.

现在我们应该如何访问?

我们直接访问80端口

结果:

现在,我们只需要将ip替换成域名就可以了.

用户名:root@qq.com

密码:123456

 

 

 原因,上边的重新启动的命令敲错了,我们需要的是下面的命令

这样重新启动,再次访问就可以了

 血淋淋的教训,注意这个黑框中区分大小写

 

 

 点击登录:

 

 这里边还有一个问题是:再次登录时会没有权限

 

注意项目要启用数据库

pymysql.err.OperationalError: (2003, “Can’t connect to MySQL server on ‘localhost’ ([Errno 111] Connection refused)”)

 

5.crm项目部署1(下面主要是我们创建虚拟环境)

day77将windows中的crm_project如何拿到linux,直接拖动是不可以的,原因:只能拖动一个,我们通过压缩包拖动

解压缩:

这个时候,我们看到了解压缩的文件

 我们现在需要安装虚拟环境:

先创建一个文件夹allenv,再在allenv安装virtualenvwrapper

这个时候,我们就安装成功了

这个时候,我们就看到了wrapper工具了

2.学习virtualenvwrapper工具升级版1.安装 pip3 install virtualenvwrapper2.配置个人环境变量配置文件,每次登陆都启动virtualenvwrapper工具vim ~/.bashrc 3.写入加载变量,使得virtualenvwrapper每次开机可使用export WORKON_HOME=~/Envs   #设置virtualenv的统一管理目录export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'  #添加virtualenvwrapper的参数,生成干净隔绝的环境export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3     #指定python解释器source /opt/python36/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本4.退出回话,重新登录,查看工具是否安装5.学习virtualenvwrapper工具的命令1.创建新的虚拟环境mkvirtualenv mycrm2.切换多个虚拟环境workon 虚拟环境的名字3.列出所有的虚拟环境目录lsvirtualenv 4.进入当前激活的虚拟环境的目录cdvirtualenv 

 

 

 添加四个参数:

查找文件路径,和上图对应

 

退出会话,重新登录,看一下是否生效

 

 再次登录,出现下边的信息

这个时候,我们再创建虚拟环境,创建完成后,,自动进入虚拟环境

退出虚拟环境

我们再创建一个虚拟环境

 

我们看一下有哪些虚拟环境

 下面,我们切换虚拟环境

现在我们进入mycrm虚拟环境,我们再进入Crm_Project项目

运行报错,我们查看报错

我们,我们再mycrm中安装django

 

安装完成后,我们再次运行:

报错,没有pymysql

我们再安装pymysql在这个虚拟环境中.

安装完成后,我们再次运行

报错:

这里边有一个坑,我们知道需要安装包,但是安装哪个包?

原因:

我们安装的包和模块之间不一定一致.

我们再django中找一下,见下图

安装成功,再次运行:

再次报错,见下图,没有链接mysql

我们需要安装mysql

查看安装,操作了哪些命令

4.还得解决crm项目运行所需的依赖环境1.手动解决pip3 install django==1.11.14pip3 install pymysqlpip3 install django-multiselectfield2.安装mysql数据库,支持crm业务
  #yum install mysql-server mysql -ymysql服务端是 mysqld mysql客户端有哪些? mysql
-uroot -p pymysql navicate pycharm mysql驱动 安装linux的mariadb服务端yum install mariadb-server mariadb mysql -y#启动mysql服务端systemctl start mariadb#检查mysql是否启动1.查进程ps -ef |grep mariadb 2.查端口netstat -tunlp |grep 3306

安装mysql

yum只能有一个人在用,也就是说一个人在用的时候会锁住

 

此时安装的是服务端

 已经安装成功:

下面我们登录,默认是没有密码的,但是报错,见下图:

我们应该先启动"mysql服务端"

 注意:虚拟环境不会对操作系统产生影响

激活虚拟环境,只会影响python解释器不会影响其他的内容:

退出虚拟环境

我们现在不确定服务端的名字是什么,所以协程mysql*

还是取消吧

 我们安装mariadb

 

得到下图的mariadb-server才是服务端

选择y

下面,我们启动服务端

再查一下mariadb的进程

 

查找mariadb的端口查找不到

 

 查找端口是可以的

 

这个时候,就进入这个MariaDB

 

 原因:我们需要激活虚拟环境:

依然报错,如下

在windows中可以登录数据库

 

 

下图是默认地址 ,-h是指定主机的

得到的数据库就在windows下边的system32文件夹下边

我们只需要将数据库拖动到linux中即可

思考,如何用这个数据?

我们以前都是写入,但是这次我们写出

 下图中,输入命令"报错"

 

再次登录查看一下,没见到crm,视频中看到了crm

下面,我们退出

再次启动,加上IP和端口

 

依然报错,原因是,我上边输入了windows的密码,其实这个导入不需要输密码.再次登录账户和密码,看到结果

第一种是,我输入windows中的密码时候的错误,第二种是我没有输入密码时候的错误,第二种报错没有问题(这是平台的问题)

 没有导入之前的数据库

这时候的数据库,我们登录数据库的账户和密码

我们看到了crm这个密码

退出数据库,我们再次运行:

下面重新运行,一定要加上ip和端口号

显示不出来,原因是没有关闭防火墙,下面我们关闭防火墙,再次运行

windows上很难关注到这些问题,当放到linux服务器上才会发现这些问题

出现这个问题:

我们需要编辑"settings.py",见上图,找到allow_host

加上一个*,然后我们保存退出

这个时候,我们再次启动

再次运行,就出现了下图:

CDN服务器:

 内容分发网络,CDN是构建在网络之上的内容分发网络.依靠部署在各地的边缘服务器通过中心平台的负载均衡,内容分发

 

 

6.crm项目部署2

流程梳理:

 

 

 

7.crm项目部署3

 是否有一种工具可以帮助我们进行管理,从手动管理到自动管理?(马蜂窝也在用)

14.配置supervisro工具
注意要退出虚拟环境
注意要退出虚拟环境
注意要退出虚拟环境
原因:我们装这个环境,不仅仅是针对python的应用
我们的目的是管理所有的应用,所以,我们需要装在物理环境之下,需要先退出虚拟环境再安装
1.安装easy_install pip3是python3的软件包管理工具easy_install 是python2的软件包管理工具安装这个虚拟工具,也就是easy_installyum install python-setuptools2.安装supervisoreasy_install supervisor3.创建supervisor的配置文件echo_supervisord_conf > /etc/supervisor.conf 4.修改supervisor的配置文件,添加启动uwsgi的命令supervisor其实就是帮咱们执行了,需要手动执行的命令而已 vim /etc/supervisor.conf写入如下内容,在最底部写 [program:s18crm] command=/root/Envs/nginx_crm/bin/uwsgi --ini /opt/Crm_Project/uwsgi.ini stopasgroup=true killasgroup=true5.测试用supervisor启动uwsgi ,注意要确保此时uwsgi已经退出5.测试用supervisor启动uwsgi ,注意要确保此时uwsgi已经退出5.测试用supervisor启动uwsgi ,注意要确保此时uwsgi已经退出5.测试用supervisor启动uwsgi ,注意要确保此时uwsgi已经退出supervisord -c /etc/supervisor.conf #这是启动supervisor服务端命令supervisorctl -c /etc/supervisor.conf #这是supervisor客户端管理命令6.学习supervisor的命令status s18crm #查看状态start s18crm #启动任务stop s18crm #停止任务start all stop all #启停所有的任务感谢cctv

退出虚拟环境之后,我们开始安装,

 下面看一下,supervisor是否能够在python3里边能够安装.

pip3 install supervisor

官网太慢,我们可以直接使用豆瓣的源下载

pip3 install -i https://pypi.douban.com/simple supervisor

 

上图中,我已经成功安装了这个环境,但是老师当时在python3的环境中安装失败了.老师的截图见下图

 

 

打开上边的文件,输入大写的G,回到底部输入

 注意:上边也有supervisor其实就是帮助我们执行了,需要手动执行的命令而已

 

 原来的启动方式:(必须来自虚拟环境底下)

 

 

保存退出:

启动虚拟环境,查看是都有其他进程,答案是没有的

下面我们开始启动

 

这个时候s18crm所处的状态是运行中的状态.

 主进程是6274

 

在第二个窗口打开,查看

第一个是主进程是6274,和第一个窗口正好对应起来.

 

 这个时候,我们只需要supervisor管理uwsgi,不需要手动管理了

 

 停止操作(我们在窗口1进行的操作)

状态操作

 我们在窗口2查看一下

这个时候已经关闭了

我们再启动所有的内容

现在,我们通过第二个窗口查看又起来了

 

退出

 访问不了页面的原因是没有启动nginx,所以需要启动nginx

再次访问就可以访问了

 

总结三大要素:重启nginx//重启防火墙//重启数据库

 账号:root@qq.com

密码:123456

转载于:https://www.cnblogs.com/studybrother/p/10642515.html

这篇关于巨蟒python全栈开发linux之centos6的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/756898

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal