[PYTHON] Führen Sie die Kolben-App auf Cloud 9 und Apache Httpd aus

Einführung

Es gibt einen Fall, in dem Sie die in Coud9 verwendete Kolben-App auf EC2 ausführen und den Vorgang überprüfen möchten. Lassen Sie das Verfahren zu diesem Zeitpunkt als Referenz.

Benötigte Zeit

Dieser Vorgang wird voraussichtlich in 60 Minuten abgeschlossen sein.

Apache Httpd Einstellungen

Apache Httpd ist standardmäßig in Cloud 9 installiert. Daher wird nur die Einstellung für den automatischen Start eingegeben.

--Überprüfen Sie den aktuellen Status der Starteinstellungen

$ sudo chkconfig --list httpd

--Auto Start Einstellung

$ sudo chkconfig httpd on

--Überprüfen Sie die Einstellungen

$ sudo chkconfig --list httpd

Installation der erforderlichen Pakete

--Installieren Sie apache-dev und gcc

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

Installiere mod-wsgi

--Pip-Versions-Upgrade

Die ursprünglich in Cloud 9 enthaltene Version von pip ist alt. Aktualisieren Sie sie daher.

$ sudo pip install --upgrade pip  

Ich habe auf den folgenden Artikel verwiesen. Wenn Sie den von Anfang an in Cloud 9 integrierten Pip aktualisieren Wenn Sie den Hash nicht aktualisieren, wird eine Fehlermeldung angezeigt, dass der Befehl nicht gefunden werden kann. Führen Sie daher die folgenden Schritte aus. Referenz: https://qiita.com/kantoku_305/items/6e22e86bba266a650415

$ hash -r

--Installation von mod-wsgi

$ pip install mod-wsgi

--Überprüfen Sie die Importreferenz

Gehen Sie von hier aus wie folgt vor, um den Speicherort für mod-wsgi zu ermitteln.

$ 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']

--Suchen Sie mit dem Befehl 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

Dadurch wird es in "/home/ec2-user/.local/lib/python3.6/site-packages/mod_wsgi" geändert. Es stellte sich heraus, dass es gespeichert war. Danach wird der Speicherort von mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so mit einem absoluten Pfad verwendet Notieren Sie sich Folgendes. 「/home/ec2-user/.local/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so」

Erstellen eines Kolbenmoduls

$ pip install flask

--Erstellen eines Kolbenmoduls

$ vi ~/environment/flask/main.py

↓ Das Folgende ist der Inhalt der Datei
from flask import Flask

app = Flask(__name__)

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

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

--Erstellen einer Einstellungsdatei für wsgi

$ vi ~/environment/flask/adapter.wsgi

↓ Das Folgende ist der Inhalt der Datei
# coding: utf-8
import sys
sys.path.insert(0, '/var/www/cgi-bin/flask')

from main import app as application

--Erstellen Sie ein Verzeichnis für den Kolben an einem Ort, auf den in Cloud9 leicht zugegriffen werden kann

$ mkdir ~/environment/flask

--Erstellen Sie das Apache-Dokumentstammverzeichnis

$ sudo mkdir /var/www/cgi-bin/flask
$ mkdir ~/environment/flask/tools
$ vi ~/environment/flask/tools/deploy.sh

