我之前从未做过身份验证,但希望能够通过openID跟踪和验证用户身份.我看到了一些允许使用WSGI进行openID身份验证的模块,但是所有模块都是旧的,没有提到python3,所以我猜它们不起作用.
我想知道如何在WSGI和python3中处理/验证openID.一个简单的实现将不胜感激.
我在Apache2上使用mod_wsgi在ubuntu上部署我的Django网站.
在我的Django视图中,我导入了一个需要在LD_LIBRARY_PATH中设置特定路径的模块.
当我在/ etc/apache2/envvars中设置LD_LIBRARY_PATH时:
export LD_LIBRARY_PATH=/home/user/target_libdir:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
有用.
但是,在我的服务器上,我使用独立的wsgi脚本运行多个django网站,每个网站都在独立的VirtualHost条目中.
问题是网站需要使用不同的LD_LIBRARY_PATH版本.
那么,如何为每个django网站单独设置LD_LIBRARY_PATH?
我安装在Win7x64 Xampp和Python 2.7上.
现在我正试图获得Python语言的"力量"......我该怎么做?
我已经尝试过使用mod_python和mod_wsgi但是我的Python版本不存在第一个,当我在安装wsgi后尝试启动Apache时它会给我一个错误
< Directory "\x93C:/wsgi_app\x94"> path is invalid
Run Code Online (Sandbox Code Playgroud)
我在<和'directory'之间添加了一个空格,以使字符串在此处可见.
那么......任何人都知道是否有一些安装这些功能的教程?
或者是否有人能够一步一步地向我解释我该怎么做?
如果我不能解释我,谢谢,抱歉.
如果你需要什么,请问我.
在过去两个月与django的开发服务器合作之后,时间终于转移到了apache + mod_wsgi.
问题是,当我访问我的网站(让我们称之为junux),到映射到django应用程序的URL时,事情似乎不起作用.在服务器上运行开发服务器时,事情正常.
错误的底线是在apache error_log中给出的:
ImportError:无法导入设置'junux_site.settings'(是否在sys.path上?):没有名为importlib的模块
我知道这类似于对此事的许多其他问题(有这么多,我甚至不会说出来了这里),但我还没有找到答案.我已经阅读了很多关于转向生产的指南,包括django的部署文档,mod_wsgi的指南,一些pycon演示文稿,并且一直在谷歌上搜索这个问题......
下面有很多有趣和令人兴奋的细节.
任何帮助将不胜感激.提前致谢.
配置:
这是apache返回的错误页面:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Apache/2.2.15 (CentOS) Server at junux.net Port 80
Run Code Online (Sandbox Code Playgroud)
apache error_log显示以下信息:
mod_wsgi (pid=22502): Create interpreter 'junux.net|/dev'.
mod_wsgi (pid=22502): Exception occurred processing WSGI script '/var/www/junux_dev/junux_site/wsgi.py'.
Traceback (most recent call last):
File "/var/www/junux_dev/venv/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 219, in __call__
self.load_middleware()
File "/var/www/junux_dev/venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 39, in load_middleware
for middleware_path in …Run Code Online (Sandbox Code Playgroud) 正如我在标题上所说,我现在对基本了解它们感到非常不舒服.
据我所知,mod_wsgi实现了可以在Apache Web服务器下运行的WSGI规范.
它用C语言编写.
另外一个,werkzeug是一种具有实用功能的工具包.我还评论过werkzeug可以运行在其源代码中实现的简单服务(serve.server在serve.py中).我知道werkzeug具有有用的功能和简单的服务器功能.
我想知道的是下面的内容.
当在Apache Web服务器下使用基于werkzeug的Flask框架时,mod_wsgi到底做了什么?
werkzeug还具有基本的http服务器功能,不需要支持mod_wsgi.
任何人都可以解释mod_wsgi和werkzeug之间的区别吗?
mod_wsgi和werkzeug从Web服务器的角度来看具有重复的功能.
我在mod_wsgi上运行烧瓶.我的烧瓶应用程序,它正在/var/www/app接收来自用户的一些文件并将其保存到/var/www/app/tmp目录.然而,即使在所有chmod和chown(认为这是一个权限问题)之后,我也无法访问该tmp目录.
经过一些调试后,我发现烧瓶应用程序的当前工作目录是/.我可以通过更改工作目录os.chdir('/var/www/'),但出于安全考虑,我想避免这样做.
这是我的apache配置:
<VirtualHost *:80>
ServerName mysite.com
ServerAlias site.com
ServerAdmin admin@localhost
WSGIDaemonProcess app user=www-data group=www-data processes=1
WSGIScriptAlias / /var/www/app.wsgi
Alias /static /var/www/app/static
<Directory /var/www/app>
WSGIProcessGroup app
WSGIApplicationGroup %{GLOBAL}
WSGIScriptReloading On
Order deny,allow
Allow from all
</Directory>
<Location "/static">
SetHandler None
</Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
如何将应用程序的工作目录更改/为/var/www?
我正在尝试使用Apache和mod_wsgi运行Bottle.py.
我在Windows上运行它,使用xampp.python v2.7
我在httpd中的Apache配置:
<VirtualHost *>
ServerName example.com
WSGIScriptAlias / C:\xampp\htdocs\GetXPathsProject\app.wsgi
<Directory C:\xampp\htdocs\GetXPathsProject>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我的app.wsgi代码:
import os
os.chdir(os.path.dirname(__file__))
import bottle
application = bottle.default_app()
Run Code Online (Sandbox Code Playgroud)
我的hello.py:
from bottle import route
@route('/hello')
def hello():
return "Hello World!"
Run Code Online (Sandbox Code Playgroud)
当我去的时候,localhost/hello我收到404错误.我在Apache日志文件中没有任何其他错误,可能缺少基本的东西.
我试图在WordPress中运行Django,如主网址www.wptesting.com上的 WordPress 和郊区www.wptesting.com/django上的 Django .Django主根网址在www.wptesting.com/django正常工作, 但其郊区,例如,管理员无法工作,因为它应该是www.wptesting.com/django/admin.但是,每当我尝试请求管理员网址时,它都会转换为www.wptesting.comhttp%3a // wptesting.com/django/admin
我用Apache和运行WordPress和Django mod_wsgi,我的apache文件如下:
<VirtualHost *:80>
WSGIScriptAlias /django /path_to_project/wsgi.py
ServerName wptesting.com
ServerAlias www.wptesting.com
DocumentRoot /var/www/html/wordpress
<Directory /var/www/html/wordpress/>
AllowOverride All
Order allow,deny
allow from all
# Options Indexes FollowSymLinks
# Require all granted
</Directory>
<Directory /path_to_project/>
Options Indexes FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我之前问了一个关于使用Apache和wsgi从WordPress的子目录配置Django 的问题 - > 你可以在这里看到问题
另外,如果我试图访问任何网址这是不是在Django项目则给予标准的404未找到错误,但是当我试图访问任何有效的URL如admin这是给上述错误不在话下.
编辑: 我的Urls.py文件:
from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.views.generic import …Run Code Online (Sandbox Code Playgroud) 我需要拆分Django的开发和生产设置.我决定如果USKOVTASK_PROD设置了变量,那么app应该使用生产设置.我读了这篇文章并试图这样做.
我的片段:
/etc/apache2/sites-enabled/uskovtask.conf:
<VirtualHost *:80>
ServerName uskovtask.*.com
ServerAlias uskovtask.*.com
DocumentRoot /mnt/ebs/uskovtask
Alias /static /mnt/ebs/uskovtask/static/
<Directory /mnt/ebs/uskovtask/static>
Require all granted
</Directory>
#WSGIPythonPath /mnt/ebs/uskovtask
WSGIDaemonProcess uskovtask.*.com python-path=/mnt/ebs/uskovtask:/usr/lib/python2.7/site-packages
WSGIProcessGroup uskovtask.*.com
WSGIScriptAlias / /mnt/ebs/uskovtask/uskovtask/wsgi.py
SetEnv USKOVTASK_PROD 1
<Directory /mnt/ebs/uskovtask/uskovtask>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
wsgi.py:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "uskovtask.settings")
from django.core.wsgi import get_wsgi_application
_application = get_wsgi_application()
def application(environ, start_response):
if 'USKOVTASK_PROD' in environ:
os.environ.setdefault('USKOVTASK_PROD', environ['USKOVTASK_PROD'])
return _application(environ, start_response)
Run Code Online (Sandbox Code Playgroud)
settings.py的部分:
import os
if 'USKOVTASK_PROD' in os.environ:
from settings_prod …Run Code Online (Sandbox Code Playgroud) 我正在使用mod_wsgi在apache2上部署一个django项目,但问题是服务器不提供页面并在发出错误之前挂起10分钟:
End of script output before headers
Run Code Online (Sandbox Code Playgroud)
这是我的site-available/000-default.conf:
ServerAdmin webmaster@localhost
DocumentRoot /home/artfact/arTfact_webSite/
Alias /static /home/artfact/arTfact_webSite/static
<Directory /home/artfact/arTfact_webSite/static>
Order allow,deny
Allow from all
Require all granted
</Directory>
<Directory /home/artfact/arTfact_webSite>
Order allow,deny
Allow from all
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess artfact_site processes=5 threads=25 python-path=/home/artfact/anaconda/lib/python2.7/site-packages/:/home/artfact/arTfact_webSite
WSGIProcessGroup artfact_site
WSGIScriptAlias / /home/artfact/arTfact_webSite/arTfact_webSite/wsgi.py
Run Code Online (Sandbox Code Playgroud)
settings.py
"""
Django settings for arTfact_webSite project.
Generated by 'django-admin startproject' using Django 1.8.5.
For more information on this file, see
https://docs.djangoproject.com/en/1.8/topics/settings/
For the full list of settings …Run Code Online (Sandbox Code Playgroud) mod-wsgi ×10
python ×8
apache ×7
django ×4
wsgi ×2
apache2 ×1
bottle ×1
deployment ×1
django-urls ×1
openid ×1
python-3.x ×1
virtualenv ×1
werkzeug ×1
windows ×1
wordpress ×1
xampp ×1