- 浏览: 564656 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (618)
- java (109)
- Java web (43)
- javascript (52)
- js (15)
- 闭包 (2)
- maven (8)
- 杂 (28)
- python (47)
- linux (51)
- git (18)
- (1)
- mysql (31)
- 管理 (1)
- redis (6)
- 操作系统 (12)
- 网络 (13)
- mongo (1)
- nginx (17)
- web (8)
- ffmpeg (1)
- python安装包 (0)
- php (49)
- imagemagic (1)
- eclipse (21)
- django (4)
- 学习 (1)
- 书籍 (1)
- uml (3)
- emacs (19)
- svn (2)
- netty (9)
- joomla (1)
- css (1)
- 推送 (2)
- android (6)
- memcached (2)
- docker、 (0)
- docker (7)
- go (1)
- resin (1)
- groovy (1)
- spring (1)
最新评论
-
chokee:
...
Spring3 MVC 深入研究 -
googleyufei:
很有用, 我现在打算学学Python. 这些资料的很及时.
python的几个实用网站(转的) -
hujingwei1001:
太好了找的就是它
easy explore -
xiangtui:
例子举得不错。。。学习了
java callback -
幻影桃花源:
太好了,謝謝
Spring3 MVC 深入研究
uwsgi python ssl编译问题记录
发表于6个月前(2013-12-10 10:54) 阅读(187) | 评论(0) 2人收藏此文章, 我要收藏
赞0
python uwsgi ssl compile
昨天,因为在运行gevent时说ssl没找到,是因为缺省编译python 2.7.6时没带ssl的编译。那么为什么没带呢?主要原因是python没找到。因为我是把相关的软件都安装在用户目录下,所以缺省的位置是根本找不到的。于是在网上搜了一下如何编译时,将ssl编译进去,找了半天的结果基本上都是要修改Modules/Setup.dist下有关ssl的内容,好象没有通过设置环境变量就可以解决的方法,于是乎只能修改这个文件,大约修改是这样的:
SSL=/home/ap/xxxx
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib64 -lssl -lcrypto
一个是把上面的 SSL 的路径改为我的用户目录,另一个是把 -L的路径改为lib64,因为我的环境是x86_64的,所以openssl是放在$HOME/lib64下的。
make的时候说 Modules/Setup.dist 比 Modules/Setup 要新,于是我覆盖了一下。make之后还是说 _ssl 没找到:
Python build finished, but the necessary bits to build these modules were not found:
_bsddb _curses _curses_panel
_sqlite3 _ssl _tkinter
bsddb185 bz2 dbm
dl gdbm imageop
readline sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
可以看到最后一行有个建议,说是看一下setup.py是如何检查模块的。
于是我编译setup.py首先在501左或添加了一行:
inc_dirs = self.compiler.include_dirs[:]
lib_dirs = self.compiler.library_dirs[:]
lib_dirs.append('/home/ap/xxxx/lib64')
最后一行是我加的,把lib的目录加进去了。然后又在844行左右,加了一行:
if have_any_openssl:
if have_usable_openssl:
ssl_libs.append('/home/ap/xxxx/lib64')
# The _hashlib module wraps optimized implementations
# of hash functions from the OpenSSL library.
ssl_libs.append('/home/ap/xxxx/lib64') 这一行。
然后再编译就成功了。再执行make install来安装到用户目录下。进入python环境, import ssl就正确了。
但是,我再编译uwsgi时发现了问题。在编译最后报错了:
/home/ap/xxxx/src/packages/build/Python-2.7.6/./Modules/_ssl.c:1280: undefined reference to `SSL_get_error'
/home/ap/xxxx/lib/python2.7/config/libpython2.7.a(_ssl.o): In function `_ssl_threadid_callback':
/home/ap/xxxx/src/packages/build/Python-2.7.6/./Modules/_ssl.c:1661: undefined reference to `CRYPTO_THREADID_set_numeric'
collect2: ld returned 1 exit status
网上查了查,原来是 -lssl 没自动加进去。但是为什么没自动加进去呢?还是因为我把openssl装到了用户目录下。于是经过试验,可以在编译时添加一些环境变量来解决这一问题,编译命令如下:
LDFLAGS="-L$HOME/lib64" UWSGI_INCLUDES=$HOME/include python uwsgiconfig.py --build
这回就正确了。然后把编译好的uwsgi拷贝到你想放的地方,比如$HOME/bin下。
如果一些包不在常见的目录下,编译的确是件麻烦的事。
发表于6个月前(2013-12-10 10:54) 阅读(187) | 评论(0) 2人收藏此文章, 我要收藏
赞0
python uwsgi ssl compile
昨天,因为在运行gevent时说ssl没找到,是因为缺省编译python 2.7.6时没带ssl的编译。那么为什么没带呢?主要原因是python没找到。因为我是把相关的软件都安装在用户目录下,所以缺省的位置是根本找不到的。于是在网上搜了一下如何编译时,将ssl编译进去,找了半天的结果基本上都是要修改Modules/Setup.dist下有关ssl的内容,好象没有通过设置环境变量就可以解决的方法,于是乎只能修改这个文件,大约修改是这样的:
SSL=/home/ap/xxxx
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib64 -lssl -lcrypto
一个是把上面的 SSL 的路径改为我的用户目录,另一个是把 -L的路径改为lib64,因为我的环境是x86_64的,所以openssl是放在$HOME/lib64下的。
make的时候说 Modules/Setup.dist 比 Modules/Setup 要新,于是我覆盖了一下。make之后还是说 _ssl 没找到:
Python build finished, but the necessary bits to build these modules were not found:
_bsddb _curses _curses_panel
_sqlite3 _ssl _tkinter
bsddb185 bz2 dbm
dl gdbm imageop
readline sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
可以看到最后一行有个建议,说是看一下setup.py是如何检查模块的。
于是我编译setup.py首先在501左或添加了一行:
inc_dirs = self.compiler.include_dirs[:]
lib_dirs = self.compiler.library_dirs[:]
lib_dirs.append('/home/ap/xxxx/lib64')
最后一行是我加的,把lib的目录加进去了。然后又在844行左右,加了一行:
if have_any_openssl:
if have_usable_openssl:
ssl_libs.append('/home/ap/xxxx/lib64')
# The _hashlib module wraps optimized implementations
# of hash functions from the OpenSSL library.
ssl_libs.append('/home/ap/xxxx/lib64') 这一行。
然后再编译就成功了。再执行make install来安装到用户目录下。进入python环境, import ssl就正确了。
但是,我再编译uwsgi时发现了问题。在编译最后报错了:
/home/ap/xxxx/src/packages/build/Python-2.7.6/./Modules/_ssl.c:1280: undefined reference to `SSL_get_error'
/home/ap/xxxx/lib/python2.7/config/libpython2.7.a(_ssl.o): In function `_ssl_threadid_callback':
/home/ap/xxxx/src/packages/build/Python-2.7.6/./Modules/_ssl.c:1661: undefined reference to `CRYPTO_THREADID_set_numeric'
collect2: ld returned 1 exit status
网上查了查,原来是 -lssl 没自动加进去。但是为什么没自动加进去呢?还是因为我把openssl装到了用户目录下。于是经过试验,可以在编译时添加一些环境变量来解决这一问题,编译命令如下:
LDFLAGS="-L$HOME/lib64" UWSGI_INCLUDES=$HOME/include python uwsgiconfig.py --build
这回就正确了。然后把编译好的uwsgi拷贝到你想放的地方,比如$HOME/bin下。
如果一些包不在常见的目录下,编译的确是件麻烦的事。
发表评论
-
Django静态文件处理总结
2015-05-13 13:59 538原文地址:http://blog.csdn.net/wenxu ... -
原 异步非阻塞机制与多线程阻塞机制在处理并发耗时等待任务上的效率对比分析
2015-04-21 10:05 696原文地址:http://my.oschina.net/mall ... -
Django报错“_mysql_exceptions.Warning: Incorrect string value: ‘\xE6\xB5…’ for colu
2015-03-25 15:50 1000原文地址:http://www.tuicool.com/art ... -
django使用mysql时的中文存储问题 - [python]
2015-03-25 15:36 1505原文地址:http://www.blogbus.com/831 ... -
NIO学习笔记——解决“服务器端cpu占用率高”
2015-01-29 10:17 991原文地址:http://blog.csdn ... -
python 调用 php 实例
2014-06-23 14:09 2626原文地址:http://hi.baidu.com/ji_hai ... -
php调用python
2014-06-23 14:08 793原文地址:http://blog.163.com/darwin ... -
python2.7 安装ssl模块
2014-06-19 14:22 3220python2.7 安装ssl模块 2012-02-28 13 ... -
Centos6.5下升级Python 2.6.6 to python 2.7.3
2014-06-19 13:53 655Centos6.5下升级Python 2.6.6 to pyt ... -
翻译:redis-py 说明文件 (2012-05-30 17:55:52)
2014-06-04 10:22 458翻译:redis-py 说明文件 (2012-05-30 17 ... -
关于Redis的Python客户端的连接池问题
2014-06-04 10:21 625关于Redis的Python客户端的连接池问题 在一 ... -
Windows下 Python 安装包的配置
2014-03-22 10:23 6571、下载安装 Python python-2.7.2.msi ... -
[翻译]深入理解Tornado——一个异步web服务器
2014-03-07 15:16 1643[翻译]深入理解Tornado— ... -
多版本Python共存[支持使用pip安装包]
2014-02-28 10:59 1146多版本Python共存[支持使 ... -
Django 数据库访问性能优化
2013-09-05 15:22 684Django 数据库访问性 ... -
Python六大开源框架对比:Web2py略胜一筹
2013-08-21 11:29 828Python是一门动态、面向对象语言。其最初就是作为一门面向 ... -
Python 代码调试技巧
2013-08-15 18:11 873使用 pdb 进行调试 pdb 是 python 自带的 ... -
python urlencode 编码
2013-07-05 13:28 964urlencode 调用方法 urlencode的参 ... -
window下使用virtualenv
2013-06-30 15:26 1111--- window下使用virtualenv -- ... -
浅析python的metaclass
2013-06-30 11:12 810分享下自己对python的met ...
相关推荐
9. **日志和监控**:uwsgi提供详细的日志记录,并可以与各种监控工具(如Prometheus、Grafana)集成,帮助开发者追踪和分析应用性能。 10. **可扩展性**:uwsgi的设计允许开发者自定义行为,通过编写插件或使用内置...
同时,确保正确设置日志记录,以便于问题排查和性能分析。 uwsgi的灵活性和强大功能使其成为Django部署的首选,它能适应各种规模的项目,从小型个人博客到大型企业级应用。了解并熟练掌握uwsgi的配置和使用,对于...
首先,uwsgi是一个高效且可扩展的Python应用服务器,它允许我们将Python应用程序(如Django)作为服务运行。uwsgi提供了多种功能,包括进程管理、负载均衡、缓存以及与其他服务器(如nginx)的接口。在离线环境下,...
这里以Python 3.7为例,先安装必要的编译工具,如`gcc`和`Development tools`,然后下载Python源码,解压并编译安装。注意使用`--prefix`参数指定安装路径,最后创建软链接使系统能够识别新安装的Python版本。 安装...
Nginx通常作为反向代理服务器使用,负责处理静态文件和SSL/TLS等任务,而动态内容的处理则交给uWSGI。HttpUwsgiModule能够解析uwsgi协议,将来自客户端的请求传递给uWSGI服务器,然后接收并返回uWSGI处理后的响应。...
根据提供的信息,本文档将详细介绍如何通过CentOS安装Python 3.7,并结合使用uWSGI和Nginx来部署一个基于Flask的应用。 ##### 1.1 安装Python 3.7 **步骤一:准备服务器** - 登录阿里云账户并创建一个新的ECS实例...
- 下载Python 3.6.0源码,取消`Modules/Setup.dist`文件中关于Socket模块和SSL支持的注释,然后编译和安装Python。 - 关闭或调整防火墙规则,允许3306(MySQL)、8000(Django默认端口)和80(HTTP)端口的访问。 - ...
10. **扩展性**: `uWSGI`拥有丰富的插件系统,可以添加额外的功能,如Nginx反向代理、静态文件处理、SSL支持等。 总之,`pyuwsgi`是Python开发者在构建高性能Web服务时的重要工具,它结合了`uWSGI`的强大功能,使得...
注意,在安装`mysqlclient`时,可能遇到问题,需要使用Python 2的`pip`来安装,以避免与Python 3的冲突。 4. **安装MySQL** - 从MySQL官方网站获取RPM安装包,然后使用`yum`来安装MySQL社区版。 - 设置MySQL的...
确保服务器上已安装必要的软件和服务,如 Python、uWSGI、Nginx 等。 #### 三、项目打包与上传 1. **项目打包**:将本地开发好的项目打包成压缩文件。可以使用 Windows 上的工具如 WinSCP 或者命令行工具 rz、sftp...
我们将使用一系列工具和服务来完成部署,包括Python 3.6.5、Nginx-1.13.7以及uWSGI (2.0.17.1)。 #### 二、环境准备 首先确保您的Ubuntu系统是最新的,并且进行了必要的软件安装。 ##### 安装网络工具包与重启...
如果未发现`--with-http_ssl_module`,则需要重新编译Nginx,添加SSL模块。找到之前的编译目录,重新配置并编译: ```bash ./configure --with-http_ssl_module make ``` 由于这是升级过程,不执行`make install`...
- **下载并编译Nginx**:从官网下载Nginx源码包,解压后执行配置命令如: ```sh ./configure --user=nginx --group=nginx --prefix=/data/application/nginx-1.10.3 --with-...
这里我们将详细介绍如何编译Nginx,以及如何配置它来与Python的web.py和Django框架协同工作。 **一、编译Nginx** 在编译Nginx时,我们通常需要添加额外的模块来支持特定的功能,例如HTTPS和URL重写。首先,你需要...
如果是Python的Django或Flask应用,就需要Python环境和相应的WSGI服务器(如uWSGI)。 3. **数据库**:许多Web应用依赖数据库存储数据,如MySQL、PostgreSQL或MongoDB。确保数据库引擎正确安装和配置是部署的关键...
首先安装Python3的开发包和pip,然后使用pip3安装uwsgi。在安装uwsgi前,可以更换pip源以加快下载速度,例如设置为豆瓣的镜像源。 **第四步:测试uwsgi** 创建一个简单的uwsgi测试应用,编写一个名为`test.py`的...
Django自带了一个简单的WSGI服务器,但不推荐用于生产环境,因此通常会与Gunicorn或uWSGI等高性能服务器一起使用。 在描述中提到了部署环境的搭建,这部分主要涉及了Linux系统上的软件安装和配置,包括Nginx。Nginx...
此外,Nginx还支持FastCGI、uWSGI、SCGI协议,能够与PHP、Python、Ruby等后端语言无缝协作。 总之,`nginx-1.10.3.tar.gz`提供了一个可定制的高性能Web服务器平台,允许开发者根据具体需求调整配置,优化性能,并与...
此外,Nginx 还支持FastCGI、uwsgi、SCGI等协议,可以与PHP、Python、Ruby等后端语言无缝集成,为动态网站提供服务。 Linux是Nginx最常见的操作系统平台,因为它提供了稳定、高效和安全的运行环境。Nginx-1.20.0....
7. **动态内容处理**:虽然Nginx主要处理静态内容,但通过FastCGI、uWSGI等模块,可以配合PHP、Python等后端语言处理动态请求。 8. **Nginx模块开发**:对于有编程基础的读者,深入学习Nginx模块开发可以定制自己的...