2017-04-22 79 views
0

我想在使用wsgi的Ubuntu VPS中部署FLASK应用程序,但出现内部服务器错误。检查apache.log给了我以下错误:无法解析在WSGI/Apache上运行的Flask应用程序中的路径

No such file or directory: 'files/filesystem/filesystem.pickle'.

我的目录树是这个样子下/var/www/

dmft_seacrh_engine 
    files 
     filesystem 
      filesystem.pickle 
    dmft_search.wsgi 
    dmft_search 
     controllers 
      search.py 

我试图打开filesystem.picklesearch.py如下:

with open('/files/filesystem/filesystem.pickle', 'rb') as handle: 
    filesystem = pickle.load(handle) 

dmft.wsgi文件的内容有:

activate_this = '/opt/dmft/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this)) 
import sys 
import logging 
logging.basicConfig(stream=sys.stderr) 
sys.path.insert(0,"/var/www/dmft_search_engine") 

from dmft_search import app as application 

这是我的conf文件的外观:

<VirtualHost *:80> 
       ServerName  dmft_search_engine.com 
       WSGIScriptAlias//var/www/dmft_search_engine/dmft_search.wsgi 
       <Directory /var/www/dmft_search_engine/dmft_search/> 
         Order allow,deny 
         Allow from all 
       </Directory> 
       Alias /static /var/www/dmft_search_engine/dmft_search/static 
       <Directory /var/www/dmft_search_engine/dmft_search/static/> 
         Order allow,deny 
         Allow from all 
       </Directory> 
       Alias /files /var/www/dmft_search_engine/files/$ 
       <Directory /var/www/dmft_search_engine/files/>$ 
         Order allow,deny 
         Allow from all 
       </Directory> 

       ErrorLog ${APACHE_LOG_DIR}/error.log 
       LogLevel warn 
       CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

请帮助我。我还在.conf文件中添加了一个/files的别名。 我该如何解决这个问题?

回答

0

的问题是,在根目录 的背景下,应用程序运行,所以正确的路径应该是:

with open('var/www/html/dmft_search_engine/files/filesystem/filesystem.pickle', 'rb') as handle: 
     filesystem = pickle.load(handle) 
相关问题