2017-06-01 28 views
0

ubuntu-16.04にxamppをインストールしました。 XAMPPルートインストール場所:/opt/lamppPythonはsslモジュールをインポートできません

パイソン2.7.12 ジャンゴ1.11 XAMPP 5.6.30

wsgi.py設定: `パイソン

import os 
import sys 
import site 

site.addsitedir('/opt/lampp/htdocs/dpcm/dpcm/lib/python2.7/site-packages') 

sys.path.insert(0, '/opt/lampp/htdocs/dpcm') 
sys.path.insert(1, '/opt/lampp/htdocs/dpcm/dpcm1') 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dpcm1.settings") 
os.environ.setdefault("PYTHON_EGG_CACHE", "/opt/lampp/htdocs/dpcm/.python-eggs") 

from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

# if import ssl module, it will occur an error. 
import ssl 

`

/opt/lampp/apache2/conf/httpd.conf内容:

Alias /bitnami/ "/opt/lampp/apache2/htdocs/" 
Alias /bitnami "/opt/lampp/apache2/htdocs" 

<Directory "/opt/lampp/apache2/htdocs"> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 

WSGIScriptAlias /dpcm/ /opt/lampp/htdocs/dpcm/dpcm1/wsgi.py 

#WSGIDaemonProcess /dpcm/ python-path=/opt/lampp/htdocs/dpcm:/opt/lampp/htdocs/dpcm/dpcm/lib/python2.7/site-packages 
#WSGIProcessGroup /dpcm/ 

WSGIPythonPath /opt/lampp/htdocs/dpcm 
WSGIPythonHome /opt/lampp/htdocs/dpcm/dpcm/ 
<Directory /opt/lampp/htdocs/dpcm/dpcm1> 
    <Files wsgi.py> 
     Order deny,allow 
     Require all granted 
    </Files> 
</Directory> 

Alias /static/ /opt/lampp/htdocs/dpcm/static/ 
<Directory /opt/lampp/htdocs/dpcm/static> 
    Order allow,deny 
    Allow from all 
</Directory> 

import sslモジュールを非アクティブモードにすると、正常にインポートできます。 しかし、エラーメッセージが報告されます、wsgi.pyまたは他のDjangoのプロジェクトファイルの「インポートSSL」を追加した場合:通常で

[Thu Jun 01 10:54:13.272126 2017] [wsgi:error] [pid 5430] [client 10.0.2.15:41534] mod_wsgi (pid=5430): Target WSGI script '/opt/lampp/htdocs/dpcm/dpcm1/wsgi.py' cannot be loaded as Python module. 
[Thu Jun 01 10:54:13.272176 2017] [wsgi:error] [pid 5430] [client 10.0.2.15:41534] mod_wsgi (pid=5430): Exception occurred processing WSGI script '/opt/lampp/htdocs/dpcm/dpcm1/wsgi.py'. 
[Thu Jun 01 10:54:13.272207 2017] [wsgi:error] [pid 5430] [client 10.0.2.15:41534] Traceback (most recent call last): 
[Thu Jun 01 10:54:13.272230 2017] [wsgi:error] [pid 5430] [client 10.0.2.15:41534] File "/opt/lampp/htdocs/dpcm/dpcm1/wsgi.py", line 33, in <module> 
[Thu Jun 01 10:54:13.272308 2017] [wsgi:error] [pid 5430] [client 10.0.2.15:41534]  import ssl 
[Thu Jun 01 10:54:13.272320 2017] [wsgi:error] [pid 5430] [client 10.0.2.15:41534] File "/usr/lib/python2.7/ssl.py", line 97, in <module> 
[Thu Jun 01 10:54:13.276754 2017] [wsgi:error] [pid 5430] [client 10.0.2.15:41534]  import _ssl    # if we can't import it, let the error propagate 
[Thu Jun 01 10:54:13.276826 2017] [wsgi:error] [pid 5430] [client 10.0.2.15:41534] ImportError: /opt/lampp/lib/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by /opt/lampp/htdocs/dpcm/dpcm/lib/python2.7/lib-dynload/_ssl.x86_64-linux-gnu.so) 

を、それが/usr/libへの.soをリンクするが、それは/opt/lampp/libで見つける、 だから私はそれがenv変数の問題だと思う。 シェルスクリプトに次のコードを追加します。lampp

LD_LIBRARY_PATH='/usr/lib' 
export LD_LIBRARY_PATH 

とコメントコード

# if test "$(osguess)" = "macosx" 
# then 
#  # Thanks to drosenbe! - oswald [3sep10] 
#  if test -z $DYLD_LIBRARY_PATH 
#  then 
# export DYLD_LIBRARY_PATH="$LIBRARY_PATH" 
#  else 
# export DYLD_LIBRARY_PATH="$LIBRARY_PATH:$DYLD_LIBRARY_PATH" 
#  fi 
# else 
#  # Thanks to drosenbe! - oswald [3sep10] 
#  if test -z $LD_LIBRARY_PATH 
#  then 
# export LD_LIBRARY_PATH="$LIBRARY_PATH" 
#  else 
# export LD_LIBRARY_PATH="$LIBRARY_PATH:$LD_LIBRARY_PATH" 
#  fi 
# fi 

これは無用である、誰もが私と同じ問題を抱えているのでしょうか?

+0

Python仮想環境でmod_wsgiを正しく設定する方法については、http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.htmlをお読みください。 '' python-path''を使ってはいけません。これはあなたのSSLの問題とは無関係です。 –

答えて

0

ただ輸入

site.addsitedir('/opt/lapmpp/htdocs/dpcm/dpcm/lib/python2.7/site-packages') 

後ではなくは/ opt/lapmppは/ opt/LAMPPべきか?

この変更をお試しください。

+0

opps、まだ動作しません、私はこの問題は[質問](https://stackoverflow.com/questions/37802196/libcrypto-so-1-0-0-version-openssl-1-0-1と同じだと思います-not-found-during-shell-exec) –

1

Pythonディストリビューションは、Apacheディストリビューションが使用しているものとは異なるSSLライブラリ用にコンパイルされています。 Apacheによってロードされたものが優先され、Pythonが後で失敗する原因となります。

つまり、言語ランタイムがシステムSSLライブラリを使用しているPython、PHP、Perlなどの言語を組み込んだApacheモジュールと互換性がないため、そのApacheディストリビューションを使用することはできません。代わりに、システムのApache配布を使用してください。

+0

はい、あなたは正しいです、私はxamppの代わりに私のプロジェクトを提供するためにapache2 + mysqlを使用しました。それはうまくいく。どうもありがとう。 –

関連する問題