2017-02-02 1 views
0

Je tente d'exécuter une application de flacon avec mod_wsgi sur Ubuntu 16.04. Je rencontre un problème lors de la définition de la variable d'environnement $LD_LIBRARY_PATH$. Je peux placer ceci dans mon dossier ~.bashrc, et par conséquent je peux importer toutes mes bibliothèques et dépendances sans problème. Cependant, il semble apache semble effacer ces variables d'environnement.Comment configurer LD_LIBRARY_PATH avec apache

L'erreur que je reçois dans mon fichier journal est le suivant

ImportError: libmkl_rt.so: cannot open shared object file: No such file or directory 

Il y a deux bibliothèques python j'importe qui nécessitent MKL. Le premier ne semble pas se plaindre. Cependant, la deuxième bibliothèque ne peut pas être importée en raison de l'erreur mkl.

Je trouve cela étrange, j'ai donc recompilé la deuxième bibliothèque Python après avoir défini la variable d'environnement $LD_RUN_PATH sur les chemins mkl. Cependant, il est toujours impossible de trouver mkl.

Comment puis-je configurer apache en conséquence? Toutes les autres importations fonctionnent bien. Je suis capable d'exécuter les scripts de flac seul sans apache, donc je suis à peu près sûr que c'est un problème d'apache.

+0

Si vous êtes confiant vous définissez '' LD_RUN_PATH'' correctement lors de la compilation des bibliothèques ou modules Python qui avaient besoin '' '' libmk_rt.so'' et ldd '' sur ces binaires montrent qu'il est correctement trouvé sans avoir '' LD_LIBRARY_PATH'' en train d'être défini, le problème peut être que la bibliothèque ou le répertoire dans lequel il se trouve peut ne pas être lisible par l'utilisateur qu'Apache exécute votre code. –

+0

J'ai lancé ldd sur la bibliothèque et le chemin de la bibliothèque mkl est apparu. Qu'est-ce que ça veut dire? – user3543300

+0

En fait, j'ai réalisé que j'avais aussi des erreurs d'importation sur d'autres bibliothèques. Il semble que Apache ne trouve pas beaucoup d'autres bibliothèques python. – user3543300

Répondre

1

apache par chemin système d'utilisation par défaut lib. Il suffit donc d'ajouter le lien de votre fichier à /usr/lib puis d'exécuter la commande sudo ldconfig. peut-être problème à résoudre

également ce poste peut être utile https://stackoverflow.com/a/23244452/6876911

+0

Comment ajouter le lien. MKL est dans le répertoire '/ opt' – user3543300

+0

J'ai essayé le poste que vous lié et ajouté le chemin directement, mais il n'a pas fonctionné encore – user3543300

+0

@ user3543300' ln -s sudo '. Quelle dose faites-vous exactement? – sahama