我有一个运行全新安装的Ubuntu 10.04 LTS的VPS.我正在尝试使用Flask微框架设置一个实时应用程序,但它给了我麻烦.当我试图让它运行时我记笔记,这是我的逐个播放,以确定我出错的确切位置.
http://flask.pocoo.org/docs/installation/#installation
$ adduser myapp
$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install virtualenv
/home/myapp/
-- www/
$ sudo pip install virtualenv
/home/myapp/
-- www/
-- env/
$ . env/bin/activate
$ easy_install Flask
Run Code Online (Sandbox Code Playgroud)
http://flask.pocoo.org/docs/deploying/mod_wsgi/
$ sudo apt-get install apache2
$ sudo apt-get install libapache2-mod-wsgi
Run Code Online (Sandbox Code Playgroud)
$ nano /home/myapp/www/myapp.wsgi
--myapp.wsgi contents:--------------------------
activate_this = '/home/myapp/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
from myapp import app as application
/home/myapp/
-- www/
-- myapp.wsgi
-- env/
Run Code Online (Sandbox Code Playgroud)
$ nano …Run Code Online (Sandbox Code Playgroud) 我从apache 2.2和python 2.7(64bit)的以下位置下载了mod_wsgi .(我想让django在我的电脑上运行).
每当我添加以下行:
LoadModule wsgi_module modules/mod_wsgi.so
Run Code Online (Sandbox Code Playgroud)
Apache无法启动.谁能告诉我这个问题可能是什么?
我在Ubuntu 12.04 LTS上设置一个Django服务器,我在使用正确版本的python安装mod-wsgi时遇到问题.我用python 3.3在本地构建了我的站点,Ubuntu 12.04与python 3.2捆绑在一起.我想我可以,但宁愿不只是使用3.2而不是3.3,所以我在3.2旁边安装了python 3.3.除了mod-wsgi之外,我为python 3.3安装了所有东西.
在运行python3.3的本地机器上安装libapache2-mod-wsgi-py3并sudo apt-get install libapache2-mod-wsgi-py3安装python3.3.但是在Ubuntu服务器上,运行相同的代码会为python3.2安装它,以便Web服务器运行3.2并且找不到django.
有没有办法禁用python3.2,或指向脚本为python 3.3安装它?
编辑:经过深入研究,python3.2没有与ubuntu捆绑在一起,而是与libapache2-mod-wsgi-py3一起安装
任何人都可以给我一个明确的说明,在Ubuntu for Python 3上安装mod_wsgi吗?
我确实使用Python3成功地获得了Flask和mod_wsgi,并且在短时间内感到高兴.
...直到我查看Apache的日志并意识到我遇到了这个问题:https://askubuntu.com/questions/569550/assertionerror-using-apache2-and-libapache2-mod-wsgi-py3-on- Ubuntu的14-04的Python
apt-get正在安装过时的版本,libapache2-mod-wsgi-py3这会导致Apache日志中的错误. (我应该报告这个,如果是这样的话?)
在链接中,工程师正在使用pip安装更新版本.
有趣的是,他似乎将其安装到虚拟Python3环境中.(这与使用系统有什么不同pip3吗?)
他也使用pip3 install mod_wsgi,但pip3 search mod_wsgi返回:
(编辑:不,他没有,他使用pip而不是pip3.这可能是正确的吗?他的电线是否交叉?是不是要忽略他在py3venv中并简单地使用系统的py2安装的事实?但无论如何,这并不能解决困惑...)
mod_wsgi-metrics - Metrics package for Apache/mod_wsgi.
cykooz.recipe.pastewsgi - Buildout recipe to create paste.deploy entry points for mod_wsgi or uwsgi
mod_wsgi-httpd - Installer for Apache httpd web server.
apachemiddleware - Useful Python middleware for use with mod_wsgi deployments
tranchitella.recipe.wsgi - Buildout recipe to create paste.deploy entry points for mod_wsgi
mod_wsgi …Run Code Online (Sandbox Code Playgroud) 我正在更改网站的域名.在一段时间内,我希望旧域名和新域名指向该站点.我正在运行一个Python Django站点.
我最初的Apache2 conf工作正常,基础是:
<VirtualHost *:80>
ServerAdmin name@gmail.com
ServerName originalsite.co.uk
ServerAlias www.originalsite.co.uk
DocumentRoot /var/www/originalsite
WSGIDaemonProcess originalsite python-path=/var/www/originalsite:/var/www/originalsite/env/lib/python2.7/site-packages
WSGIProcessGroup originalsite
WSGIScriptAlias / /var/www/originalsite/originalsite/wsgi.py
...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我设置了一个新的conf文件,只有以下更改:
ServerName newsite.co.uk
ServerAlias www.newsite.co.uk
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
名称重复以前的WSGI守护程序定义.
我该如何解决?谢谢你的帮助
我正在使用mod_wsgi将我的Django项目配置为在Apache上运行.我试图在apache上的'cflow'目录下运行Django,但是遇到重定向问题.
我的apache conf看起来像这样:
...
WSGIScriptAlias /cflow "C:\Program Files\Apache Software Foundation\Apache2.2\wsgi\django.wsgi"
<Directory "C:\Program Files\Apache Software Foundation\Apache2.2\wsgi">
Order allow,deny
Allow from all
</Directory>
<Directory "C:\Projects\myproject\src">
Order allow,deny
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,如果用户未登录,则会将/cflow/somepage.html的请求重新发送到/accounts/login?next=/cflow/somepage.html.这个新地址不在django root(cflow)之下,因此apache以404 Not Found响应.
我的问题是如何将Django重定向映射到apache上的应用程序根目录下?即我如何使/ accounts/...页面改为/ cflow/accounts/...?
谢谢你的帮助.
我有两个不同的Django"项目",我想使用mod_wsgi在单个域上运行.使用mod_python,我相信有一种方法可以做到这一点,其中某些url路径将映射到一个Django项目,而其他路径映射到另一个项目,所有这些都在服务器级别.
是否可以使用mod_wsgi执行此操作,如果是,如何执行此操作?
我考虑过的事情:Apache虚拟主机描述中的内容,application.wsgi文件中的内容等等.但我还没弄清楚具体如何做到这一点.
谢谢!
我有一个Django项目,我使用标准库日志记录模块记录到一个文件.出于各种原因,我想更改它以便写入Apache日志文件.我已经看过很多关于如何使用mod_python进行讨论的讨论,但不是mod_wsgi.如何在mod_wsgi下运行的项目中执行此操作?
我目前正在使用两个Django应用程序(说A&B)通过Apache托管在同一个域上(但在不同的端口上提供服务).我相信我的设置是正确的,但我在两个网站上随机获得500.500 on A(例如)发生在请求被提供之后B(反之亦然).
在检查错误日志(都说A例如),我看到A的WSGI模块试图访问B的settings.py文件(这显然不会发生在那里,因为项目路径是不同的),这确实发生了另外,B的wsgi引发了一个例外,抱怨缺少A的settings.py文件].我不确定他们为什么要查找其他设置文件,所有视图的导入(对于settings.py)都是特定于各个项目的.
这是我的设置:
A正在港口服务8080,B正在港口服务80.
虚拟主机:
<VirtualHost *:8080>
ServerAdmin x@x.net
ServerName string1
Alias /static/ /home/PATH_TO_PROJECT_A/static/
<Directory /home/PATH_TO_PROJECT_A/static>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / /home/PATH_TO_PROJECT_A/wsgi.py
<Directory /home/PATH_TO_PROJECT_A>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
LogLevel warn
ErrorLog /SOME_PATH/errorA.log
CustomLog /SOME_PATH/accessA.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName string1
ServerAdmin x@x.net
Alias /APP_B/static/ /home/PATH_TO_PROJECT_B/static/
<Directory /home/PATH_TO_PROJECT_B/static>
Order …Run Code Online (Sandbox Code Playgroud) 我想让我的Flask应用程序在CentOS服务器上运行.基本上问题是我安装了Python 2.6,/usr/bin其中安装了系统默认和Python 3.4 /usr/local/bin.我想使用Python 3.4 virtualenv或至少Python 3.4解释器来运行我的应用程序mod_wsgi.
我已经创建了virtualenv ~/virtualenvs/flask.
我有这个WSGI脚本:
import os
import sys
from logging import Formatter, FileHandler
APP_HOME = r"/home/fenikso/Album"
activate_this = os.path.join("/home/fenikso/virtualenvs/flask/bin/activate_this.py")
execfile(activate_this, dict(__file__=activate_this))
sys.path.insert(0, APP_HOME)
os.chdir(APP_HOME)
from app import app
handler = FileHandler("app.log")
handler.setFormatter(Formatter("[%(asctime)s | %(levelname)s] %(message)s"))
app.logger.addHandler(handler)
application = app
Run Code Online (Sandbox Code Playgroud)
并在Apache中配置以下:
<VirtualHost *:80>
ServerName album2.site.cz
Alias /static "/home/fenikso/Album/static"
Alias /photos "/home/fenikso/Album/photos"
Alias /thumbs "/home/fenikso/Album/thumbs"
WSGIScriptAlias / "/home/fenikso/Album/wsgi.py"
<Directory "/home/fenikso/Album">
AllowOverride None
Allow from all
</Directory>
<Directory "/home/fenikso/Album/static">
AllowOverride None
Allow from …Run Code Online (Sandbox Code Playgroud) mod-wsgi ×10
apache ×6
python ×5
django ×4
flask ×2
ubuntu ×2
virtualenv ×2
apache2 ×1
logging ×1
pip ×1
python-3.x ×1
redirect ×1
ubuntu-12.04 ×1
wamp ×1
windows-7 ×1