Установить путь оракула для приложения uwsgi, вызываемого сервисным файлом - PullRequest
0 голосов
/ 17 июня 2019

Я развернул приложение фляги с uwsgi и nginx

Ниже приведен INI-файл для uwsgi

[uwsgi]
;module = name of file which contains the application object in this case wsgi.py
LD_LIBRARY_PATH=/usr/lib/oracle/18.3/client64/lib
chdir=/home/ansible/apps/payment_handler
module = wsgi:application

;tell uWSGI (the service) to start in master mode and spawn 5 worker *processes* to serve requests
master = true
processes = 5

;a socket is much faster than a port, and since we will be using nginx to exppose the application this is better
socket = 0.0.0.0:8001

vaccum = true    
die-on-term = true

Когда я запускаю это из командной строки, как это

uwsgi --ini payment_app.ini

Это работает!

Однако я хотел бы запустить приложение с использованием службы, ниже приведен файл службы

[Unit]
Description=uWSGI instance to serve service app
After=network.target

[Service]
User=root

WorkingDirectory=/home/ansible/apps/payment_handler
Environment="PATH=/home/ansible/apps/payment_handler/env/bin"
ExecStart=/home/ansible/apps/payment_handler/env/bin/uwsgi --ini payment_app.ini

[Install]
WantedBy=multi-user.target

Однако он не работает, поскольку не можетнайти библиотеки для cx_oracle, которые я установил в моем файле bashrc

export LD_LIBRARY_PATH=/usr/lib/oracle/18.3/client64/lib

Однако, поскольку служебный файл не использует это для загрузки своих переменных env, он, похоже, не находит его

Журнал ошибок

Jun 17 09:58:06 mau-app-036 uwsgi: cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help

Я попытался установить его в INI-файле (как показано выше)

LD_LIBRARY_PATH=/usr/lib/oracle/18.3/client64/lib

Я также попытался установить его в моем init .pyфайл с помощью модуля os

os.environ['LD_LIBRARY_PATH'] = '/usr/lib/oracle/18.3/client64/lib'

Оба безрезультатно, любая помощь будет отличной благодаря Centos 7 btw

1 Ответ

1 голос
/ 18 июня 2019

Подобные проблемы: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

  sudo sh -c "echo /usr/lib/oracle/18.3/client64/lib > \
      /etc/ld.so.conf.d/oracle-instantclient.conf"
  sudo ldconfig
*1005*.* Обратите внимание, что пакеты RPM Instant Client 19.3 автоматически запускают это для вас.Некоторые сведения содержатся в блоге Instant Client 19c, посвященном выпуску Linux x64, .
...