2017-10-15 14 views
0

WebブラウザでDjango + mod_wsgiとapacheを使用して読み込むようにしようとしています。 This Question Hereとまったく同じ問題がありますが、そこに見つかった解決策は私の場合は機能しません。私は/usr/local/docs/binshellpress-production/virtpyに設定した仮想環境を持っているDjango + mod_wsgi致命的なPythonエラー:Py_Initialize:エンコーディングという名前のモジュールがありません

WSGIDaemonProcess binshellpress.com python-home=/usr/local/docs/binshellpress-production/virtpy/ python-path=/usr/local/docs/binshellpress-production/virtpy/lib/python3.6/ 
WSGIProcessGroup binshellpress.com 
WSGIApplicationGroup %{GLOBAL} 

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "/usr/local/docs/binshellpress-production/root" 
    ServerName binshellpress.com 
    ServerAlias www.binshellpress.com 
    ErrorLog "/var/log/httpd/bsp-error_log" 
    CustomLog "/var/log/httpd/bsp-access_log" common 

    Alias /robots.txt /usr/local/docs/binshellpress-production/static/robots.txt 
    Alias /favicon.ico /usr/local/docs/binshellpress-production/static/favicon.ico 

    Alias /media/ /usr/local/docs/binshellpress-production/media 
    Alias /static/ /usr/local/docs/binshellpress-production/static 

    <Directory /usr/local/docs/binshellpress-production/static> 
    Require all granted 
    </Directory> 

    <Directory /usr/local/docs/binshellpress-production/media> 
    Require all granted 
    </Directory> 

    WSGIScriptAlias//usr/local/docs/binshellpress-production/binshellpress/wsgi.py process-group=binshellpress.com 

    <Directory /usr/local/docs/binshellpress-production/binshellpress> 
    <Files wsgi.py> 
     Require all granted 
    </Files> 
    </Directory> 
</Virtualhost> 

は、ここに私のhttpd-vhosts.confのセットアップです。私は明示的にその仮想環境を使用するためにmod_wsgiを再構築しました。私は答えに記載されているようにアクセス許可の変更を行ったThis Question

変更なし。

私は絶望的です。私は上下に検索しています。私は何をすべきか分かりません。私を助けてください。お願いです。

ありがとうございました、ありがとう、ちょっと、助けてください、ありがとう。

+0

サーバ上で、Apacheが実行するユーザとして、virtualenvを起動して 'python manage.py runserver'を実行しようとしましたか?それはしばしば根底にある問題を明らかにするでしょう。 mod_wsgiを、システム全体でのPythonのインストールではなく、virtualenvでコンパイルするのが最善ですが、virtualenvをビルドするのと同じバージョンでなければなりません。 – FlipperPA

+0

仮想環境を使用している場合でも、システムPythonに対してmod_wsgiをコンパイルすることは厳密には必要ではありません。実際、仮想環境で '' pip install mod_wsgi''を実行すると、選択肢がありません。 –

答えて

0

まず第一に、python-homeの値を確認するには、使用してやりたいコマンドラインのPythonを実行することによって、正しいです:

import sys 
sys.prefix 

それは同じ値である必要があります。

python-path=/usr/local/docs/binshellpress-production/virtpy/lib/python3.6/ 

を必要とするべきではありません、あなたはそれを追加することになり、なぜ私が見ることができません。

もあることに注意してください。 mod_wsgiのに対してリンクされているどのようなライブラリや場所

次に、でチェックを実行しますか?

mod_wsgiバイナリが正しいPythonバージョンに対してコンパイルされている場合は、システムPythonではなく、標準ではないPythonインストールであるという唯一の問題があります。この場合、正しくリンクされていないと、別のPythonインストールの代わりにシステムのPython共有ライブラリが見つかる可能性があります。

再び仮想環境からPython用のコマンドラインから、試してみてください。

import sys 
sys.real_prefix 

あなたはそのために何を得るのですか?

関連する問題