我不能适应这个问题的mod_wsgi 。 我有一个使用gdal的python烧瓶应用程序。 我以下面的方式启动它: LD_PRELOAD=/opt/gdal-custom/lib/libgdal.so.1 PYTHONPATH=../somemodules/ scl enable python27 "source ../python27/bin/activate; python flaskapp.py" 不过,我想将它放在mod_wsgi中。 做LD_PRELOAD=/opt/gdal-custom/lib/libgdal.so.1 service httpd24-httpd restart似乎不起作用。 在我的apacheconfiguration中也没有设置以下内容: SetEnv LD_PRELOAD /opt/gdal-custom/lib/libgdal.so.1 LoadModule wsgi_module modules/mod_wsgi.so WSGIPythonHome /opt/rh/httpd24/root/var/www/wsgi-virtualenv WSGIPythonPath /opt/rh/httpd24/root/var/www/AppFolder:/opt/rh/httpd24/root/var/www/SomeModules WSGIScriptAlias /AppFolder /opt/rh/httpd24/root/var/www/AppFolder/app.wsgi <Directory /var/www/AppFolder> AllowOverride none Require all granted </Directory> 这里是ldd的输出: (wsgi-virtualenv)ldd /opt/rh/httpd24/root/var/www/wsgi-virtualenv/lib/python2.7/site-packages/GDAL-1.11.2-py2.7-linux-x86_64.egg/osgeo/_gdal.so linux-vdso.so.1 => (0x00007fffac9ff000) libpython2.7.so.1.0 => /opt/rh/python27/root/usr/lib64/libpython2.7.so.1.0 (0x00007fce43438000) libgdal.so.1 => /opt/gdal-custom/lib/libgdal.so.1 (0x00007fce42490000) libstdc++.so.6 […]
我用Django开发了一个网站,我正在用apache和mod-wsgi(如这里所解释的)部署它。 问题是,我想确保这个网站只能在我的本地networking上访问。 在同一台服务器上,我将另外发布一个网站,可能还有Apache,这个网站可以访问互联网。 我怎样才能pipe理这个?
我有一个apache2服务器,最近似乎有内存泄漏。 我使用mod_wsgi在Python中编写服务器WEB服务。 起初我认为这是我的Python程序泄漏的内存。 但是在top命令之后,我找不到任何泄漏内存的进程。 这是我的top命令。 128 GB的内存使用。 但apache2进程只使用14.1 GB的内存,我找不到任何其他进程谁使用这样的大内存。 如何find它? top – 16:33:01 up 2 days, 22:20, 1 user, load average: 0.07, 0.03, 0.05 Tasks: 1975 total, 1 running, 1974 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 131987724k total, 131571384k used, 416340k free, 11068k buffers Swap: 999420k […]
我想通过Apache / mod_wsgi部署一个Flask api。 api使用Gevent为recursion方法提供并发性。 但是,这是抛出以下错误 [Mon Feb 08 12:05:37 2016] [error] error: cannot switch to a different thread [Mon Feb 08 12:05:37 2016] [error] <callback at 0x1094ee350 args=()> failed with error 当使用Pycharm的内置web服务器运行时,整个api运行得很好,而当我不使用gevent来提供并发时,使用Apache / mod_wsgi很好地部署api。 我认为这应该可以在Apache中运行,但我到目前为止还没有find解决scheme。 我一直看到提及猴子修补,所以我把这一行添加到gevent被调用的模块 from gevent import monkey; monkey.patch_all() 但是,这似乎没有帮助。 我在Flask文档( http://flask.pocoo.org/docs/0.10/deploying/wsgi-standalone/ )上的独立WSGI容器中发现了这一点: Gevent is a coroutine-based Python networking library that uses […]
我需要在我们拥有的窗口框中设置一个Apache实例。 我正在运行一个Python / Django应用程序,mod_wsgi是可取的,所以我可以重新启动个别应用程序。 不过,我需要在Windows下运行它。 Apache似乎并不容易在Windowspipe理(上次我尝试更新Windows实例,我不得不完全卸载并重新安装它)。 有什么工具可以简化吗? 还是有什么办法让我想要做的IIS或其他networking服务器?
有没有办法按需安全地重启mod_wsgi进程,可能在多台机器上运行? 我正在服务一个Django的应用程序与mod_wsgi守护进程模式与Apache: WSGIDaemonProcess myapp user=user group=user processes=30 threads=1 WSGIProcessGroup myapp 我阅读了mod_wsgi文档中的build议,但是没有一个build议的解决scheme适用于我: 在生产系统中不build议运行监视脚本。 发送杀死信号在我的情况下是不安全的。 我想避免中断运行请求。 重新加载不能使服务closures。 放慢速度很好。 触摸mod_wsgiconfiguration文件安全地执行技巧,但如何在多台机器上完成? 理想情况下,我们应该能够通过一个动作来重新启动进程。 有什么build议么? 注意:我必须用一个线程运行多个进程。 我的应用程序不是线程安全的。 编辑,如果这是我唯一的select,我可以从Puppet做到。 但我更喜欢是否有办法从一个特殊的保护视图。 我认为这是在一台机器上做的微不足道,而不是多台机器 非常感谢
很长一段时间,我使用Python 2.5来完成所有这些工作,但是最近升级到了2.7版本,因为构build2.5版本是件非常痛苦的事情。 我也为Python 2.7更新了mod_wsgi 3.3。 在CentOS上,Apache + mod_wsgi以及Windows和CentOS上的Django runserver都可以正常工作,但Windows上的Apache + mod_wsgi并不能正常工作。 每当我尝试访问我的Django应用程序页面时,我得到以下(注意,Apache启动罚款): ImportError at / DLL load failed: The specified module could not be found. 这是由以下原因造成的: from Crypto.Cipher import AES Etree和其他人导致完全相同的错误,并不限于任何特定的软件包。 任何与pyd文件失败。 谷歌search意味着重新安装Python“为所有用户”,但安装程序不会再给你这个选项了。 对于好的方法,我已经尝试重新安装Python 2.7作为pipe理员,并告诉它注册为Python的默认版本,但都没有帮助。 我认为解决scheme可能有些事情要做: 事实上,我已经在这台机器上安装了2.5,2.6和2.7,mod_wsgi可能会加载DLL而不是2.7。 一些WSGIPythonPath,我通常不需要设置。
我有以下的Apacheconfiguration。 以下服务位于每个端口上: 8022 – Apache。 testing端口,从长远来看将是80端口。 8002 – XDV ,一个位于其他服务前面的主题代理。 8202 – Trac ,基于Python的bug跟踪器,这是xdv需要坐在前面的一个服务,因此是分离的。 8082 – Plone CMS 。 没有在Apache中显示。 XDV代理请求它。 这个想法是,所有请求都是通过Apache(8022),通过xdv代理(8002),它将一个主题应用到每个内容源(8082和8202) 但是,我注意到在testing过程中,如果我通过8202访问Trac站点,那么RuntimeError: instance.__dict__ not accessible in restricted mode的8022站点错误RuntimeError: instance.__dict__ not accessible in restricted mode并且在Apache重新启动之前将不会再次工作。 无论8022是错误还是被访问,8202仍然工作。 这似乎与这个Trac错误有关 。 但我没有使用mod_python和WSGIProcessGroup和WSGIApplicationGroup是相同的值。 为什么会发生这种情况是否有更好的方法来设置Apache? 即wsgi元素? 在以前的设置迭代是在8022主机内,但这意味着它也从这个端口服务,并避免代理 <VirtualHost foo.bar.com:8022> ServerName foo.bar.com ServerAlias foo.bar.com ProxyRequests Off <Proxy *> Order deny,allow Allow […]
我有一个django项目,我正在从dev-server移动到apache。 我设法得到它与mod_wsgi服务器,但它运行为Apache。 Mod_wsgi文档说,如果Apache以root身份运行,则可以以不同的用户身份运行mod_wsgi进程。 Q1:是否有可能以不同的用户身份运行mod_wsgi而无需以根用户身份运行apache? Q2:如果回答是否定的,我该如何让apache以root身份运行。 我在CentOS 6机器上使用提供的存储库提供的httpd包。
$ /etc/init.d/httpd restart 启动httpd:httpd: /etc/httpd/conf/httpd.conf的第205行的语法错误: 无法将/etc/httpd/modules/mod_wsgi.so加载到服务器中: /etc/httpd/modules/mod_wsgi.so:无法打开共享对象文件: 无此文件或目录 文件:httpd.conf .. 205:LoadModule wsgi_module modules / mod_wsgi.so 任何想法,我怎样才能纠正这个错误或如何共享文件: mod_wsgi.so ,以便被加载和使用的Apache?