2017-06-17 14 views
0

SSHTunnelForwarderを使用してリモートデータベースに接続しています.Lind PythonクライアントのコマンドラインでAnaconda環境で次のコードを実行しても問題ありません。SSHTunnelForwarderはコマンドラインのpythonでは正常に動作しますが、Apache WSGIアプリケーションでインポートエラーが発生しました

with SSHTunnelForwarder(
     ('ip', 22), 
     ssh_password="pass", 
     ssh_username="name", 
     remote_bind_address=('localhost', 3306)) as server: 
    #connect DB 

問題は、私はmod_wsgiを持つのapache2でWSGIアプリケーションのコードの同じ部分を展開したとき、私はエラーを得た:

ImportError: /home/user/anaconda2/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so: undefined symbol: X509_get_signature_nid 

私は、ApacheがLD_LIBRARY_PATHを輸出しているので、それはだと思った、その/home/user/anaconda2/lib/ではありません。その後、ファイル/opt/lampp/bin/envvarsを変更して、末尾に1行のexport LD_LIBRARY_PATH=/home/user/anaconda2/libを追加しました。私はその後Apacheを再起動しましたが、同じエラーが発生しました。

私が無視した他のenv変数はありますか?

答えて

3

mod_sslがロードされているApacheでは、Anaconda Pythonを使用できません。これは、Anaconda Pythonには独自のSSLライブラリがありますが、Apacheはシステムにそれらをロードするためです。それが起こると、SSLを使用するAnacondaコードが破損します。

+0

私は歩くことはできません。 – franky

+2

mod_sslを使用していない場合は、ロードしないでください。あるいは、代わりにmod_wsgi-expressを使用して別のインスタンスを実行し、Apache(mod_sslを使用している)がプロキシに向いているようにしてください。 Anaconda Pythonを使用しないでください。システムのPythonを代わりに使用してください。これは、Apacheが使用するものと同じSSLライブラリを使用する必要があります。 –

関連する問題