Wil*_*Wil 4 python apache mod-wsgi virtualenv vagrant
我为我正在构建的应用程序配置了一个流浪盒,但是在尝试让Apache服务时我遇到了麻烦.
它正在使用virtualenv它的软件包 - 现在只是Flask和它的依赖项,而且一切正常.我可以通过SSH进入并在环境中运行应用程序.该应用程序本身只是目前最小的应用程序.
Apache错误
[Sun Mar 31 10:06:54 2013] [error] [client 10.0.2.2] mod_wsgi (pid=1587): Exception occurred processing WSGI script '/vagrant/myapp/myapp.wsgi'.
[Sun Mar 31 10:06:54 2013] [error] [client 10.0.2.2] TypeError: 'module' object is not callable
Run Code Online (Sandbox Code Playgroud)
档
/vagrant
??? env
??? myapp
??? app.py
??? myapp.wsgi
Run Code Online (Sandbox Code Playgroud)
myapp.wsgi
activate_this = '/vagrant/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import sys
sys.path.insert(0, '/vagrant/myapp')
import app as application
Run Code Online (Sandbox Code Playgroud)
默认站点vhost
<VirtualHost *:80>
WSGIDaemonProcess myapp user=www-data group=www-data threads=5
WSGIScriptAlias / /vagrant/myapp/myapp.wsgi
<Directory /vagrant/myapp>
WSGIProcessGroup myapp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我尝试用用户和组运行Apache,并将vagrantsite-packages和app目录添加到www-data.我也尝试将WSGIDaemon用户和组更改为vagrant.
我已经尝试将网站包添加到路径中,我已经尝试添加__init__.py到myapp并更改myapp.wsgi为from myapp import app as application.
该应用程序可以运行source ../env/bin/activate && python app.py.
我很难过.
我遇到的问题是在wsgi文件中,因为我导入的是应用程序包而不是其中的类(因为它们被命名为相同而被捕获.)
activate_this = '/vagrant/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import sys
sys.path.insert(0, '/vagrant/myapp')
from app import app as application
Run Code Online (Sandbox Code Playgroud)
注意最后一行已经改变了import app as application.
| 归档时间: |
|
| 查看次数: |
2790 次 |
| 最近记录: |