mod_wsgi

Windows+Apache+Python+Django 踩坑记录

心不动则不痛 提交于 2021-02-04 21:03:03
摘要   使用Python进行Web项目开发;相对于主流三大Web端解决方案(Java/.NET/PHP) Python在某些方面具有一定的优势,相对 Java/.NET 有更轻量级的部署方案,相对PHP有更安全开放的环境支持,这些不同点几乎完全取决于Python语言本身的特性。 0x01: 环境部署    注:开发环境与运行环境的部署需要的基本技能 —— 理论基础知识扎实,了解相关基本原理,了解具体开发体系;如果不具备这些能力那么遇到问题就会很懵    0x11: Windows+Apache 部署    1. Apache压缩包直接百度 "Apache" 就能找到官网下载了,飞机票>> Apache24 ;压缩包解压至安装目录,路径最好不要含有中文和空格(江湖规矩)   2. httpd.conf 配置文件(apachePath/conf/httpd.conf),Apache部署中最重要的部分, 一般只用修改第一条 ServerRoot 就可以了 ,文档中 "#" 为行注释      ServerRoot 改为你的真实路径(一般在37行上下),Ex: ServerRoot "D:/Program/Apache/Apache24" ,新版本Apache中采用 "SRVROOT" 宏替换后面所有会用到路径的地方,新版本修改 Define SRVROOT "c:/Apache24"

OpenStack模块之Keystone部署解析

帅比萌擦擦* 提交于 2021-02-03 11:02:38
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一 Keystone概述 1.1 Keystone身份服务 1.2 主要功能 1.3 Keystone相关概念 1.3.1 管理对象(多元化,管理的对象类型非常丰富) 1.4 Keystone认证流程 二 openstack架构的keystone组件部署 2.1 部署解析 2.2 部署准备 2.3 部署流程: 2.3.1 创建数据库实例和数据库用户 2.3.2 安装、配置keystone、数据库、Apache 2.3.3 对接mysql 2.3.4 设置传递认证令牌的过程模式加密 2.3.5 初始化认证服务数据库 2.3.6 初始化fernet 密钥存储库 2.3.7 配置bootstrap身份认证服务 2.3.8 配置Apache HTTP服务器 2.3.9.配置管理员账户的环境变量 2.3.10 创建OpenStack 域、项目、用户和角色 2.3.11 查看是否可以不指定密码就可以获取到token信息(验证认证服务) 总结 前言 Keystone在OpenStack中的定位为全局身份服务的验证授权,其它的服务的API在接收到请求之后会向keystone做一个认证,是否有权限进行操作,如有,按照需求中不同的功能模块去分发给自己后端的子功能模块。 宏观上keystone是一个小型的认证机构

windows服务器下部署Apache+Flask+Mod_wsgi+Vue

早过忘川 提交于 2020-05-06 08:41:03
因为之前所接触的项目都是java,所以web服务器大部分都选择tomcat 因为工作的需要最近一直都在看Python的东西.言归正传. 1.因为我之前查看的资料都是flask部署是需要uswgi,所以就按照步骤进行按照,但是大部分的帖子和官方文档都是关于Linux的. 也查看了几个windows平台下的.最后我没有安装成功.也有很多帖子说是 uswgi 暂时不支持Windows.故所以放弃.当时心凉了一半. 2.后来查看资料才发现了mod_wsgi.这里面有一个要注意的点就是mod_wsgi的版本问题,不是越新越好.而是根据你的 windows版本+Apache版本+Python版本 一一对应的.具体的参考请参考如下的网址 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 这个时候需要认真的选择对应的版本就可以了.我这里配置是 windwos 64位,Apache 24 ,Python3.7选择对应的版本就可以了. 3.下载之后的操作如下 这个应用用winrar打开,里面有2个文件.如图所示 找到 mod_wsgi--->server--->mod_wsgi.cp37-win_amd64.pyd 拷贝这个文件到apache安装目录下的modules,并且改名字为mod_wsgi.pyd 4.修改Apache的 conf-->httpd.conf

快速部署Python应用:Nginx+uWSGI配置详解

梦想的初衷 提交于 2020-05-06 03:37:53
快速部署Python应用:Nginx+uWSGI配置详解 相比于PHP,Python应用的部署很麻烦,比较常用的方法有fcgi与wsgi,然而这两种都很让人头痛。文章介绍了Nginx+uwsgi的简便方法,来快速的部署Python应用。 作者:observer来源:observer专栏杂记| 2010-10-13 09:21 收藏 分享 4月14日 北京 |《架构即未来》作者陈斌:可扩展性架构设计的N个原则 在 PHP 里,最方便的就是deployment了,只要把php文件丢到支持PHP的路径里面,然后访问那个路径就能使用了;无论给主机添加多少PHP应用,只要把目录改好就没你的事了,完全不用关心php-cgi运行得如何,deployment极为方便。 反观Python,部属起来真是头痛,常见的部署方法有: ◆fcgi:用spawn-fcgi或者框架自带的工具对各个project分别生成监听进程,然后和http服务互动。 ◆wsgi:利用http服务的mod_wsgi模块来跑各个project。 无论哪种都很麻烦,apache的mod_wsgi配置起来很麻烦,内存占用还大,如果要加上nginx作为静态页面的服务器那就更麻烦了;我的应用基本上到后来都是是各个project各自为战,且不说管理上的混乱,这样对负载也是不利的,空闲的project和繁忙的project同样需要占用内存。

mod_wsgi在多个Python版本下配置apache

