, поэтому у меня есть простое приложение 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)'
Если Кто-нибудь может помочь мне решить эту проблему, я бы по достоинству оценил ее!