Ich verwende SSHTunnelForwarder, um Remote-Datenbank zu verbinden, ich führe den folgenden Code in Befehl Lind Python-Client innerhalb Anaconda
Umgebung und es funktioniert gut.SSHTunnelForwarder funktioniert gut in der Befehlszeile Python aber ausgelöst Importfehler in Apache WSGI-Anwendung
with SSHTunnelForwarder(
('ip', 22),
ssh_password="pass",
ssh_username="name",
remote_bind_address=('localhost', 3306)) as server:
#connect DB
Das Problem war, wenn ich das gleiche Stück Code in einer WSGI Anwendung in apache2 mit mod_wsgi eingesetzt, bekam ich den Fehler:
ImportError: /home/user/anaconda2/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so: undefined symbol: X509_get_signature_nid
ich dachte, es war, weil Apache LD_LIBRARY_PATH
exportiert hat, die ist nicht /home/user/anaconda2/lib/
. Dann änderte ich die Datei /opt/lampp/bin/envvars
und fügte am Ende eine Zeile export LD_LIBRARY_PATH=/home/user/anaconda2/lib
hinzu. Ich habe dann Apache neu gestartet, aber immer noch den gleichen Fehler.
Gibt es eine andere env Variable, die ich ignoriert habe?
ich sehe, keine Möglichkeit, herumzulaufen? – franky
Laden Sie mod_ssl nicht, wenn Sie es nicht verwenden. Oder verwenden Sie stattdessen mod_wsgi-express, um eine separate Instanz zu starten und das Front-Interface von Apache (das mod_ssl verwendet) für die Proxy-Authentifizierung zu verwenden. Oder verwenden Sie nicht Anaconda Python, verwenden Sie stattdessen das System Python, das die gleichen SSL-Bibliotheken verwenden sollte wie Apache. –