最后都变了- 提交于 2020-03-12 20:44:26
前言 也许你会遇到这样的问题:Linux默认安装了Python2.6,在当下一些框架总是不支持低版本的Python,不得不去安装较高版本的Python,如Python2.7。然而当高版本的安装后,apache依然找到的是Python2.6,此刻便是头疼时刻。不妨看看这篇文档。当然这里是需要你保证在输入python --version之后输出的版本好是高版本的。那么剩下的问题我们不妨就在这里探讨一番, 问题 安装Python2.7后当再去运行之前基于python2.6环境配置的项目在apache以及mod_wsgi下可以正常运行的项目,却报出如下异常信息: 版本依赖出错,看了下详细信息在运行apache的时候既加载了Python2.7的site-packages又加载了Python2.6的site-packages 按照逻辑来寻找原因: 之所以会加载python2.7的信息i,是因为我在httpd.conf中配置了python-path python2.6的信息则是系统默认Python版本 严重的错误是直接输出的Python版本为2.6的 解决问题 针对上面的问题进行一系列排查:首先不应该出现Python2.6的相关信息,因为在系统中已经处理过Python的版本,即使在终端python --version输出的也是2.7版本。apache是一个独立的模块

apache+mod_wsgi+django配置

青春壹個敷衍的年華 提交于 2019-12-01 06:06:49
在不完全明白之前,看别人的帖子总是觉得是错的,等到弄懂以后,怎么看都是对的。 正题: 安装mod_wsgi,然后记得在http.conf文件里面添加以下一行: LoadModule wsgi_module modules/mod_wsgi.so 此时的apache就是wsgi服务器了。也许有人会问什么是wsgi服务器。 # -*- coding: utf-8 -*- from wsgiref import simple_server def application(environ, start_response): status = '200 OK' output = 'Hello World!' response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output] # 下面两行就是简单的wsgi服务器 server = simple_server.make_server('localhost', 8080, application) server.serve_forever() 注意这行: server = simple_server.make_server(

apache mod_wsgi 部署django项目后连接不上mysql

柔情痞子 提交于 2019-11-30 16:23:55
问题描述 做好的django项目,使用python manage.py runserver 可以正常work. 然而当将项目使用mod_wsgi部署到apache上之后却不能连接mysql.一直报错:“Internal Server Error”,查看日志信息,除了“Can't connect mysql”还是连不上mysql. 追踪问题 django测试 分别在debug模式以及debug off模式下运行项目,无任何异常,足以证明项目自身配置没任何错误。 Python代码测试 运行python manage.py shell,导入MySQLdb,使用驱动代码测试也无异常。说明驱动的版本什么的没有错误。 查看源码 在django/admin/db/backend/mysql/base.py中直接修改连接数据库的参数信息,并在MySQLdb中的_init.py中打印传进来的参数信息。 python manage.py runserver debug模式开与关打印出来的信息一致。 开启apache 访问主页打印出来的信息与上述信息无差异。 这么以来就可以得出结论:项目组件以及配置没什么错误。 寻找答案 经过问题的一系列追踪,查询网络无果。想起mod_wsgi这货,再根据这个去搜得出结论apache在安装的时候所配置的系统用户apache/apache没有权限访问默认的mysql

使用Python搭建http服务器

故事扮演 提交于 2019-11-30 11:18:42
David Wheeler有一句名言:“计算机科学中的任何问题,都可以通过加上另一层间接的中间层解决。”为了提高Python网络服务的可移植性,Python社区在PEP 333中提出了Web服务器网关接口(WSGI,Web Server Gateway Interface)。 为了提高Python网络服务的可移植性,Python社区在PEP 333中提出了Web服务器网关接口(WSGI,Web Server Gateway Interface)。 WSGL标准就是添加了一层中间层。通过这一个中间层,用Python编写的HTTP服务就能够与任何Web服务器进行交互了。现在,WSGI已经成为了使用Python进行HTTP操作的标准方法。 按照标准的定义,WSGI应用程序是可以被调用的,并且有两个输入参数。 1、WSGI 下面是第一段代码,第一个参数是environ,用于接收一个字典,字典中提供的键值对是旧式的CGI环境集合的拓展。第二个参数本身也是可以被调用的,习惯上会将其命名为start_response(),WSGI应用程序通过这个参数来声明响应头信息。 # 用WSGI应用形式编写的简单HTTP服务。 #!/usr/bin/env python3 # A simple HTTP service built directly against the low-level WSGI

讨厌的Windows 下apache+Django+python+mod_wsgi配置

别等时光非礼了梦想. 提交于 2019-11-28 14:04:25
昨天折腾了一天在Windows下配置apache+mod_wsgi 没搞定,今儿终于弄通了!话说这玩意在linux上挺简单的吧 windows。。。说多了都是泪 环境准备: 系统: Win7 64位 环境变量略,注意要配置 PYTHONHOME 软件:安装过程略 Apache 2.4.9 64位 python 2.7.6 64位 Django 1.6.4 mod_wsgi mod_wsgi-3.5.ap24.win-amd64-py2.7.zip(注意对应版本) 注: Apache 必须选择2.4版本,2.2版本我折磨一天没通,欢迎小白鼠继续测试... 配置apahce 把 mod_wsgi-3.5.ap24.win-amd64-py2.7.zip解压丢到apahce工作目录下的 modules目录 如: C:\Apache24\modules 修改 apahce 配置文件 httpd.conf 在 # Example: # LoadModule foo_module modules/mod_foo.so # 后添加 LoadModule wsgi_module modules/mod_wsgi.so 启动测试,查看error.log没有问题继续 c:\Apache24\bin\httpd.exe -w -n "Apache2.4" -k restart 配置 Django项目