Как разрешить Flask с uWSGI и Nginx доступ к системным программам - PullRequest
0 голосов
/ 26 января 2020

У меня есть виртуальная среда, использующая uWSGI. (Ubuntu 18.04)
Я хочу запустить программу, которая требует ffmpeg, когда пользователи получают доступ к маршруту Flask.

  • Случай 1: Если я запускаю ту же программу из терминала, она выполняется успешно.
  • Случай 2: Если я получаю доступ к маршруту, программа завершается ошибкой с сообщением об установке ffmpeg
  • Случай 3: если я получаю доступ к другому маршруту, который содержит подпроцесс для запуска отдельного файла .py, он также завершается ошибкой.

Я предполагаю, что моя виртуальная среда ограничена доступ к определенным программам из системы, или мне нужно установить его по-другому.

Это будет связано с PATH или разрешениями? - Любое предложение о том, что я должен посмотреть?


Если это поможет, это моя конфигурация:

Systemd Unit File для WSGI (/etc/systemd/system/myproject.service) :

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

[Service]
User=john
Group=www-data
WorkingDirectory=/home/john/myproject
Environment="PATH=/home/john/myproject/myprojectenv/bin"
ExecStart=/home/john/myproject/myprojectenv/bin/uwsgi --ini myproject.ini

[Install]
WantedBy=multi-user.target


~ / myproject / myproject.ini:

[uwsgi]
module = wsgi:app

master = true
processes = 5

socket = myproject.sock
chmod-socket = 660
vacuum = true

die-on-term = true


/ etc / nginx / sites-available / myproject

server {
    listen 80;
    server_name mydomain www.mydomain;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/home/john/myproject/myproject.sock;
    }
}
...