[PYTHON] Exécutez l'application flask sur Cloud 9 et Apache Httpd

introduction

Il existe un cas où vous souhaitez exécuter l'application flask sur EC2 utilisée dans Coud9 et vérifier l'opération. Laissez la procédure pour référence à ce moment-là.

Temps requis

Cette procédure devrait être achevée dans 60 minutes.

Paramètres Apache Httpd

Apache Httpd est installé sur Cloud 9 par défaut. Par conséquent, seul le paramètre de démarrage automatique est entré.

--Vérifiez l'état actuel des paramètres de démarrage

$ sudo chkconfig --list httpd
$ sudo chkconfig httpd on

--Vérifier les paramètres

$ sudo chkconfig --list httpd

Installation des packages requis

--Installez apache-dev et gcc

$ sudo yum -y install httpd24-devel
$ sudo yum -y install gcc

Installez mod-wsgi

La version de pip initialement incluse dans Cloud 9 est ancienne, alors mettez-la à niveau.

$ sudo pip install --upgrade pip  

J'ai fait référence à l'article suivant. Si vous mettez à niveau le pip intégré à Cloud 9 depuis le début Si vous ne mettez pas à jour le hachage, vous obtiendrez une erreur indiquant que la commande est introuvable, alors exécutez ce qui suit. Référence: https://qiita.com/kantoku_305/items/6e22e86bba266a650415

$ hash -r

--Installation de mod-wsgi

$ pip install mod-wsgi

--Vérifiez la référence d'importation

À partir de là, procédez comme suit pour trouver l'emplacement de stockage de mod-wsgi.

$ python -c "import sys; print(sys.path)"

['', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', '/home/ec2-user/.local/lib/python3.6/site-packages', '/usr/local/lib64/python3.6/site-packages', '/usr/local/lib/python3.6/site-packages', '/usr/lib64/python3.6/dist-packages', '/usr/lib/python3.6/dist-packages']

--Rechercher avec la commande find

$ find /usr/lib64/python3.6 -name mod_wsgi
$ find /home/ec2-user/.local/lib/python3.6/site-packages -name mod_wsgi                                                                                   
/home/ec2-user/.local/lib/python3.6/site-packages/mod_wsgi

Cela le changera en "/home/ec2-user/.local/lib/python3.6/site-packages/mod_wsgi" Il s'est avéré être stocké. Après cela, l'emplacement de stockage de mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so sera utilisé avec un chemin absolu, donc Notez ce qui suit. 「/home/ec2-user/.local/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so」

Créer un module flask

-installation du ballon

$ pip install flask

--Création d'un module flacon

$ vi ~/environment/flask/main.py

↓ Voici le contenu du fichier
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, Flask!"

if __name__ == "__main__":
    app.run()

--Création d'un fichier de paramètres pour wsgi

$ vi ~/environment/flask/adapter.wsgi

↓ Voici le contenu du fichier
# coding: utf-8
import sys
sys.path.insert(0, '/var/www/cgi-bin/flask')

from main import app as application

--Créez un répertoire pour flask dans un emplacement facilement accessible dans Cloud9

$ mkdir ~/environment/flask

--Créer la racine du document Apache

$ sudo mkdir /var/www/cgi-bin/flask

--Placer le module flask dans la racine du document Apache Facilitez le déploiement par exécution par lots lors du déploiement futur.

$ mkdir ~/environment/flask/tools
$ vi ~/environment/flask/tools/deploy.sh

↓ Voici le contenu du fichier
sudo cp -ra /home/ec2-user/environment/flask/* /var/www/cgi-bin/flask
sudo service httpd restart

Après avoir créé le shell, exécutez-le et placez le module.

$ sh ~/environment/flask/tools/deploy.sh

Configurer Apache pour utiliser mod-wsgi

--Créer un fichier de configuration Apache

$ sudo vi /etc/httpd/conf.d/flask.conf

↓ Contenu du fichier

LoadModule wsgi_module /home/ec2-user/.local/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so

<VirtualHost *:80>
  ServerName flask
  DocumentRoot /var/www/cgi-bin/flask
  WSGIScriptAlias / /var/www/cgi-bin/flask/adapter.wsgi
  <Directory "/var/www/cgi-bin/flask/">
    options -Indexes +FollowSymLinks +ExecCGI
  </Directory>
</VirtualHost>
sudo service httpd restart

--Ajout d'autorisations pour le port 80 vers le groupe de sécurité Cloud 9

Tableau de bord EC2> Sélectionnez EC2 pour Cloud9> Groupe de sécurité> Entrant

image.png

Accéder et vérifier

Tableau de bord EC2> Sélectionnez EC2 pour Cloud9> Vérifier l'adresse IP publique et Accédez à "http: // [IP publique] /" depuis votre navigateur.

Il suffit que "Hello, Flask!" S'affiche comme illustré ci-dessous. image.png

Si une erreur se produit, vérifiez le journal Apache (sous var / log / httpd) Recherchez les erreurs.

en conclusion

Jusqu'à présent, j'ai pu exécuter l'application flask sur Cloud9 et la vérifier à partir du navigateur.

Recommended Posts

Exécutez l'application flask sur Cloud 9 et Apache Httpd
Exécutez l'application avec Flask + Heroku
Déployez l'application Flask sur Heroku
Déployez l'application Flask sur heroku
[Python] Exécutez Flask sur Google App Engine
Intégrons Django et apache (httpd) sur Mac! !!
Exécutez Apache2 + WSGI + Flask
Installez Apache 2.4 sur Ubuntu 19.10 Eoan Ermine et exécutez CGI
Jusqu'à ce que vous exécutiez l'application Flask sur Google App Engine pour le moment
Comment intégrer Apache httpd 2.4 et Tomcat 9 sur Cent OS 8
Démarrez la science des données dans le cloud
Comment installer OpenCV sur Cloud9 et l'exécuter en Python
Installez et exécutez Dropbox sur Ubuntu 20.04
Préparation à l'exécution de Flask sur EC2
Exécutez Pylint et lisez les résultats
Détecter les versions d'applications dans l'App Store
Déployer l'application Flask sur heroku (amer)
La route pour installer Python et Flask sur un PC hors ligne
[Premier développement personnel] L'histoire du déploiement de l'application Flask et du robot de réponse automatique de Twitter sur Heroku
Installez la dernière version d'Apache httpd 2.4 à partir des sources sur Cent OS 8
Note de travail pour migrer et mettre à jour les scripts de la série Python 2 sur le cloud vers la série 3
Exécutez Cloud Dataflow (Python) depuis AppEngine
Exécutez IDCF Cloud CLI sur Docker
Utiliser Tabpy avec Cloud Run (sur GKE)
Lier les applications WAS et FLASK sur docker
Déployer l'application Django sur Heroku [Partie 2]
Déployer l'application Django sur Heroku [Partie 1]
Exécutez flake8 et pytest sur GitLab CI
Comment installer Apache (httpd) sur CentOS7
Exécutez py.test sur Windows Anaconda et MinGW
Comment installer Apache (httpd) sur CentOS8
Ajouter des lignes et du texte sur l'image
La clé du déploiement d'applications Flask à l'aide de Python Buildpack sur Cloud Foundry (Diego)
Construire un serveur Web avec Apache 2.4 (httpd 2.4.43) + PHP 7.4 sous Linux --4 Security (chown et firewalld)
Créez une application flask faite avec tensorflow et dlib pour travailler sur centos7
Comment installer Fast.ai sur le GPU Alibaba Cloud et l'exécuter sur un ordinateur portable Jupyter
Crypter ACME avec Alibaba Cloud: créez une requête ACME et signez une charge utile JWS
Jusqu'à ce que Python soit installé avec pythonbrew et que Flask s'exécute sur le serveur WSGI
Source compilez Apache2.4 (httpd 2.4.43) + PHP7.4 sous Linux pour construire un serveur Web ―― 1. Introduction à Apache
Source compile Apache2.4 (httpd 2.4.43) + PHP7.4 sous Linux pour construire un serveur Web --2 introduction PHP
Installez et exécutez Python3.5 + NumPy + SciPy sur Windows 10
Jusqu'à ce que vous installiez Caffe et exécutiez l'exemple
Exécutez une application django sur Windows + Apache + mod_wsgi + service.
Exécutez des tâches en arrière-plan sur le serveur sur lequel vous vous êtes connecté
Gagnez l'application Web Python + Flask avec Jenkins
Lancer et utiliser le notebook IPython sur le réseau
Exécutez yolov4 "pour le moment" dans Windows
Utilisez AppSync à l'avant et à l'arrière
Exécutez des applications Web Python avec NGINX + NGINX Unit + Flask
Réalisez facilement des micro-services avec Cloud Run x Flask
Répondre à l'image redimensionnée à l'aide de Flask et PILImage
Exécutez Flask sur CentOS avec python3.4, Gunicorn + Nginx.
(Pour moi-même) AWS_Flask_3 (Installer / exécuter Flask sur AWS)
Exécutez OpenVino sur macOS et environnement pyenv et pipenv
Exécutez Python sur Apache pour afficher les données InfluxDB
Les parties sympas et regrettables de Cloud Datalab
[CGI] Exécutez le programme Python du serveur avec Vue.js + axios et obtenez les données de sortie