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à.
Cette procédure devrait être achevée dans 60 minutes.
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
--Installez apache-dev et gcc
$ sudo yum -y install httpd24-devel
$ sudo yum -y install gcc
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」
-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
--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
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.
Si une erreur se produit, vérifiez le journal Apache (sous var / log / httpd) Recherchez les erreurs.
Jusqu'à présent, j'ai pu exécuter l'application flask sur Cloud9 et la vérifier à partir du navigateur.
Recommended Posts