↓ Das Folgende ist der Inhalt der Datei
sudo cp -ra /home/ec2-user/environment/flask/* /var/www/cgi-bin/flask
sudo service httpd restart

Führen Sie die Shell nach dem Erstellen aus und platzieren Sie das Modul.

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

Stellen Sie Apache so ein, dass es mod-wsgi verwendet

--Erstellen Sie eine Apache-Konfigurationsdatei

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

↓ Inhalt der Datei

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

EC2-Dashboard> Wählen Sie EC2 für Cloud9> Sicherheitsgruppe> Eingehend

image.png

Zugriff und Überprüfung

EC2-Dashboard> Wählen Sie EC2 für Cloud9> Öffentliche IP prüfen und Greifen Sie über Ihren Browser auf "http: // [Public IP] /" zu.

Es reicht aus, wenn "Hallo, Flasche!" Wie unten gezeigt angezeigt wird. image.png

Wenn ein Fehler auftritt, überprüfen Sie das Apache-Protokoll (unter var / log / httpd). Auf Fehler prüfen.

abschließend

Bis zu diesem Zeitpunkt konnte ich die Kolben-App auf Cloud9 ausführen und über den Browser überprüfen.

Recommended Posts

Führen Sie die Kolben-App auf Cloud 9 und Apache Httpd aus
Führen Sie die App mit Flask + Heroku aus
Stellen Sie die Flask-App auf Heroku bereit
Stellen Sie die Flask-App auf Heroku bereit
[Python] Führen Sie Flask in Google App Engine aus
Lassen Sie uns Django und Apache (httpd) auf dem Mac integrieren! !!
Führen Sie Apache2 + WSGI + Flask aus
Installieren Sie Apache 2.4 unter Ubuntu 19.10 Eoan Ermine und führen Sie CGI aus
Bis Sie die Flask-Anwendung vorerst in Google App Engine ausführen
So integrieren Sie Apache httpd 2.4 und Tomcat 9 unter Cent OS 8
Starten Sie Data Science in der Cloud
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
Installieren Sie Dropbox und führen Sie es unter Ubuntu 20.04 aus
Vorbereiten des Betriebs von Flask auf EC2
Führen Sie Pylint aus und lesen Sie die Ergebnisse
Erkennen Sie App-Releases im App Store
Stellen Sie die Flask-App für Heroku bereit (bitter)
Der Weg zur Installation von Python und Flask auf einem Offline-PC
[Erste persönliche Entwicklung] Die Geschichte der Bereitstellung der Flask-App und des automatischen Antwort-Bot von Twitter auf Heroku
Installieren Sie die neueste Version von Apache httpd 2.4 von der Quelle unter Cent OS 8
Arbeitsnotiz zum Migrieren und Aktualisieren von Skripten der Python 2-Serie in der Cloud auf 3-Serien
Führen Sie Cloud Dataflow (Python) über AppEngine aus
Führen Sie IDCF Cloud CLI auf Docker aus
Verwenden Sie Tabpy mit Cloud Run (auf GKE)
Verknüpfen Sie WAS- und FLASK-Anwendungen auf Docker
Stellen Sie die Django-App in Heroku bereit [Teil 2]
Stellen Sie die Django-App in Heroku bereit [Teil 1]
Führen Sie flake8 und pytest auf GitLab CI aus
So installieren Sie Apache (httpd) unter CentOS7
Führen Sie py.test unter Windows Anaconda und MinGW aus
So installieren Sie Apache (httpd) unter CentOS8
Fügen Sie dem Bild Linien und Text hinzu
Der Schlüssel zum Bereitstellen von Flask-Apps mit Python Buildpack in Cloud Foundry (Diego)
Webserverkonstruktion mit Apache 2.4 (httpd 2.4.43) + PHP 7.4 unter Linux ―― 4. Sicherheit (chown und firewalld)
Erstellen Sie eine Kolben-App mit Tensorflow und Dlib für Centos7
So installieren Sie Fast.ai auf einer Alibaba Cloud-GPU und führen es auf einem Jupyter-Notebook aus
ACME mit Alibaba Cloud verschlüsseln: Erstellen Sie eine ACME-Anforderung und signieren Sie eine JWS-Nutzlast
Bis Python mit Pythonbrew installiert ist und Flask auf dem WSGI-Server ausgeführt wird
Quellkompilierung Apache2.4 (httpd 2.4.43) + PHP7.4 unter Linux zum Erstellen eines Webservers ―― 1. Einführung in Apache
Quellkompilierung Apache2.4 (httpd 2.4.43) + PHP7.4 unter Linux zum Erstellen eines Webservers --2 PHP-Einführung
Installieren Sie Python3.5 + NumPy + SciPy und führen Sie es unter Windows 10 aus
Bis Sie Caffe installieren und das Beispiel ausführen
Führen Sie eine Django-Anwendung unter Windows + Apache + mod_wsgi + aus.
Führen Sie Aufgaben im Hintergrund auf dem Server aus, an den Sie gesendet haben
Gewinnen Sie die Python + Flask-Web-App mit Jenkins
Starten und verwenden Sie das IPython-Notebook im Netzwerk
Führen Sie yolov4 "vorerst" in Windows aus
Verwenden Sie AppSync am vorderen und hinteren Ende
Führen Sie Python-Webanwendungen mit NGINX + NGINX Unit + Flask aus
Mit Cloud Run x Flask können Sie ganz einfach Mikrodienste realisieren
Beantworten Sie das verkleinerte Bild mit Flask und PILImage
Führen Sie Flask unter CentOS mit Python3.4, Gunicorn + Nginx aus.
(Für mich) AWS_Flask_3 (Flask auf AWS installieren / ausführen)
Führen Sie OpenVino unter macOS und pyenv und pipenv aus
Führen Sie Python auf Apache aus, um InfluxDB-Daten anzuzeigen
Die schönen und bedauerlichen Teile von Cloud Datalab
[CGI] Führen Sie das Server-Python-Programm mit Vue.js + axios aus und rufen Sie die Ausgabedaten ab