2017-04-22 6 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 

私は、次のようsearch.py内部filesystem.pickleをオープンしようとしています:

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) 
関連する問題