Flask App Deyploy на Ubuntu 14.04. Apache2 с Python 3,7 - PullRequest
0 голосов
/ 03 мая 2020

, поэтому у меня есть простое приложение Flask, которое я хотел бы развернуть в своей Ubuntu 14.04. это уже установлено как сервер LAMP. У меня есть Apache конфигурация по умолчанию с MySQL и обе настройки Python 2.7 и 3.7. У меня есть указанный c поддомен, где я хочу развернуть свое приложение Flask. Я следовал этому уроку: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-apache-mysql-and-python-lamp-server-without-frameworks-on-ubuntu-14-04

Но в конце я получаю ошибку 500, и когда я просматриваю журнал ошибок Apache G, получаю, что модуль flask не установлен, что не соответствует действительности, потому что когда я проверяю свою виртуальную среду, все требования там. Я создал виртуальную среду с помощью 'pipenv shell', а затем установил свои требования с помощью 'pip install -r needs.txt'.

Ошибка из журнала:

mod_wsgi (pid=3501): Target WSGI script '/var/www/ja.estudent.hr/maktivnosti_backend.wsgi' cannot be loaded as Python module.
mod_wsgi (pid=3501): Exception occurred processing WSGI script '/var/www/ja.estudent.hr/maktivnosti_backend.wsgi'.
Traceback (most recent call last):
 File "/var/www/ja.estudent.hr/maktivnosti_backend.wsgi", line 12, in <module>
   from maktivnosti_backend import app as application
  File "/var/www/ja.estudent.hr/maktivnosti_backend/app.py", line 1, in <module>
    from flask import Flask, request, jsonify
ImportError: No module named 'flask'

Вот мой setup:

Мое дерево каталогов:

/var/www/ja.estudent.hr/ 
|-maktivnosti_backend  
  |-app.py 
|-maktivnosti_backend.wsgi

Моя Apache конфигурация:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAlias www.ja.estudent.hr
        ServerName ja.estudent.hr
        ServerAdmin webmaster@estudent.hr
        #referring the user to the recipes application
        DocumentRoot /var/www/ja.estudent.hr/maktivnosti_backend
        WSGIScriptAlias / /var/www/ja.estudent.hr/maktivnosti_backend.wsgi

        <Directory /var/www/ja.estudent.hr/maktivnosti_backend/>
        Require all granted
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined



RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.[^.]+\.[^.]+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
RewriteEngine on
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/www.ja.estudent.hr/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.ja.estudent.hr/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.ja.estudent.hr/chain.pem
</VirtualHost>
</IfModule>

Мой файл wsgi:

activate_this = '/home/(username)/.local/share/virtualenvs/maktivnosti_backend-tbfZiu-1/bin/activate_this.py'
with open(activate_this) as file_:
    exec(file_.read(), dict(__file__=activate_this))
#!/usr/bin/python
import sys
import logging
import site
sys.path.append('/home/(username)/.local/share/virtualenvs/maktivnosti_backend-tbfZiu-1/lib/python3.7/site-packages')
site.addsitedir('/home/(username)/.local/share/virtualenvs/maktivnosti_backend-tbfZiu-1/lib/python3.7/site-packages')
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0, '/var/www/ja.estudent.hr/')
from maktivnosti_backend import app as application
application.secret_key = '(my secret key)'

Если Кто-нибудь может помочь мне решить эту проблему, я бы по достоинству оценил ее!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...