Ich habe viel recherchiert, um einen API-Server mit Flask in Hackason zu erstellen, also habe ich ihn von Anfang an zusammengefasst.
--Erstellte virtuelle Maschine mit Azure, AWS, GCP usw. --ssh Verbindung wird hergestellt
--AWS EC2-Instanz
#Installieren Sie apache2#
$ sudo apt install apache2 apache2-dev
#Python-Installation#
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
#Die zuletzt angezeigte Einstellung~/.Beschrieben in bashrc
#Installierbare Anaconda-Versionen anzeigen
$ pyenv install -l | grep anaconda
#Installieren Sie Anaconda
$ pyenv install anaconda3-5.3.1
#Anakonda aktivieren
$ pyenv global anaconda3-5.3.1
#Erstellen Sie eine Umgebung für Anaconda
$ conda create -n <hoge> python=3.6
$ conda activate <hoge>
# flask, mod_wsgi Installation
$ conda install flask
$ pip install mod_wsgi
Erstellen Sie ein Verzeichnis "flask_app" unter "/ var / www /" und platzieren Sie die folgenden Dateien.
/var/www/flask_app/app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, Flask!"
if __name__ == "__main__":
app.run(host='0.0.0.0')
/var/www/flask_app/adapter.wsgi
import sys
sys.path.insert(0, '/var/www/flask_app')
from app import app as application
/etc/apache2/conf-available/flask.conf
LoadModule wsgi_module /home/<user>/.pyenv/versions/anaconda3-5.3.1/envs/<hoge>/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
WSGIPythonHome /home/<user>/.pyenv/versions/anaconda3-5.3.1/envs/<hoge>/
<VirtualHost *:80>
ServerName <server-ip>:80
DocumentRoot /var/www/flask_app
WSGIDaemonProcess flask_app user=<user> group=<user> threads=5
WSGIScriptAlias / /var/www/flask_app/adapter.wsgi
<Directory "/var/www/flask_app/">
WSGIProcessGroup flask_app
WSGIApplicationGroup %{GLOBAL}
WSGIScriptReloading On
Require all granted
</Directory>
</VirtualHost>
Das Obige ist nur ein Beispiel.
Bitte vervollständigen Sie die Teile "
Wenn Sie den folgenden Befehl ausführen, nachdem Sie die Umgebung aktiviert haben, in der der Kolben installiert ist, wird das Verzeichnis angezeigt, in dem das Paket installiert ist.
$ python -c "import sys; print(sys.path)"
Suchen Sie darin nach mod_wsgi und überprüfen Sie den Pfad. Machen Sie keinen Fehler beim Ergänzen von Registerkarten
$ ls /home/<user/.pyenv/versions/anaconda3-5.3.1/envs/<hoge>/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
$ sudo a2enconf flask
$ sudo systemctl restart apache2.service
Greifen Sie mit einem Browser auf "http: //
--Überprüfen Sie, ob Port 80 der virtuellen Maschine geöffnet ist
$ sudo systemctl status apache2.service
$ sudo tail /var/log/apache2/error.log
Future work
Recommended Posts