我正在设置Trac来使用wsgi ,并遇到麻烦得到mod_wsgi工作。 我下载并安装了mod_sgi。 [box] #apachectl configtest httpd:/etc/httpd/conf/httpd.conf的第214行的语法错误:无法在/etc/httpd/modules/mod_wsgi.so文件中findAPI模块结构“mod_wsgi”:/ etc / httpd / modules / mod_wsgi .so:未定义的符号:mod_wsgi httpd.conf的214行: LoadModule mod_wsgi modules/mod_wsgi.so 这是在文件系统上find的mod_wsgi.so: [box]# locate mod_wsgi.so /usr/lib64/httpd/modules/mod_wsgi.so 我可以忽略什么?
我正在开发一个项目,我必须满足一些法规要求,要求至less有三分之五的授权用户开始使用预先分配的密码来处理非常敏感的信息的后端Web服务。 现在,原型已经被批准并正在运行使用Python的wsgiref.simple_server() ,我已经编程手动提示input密码。 现在原型已经被批准,我必须将Web应用程序迁移到生产环境中,我需要在Apache和mod_wsgi之后运行它。 我有两个问题: 现在,我使用一个很小的Python包装程序,以编程方式允许远程input密码。 在开始之前,如何让Apache提示我input密码? 这是否必须在由mod_wsgi执行的app.wsgi脚本中? 从Apache守护进程开始,这样做是如何工作的,因此没有stdin! 我将不得不担心某种types的代码重新加载? 在杀死并重新启动另一个工作进程之前,Apache可能有最大数量的请求,但是,这是否也需要密码提示? 任何帮助在这里将不胜感激。
我的设置是django 1.3和ubuntu 10.04的默认mod_wsgi和apache包。 我在我的开发虚拟机(DEBUG和debugging工具栏closures)上testing了我的应用程序的一个视图: ab -n 200 -c 5 http://127.0.0.1/ 每秒获得4个请求。 这似乎很慢,所以我简化了查询,使用索引等debugging工具栏告诉我,我有4个查询8ms。 运行同样的testing,我只能得到每秒8个请求。 CPU似乎一直在100%。 这对于现在非常简单的视图来说似乎相当缓慢,但它只是一个低功耗的虚拟机。 我决定启动一个大型的ec2实例(4个cpu),看看在这个机器类上我会得到怎样的性能,而且每秒只能得到13个请求, 我怎样才能改变apache / mod_wsgi的configuration,以获得更多的这个类的机器性能? 我想我正在使用工人而不是prefork: $ /usr/sbin/apache2 -l Compiled in modules: core.c mod_log_config.c mod_logio.c worker.c http_core.c mod_so.c 我的工作人员configuration是: <IfModule mpm_worker_module> StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxClients 150 MaxRequestsPerChild 0 </IfModule> 和我的WSGI设置如下所示: WSGIScriptAlias / /home/blah/site/proj/wsgi.py WSGIDaemonProcess […]
我有一个我编译和安装的AIX 6.1系统: Apache 2.2.21(进入/ usr / local / mercurial) Python 2.7.2(进入/ usr / local / bin和/ usr / local / lib) mod_wsgi 3.3( 这里描述的AIX修复#1) Mercurial 2.0(全系统) 但是,当Apache启动时,我在error_log中收到以下消息: IOError: invalid Python installation: unable to open /usr/local/bin/lib/python2.7/config/Makefile (No such file or directory) 看到问题? bin/lib不存在。 虽然/usr/local/lib/python2.7/config/Makefile 确实存在。 但是,我无法弄清楚它是从哪里得到的。 这是我得到的环境variables: PYTHONHOME=/usr/local/bin PYTHONPATH=/usr/local/lib/python2.7 LIBPATH="/usr/local/mercurial/lib:$LIBPATH" PATH=/usr/local/bin:/usr/local/lib:$PATH LDR_CNTRL="MAXDATA=0x80000000" AIXTHREAD_SCOPE=S AIXTHREAD_MUTEX_DEBUG=OFF AIXTHREAD_RWLOCK_DEBUG=OFF AIXTHREAD_COND_DEBUG=OFF […]
我们正试图摆脱mod_wsgi上的wsgi应用程序。 在使用wsgiref.simple_server作为debugging环境之前,我们已经运行了它。 现在,我们想把它转移到使用Apache httpd集成在同一端口下加载静态文件,并提供一个更适合生产的环境。 我们设置的httpd.conf文件如下所示: <VirtualHost *:80> DocumentRoot /var/www/ ErrorLog /var/www/log/error_log LogLevel debug WSGIScriptAlias /app /var/www/python/resource/rest.py <Directory /var/www/python/> Order allow,deny Allow from all </Directory> <Directory /> Order allow,deny Allow from all RewriteEngine On # Some rewrites go here </Directory> </VirtualHost> 通过这个设置,我们可以访问主应用程序文件rest.py(在http://myhost/app ),但是任何导入到模块(比如from module1 import function ,其中module1与rest.py在同一目录下)是与一个ImportError失败。 我怀疑这与必须设置某种环境variables,但我已经添加/var/www/python到主要应用程序方法上的sys.path ,它不起作用。 任何帮助或指针与此将非常感激。 谢谢!
我正在尝试使用WSGI来启动并运行一个django网站。 这个盒子用python 2.6运行centos 5。 我试图使用安装在/ usr / local / lib / anaconda /中的连续分析的anaconda分发。 我build立了mod_wsgi ./configure –with-python = / usr / local / lib / anaconda / bin / python / 我将以下内容添加到/etc/httpd/conf/httpd.conf中: <Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> #wsgi-scripts WSGIPythonHome /usr/local/lib/anaconda/bin WSGIScriptAlias /test /var/www/wsgi-scripts/test <Directory "/var/www/wsgi-scripts"> Order allow,deny Allow from […]
我最近更新我们的networking基础设施,以使用NGINX,而不是我们的Apache服务器。 现在,我也在运行一个OpenStack基础架构,我想知道是否有一种最先进的方式来替代Apache / Mod_wsgi与任何NGinx / uwsgi体系结构或其他。 因此,如果您使用NGINX而不是Apache来运行任何OpenStack云基础架构,那么任何提示和技巧,甚至PRO / CONS技巧都将非常值得欣赏。 非常感谢!! PS:哦,顺便说一下,我正在Debian 7.0上运行一个ESSEX堆栈
我正在build立一个烧瓶应用程序和Ubuntu 12.04.3 LTS EC2实例,一切似乎都工作正常(即我可以通过公开可用的url到达网页),直到我试图导入一个模块(如numpy),并实现Apache的Python不同于我用来编译mod_wsgi和我正在使用的那个 我正在运行apache2。 apache2日志显示警告(特别是最后一行显示path没有改变): [warn] mod_wsgi: Compiled for Python/2.7.5. [warn] mod_wsgi: Runtime using Python/2.7.3. [warn] mod_wsgi: Python module path '/usr/lib/python2.7/:/usr/lib/python2.7/plat-linux2:/usr/lib/python2.7/lib-tk:/usr/lib$ 我试图在我的虚拟主机conf中设置path(我的python位于/ home / ubuntu / anaconda / bin以及所有其他库): WSGIPythonHome /home/ubuntu/anaconda WSGIPythonPath /home/ubuntu/anaconda <VirtualHost *:80> ServerName xx-xx-xxx-xxx-xxx.compute-1.amazonaws.com ServerAdmin [email protected] WSGIScriptAlias / /var/www/microblog/microblog.wsgi <Directory /var/www/microblog/app/> Order allow,deny Allow from all </Directory> Alias /static /var/www/microblog/app/static <Directory […]
如果我想确保所有的python模块都重新编译,并在我的Django项目下mod_wsgi和Apache重新加载,是否足以重新启动Apache适度地与: /etc/init.d/apache graceful 或者我应该总是使用完整的重新启动 /etc/init.d/apache restart ?
所以这里是我的Apacheconfiguration: LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so <VirtualHost *:80> ServerAdmin [email protected] ServerName 31.220.49.197 WSGIDaemonProcess ts threads=25 WSGIProcessGroup ts Alias /static /home/email-validator/static WSGIScriptAlias / /home/email-validator/index.wsgi # Set access permission <Directory /> Allow from all Require all granted </Directory> </VirtualHost> 这是我的index.wsgi: import os import sys import site # Add the app's directory to the PYTHONPATH sys.path.append('/home/email-validator') sys.path.append('/home/email-validator/email_validator') os.environ['DJANGO_SETTINGS_MODULE'] = 'email_validator.settings' […]