CentOS7-Bereitstellung Flask (Apache, mod_wsgi, Python36, venv)

CentOS7-Bereitstellung Flask (Apache, mod_wsgi, Python36, venv)

1. Installieren Sie Apache

# yum install -y httpd httpd-devel
# systemctl start httpd.service # Starten # systemctl stop httpd.service # Herunterfahren # systemctl restart httpd.service # Neustart # systemctl enable httpd.service # Beim Booten automatisch starten

Öffnen Sie Port 80 in der Firewall.

# Firewall-Befehl --zone=public --add-port=80/tcp --permanent
# Firewall-cmd --reload

Öffnen Sie Apache, und das externe Netzwerk kann über IP auf die Standardseite von Apache zugreifen

2. Installieren Sie Python36, pip3 und virtualenv

# yum install -y epel-release
# yum install -y python36
# python36 -V
Python 3.6.6
# yum install -y python36-setuptools
# easy_install-3.6 pip
# pip3 -V
pip 18.1 von /usr/local/lib/python3.6/site-packages/pip-18.1-py3.6.egg/pip (Python 3.6)
# pip3 installiere virtualenv

3. Erstellen Sie ein Projekt

Erstellen Sie ein Flask-Projekt (am einfachsten: ein Projektordner, eine Startdatei)

# mkdir /var/www/flask_test # Projektordner# vi /var/www/flask_test/app.py # Startdatei

Beispiel einer Startdatei:

aus Flask importieren Flask, Anfrage
 
App = Flask(__name__)
 
@app.route('/')
def hallo_welt():
  returniere 'Hallo Welt'
 
@app.route('/hallo')
def hallo():
  Name = Anfrage.args.get('Name','')
  returniere 'Hallo ' + Name + '!'
 
wenn __name__ == '__main__':
  app.run()

Erstellen Sie eine virtuelle Umgebung im Projektordner und installieren Sie Flask

# cd /var/www/flask_test
# virtualenv py3env # Erstellen Sie eine virtuelle Umgebung # source py3env/bin/activate # Rufen Sie die virtuelle Umgebung (py3env) auf # pip install flask # Installieren Sie flask
(py3env) # deaktivieren # Beenden Sie die virtuelle Umgebung

4. Installieren Sie mod_wsgi mit pip in einer virtuellen Umgebung

# yum install -y python36-devel.x86_64 # Eine Abhängigkeit. Wenn sie nicht installiert ist, meldet pip unten einen Fehler. .
# Quelle py3env/bin/activate # Rufen Sie die virtuelle Umgebung (py3env) auf. # pip install mod_wsgi # Installieren Sie mod_wsgi
(py3env) # mod_wsgi-express install-module # Führen Sie den Befehl aus und kopieren Sie die Ausgabe LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
WSGIPythonHome "/var/www/flask_test/py3env"
 
(py3env) # deaktivieren # Beenden Sie die virtuelle Umgebung

Ändern der Apache-Konfiguration

# vi /etc/httpd/conf/httpd.conf

Kopieren Sie die oben erhaltene Zeile und fügen Sie sie am Ende der Konfigurationsdatei hinzu

Kopieren Sie den Code wie folgt:
Lademodul wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"

5. Konfigurieren Sie mod_wsgi

# vi /var/www/html/flask_test/app.wsgi

Schreiben Sie Folgendes (gemäß: https://dormousehole.readthedocs.io/en/latest/deploying/mod_wsgi.html)

aktiviere_this = '/var/www/flask_test/py3env/bin/activate_this.py'
mit open(activate_this) als file_:
  exec(file_.read(), dict(__file__=dies_aktivieren))
 
System importieren
sys.path.insert(0, '/var/www/flask_test')
aus App App als Anwendung importieren

Konfigurieren Sie Apache

# vi /etc/httpd/conf/httpd.conf

Schreiben Sie Folgendes (gemäß: https://dormousehole.readthedocs.io/en/latest/deploying/mod_wsgi.html#id1)

<VirtuellerHost *:80>
  ServerName example.com
  WSGIScriptAlias ​​​​/ /var/www/flask_test/app.wsgi
  <Verzeichnis /var/www/flask_test>
    Erfordern alle gewährten
  </Verzeichnis>
</VirtualHost>

OK, starten Sie Apache, und Sie können über die IP dieses Servers auf die Webseite zugreifen

Testen Sie zwei in app.py geschriebene Pfade

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Python wsgiref Quellcodeanalyse
  • Einführung in die Python WSGI-Spezifikation
  • Eine kurze Analyse der WSGI-Schnittstelle und des Betriebs von WSGI-Diensten in Python
  • Docker erstellt Python Flask+ Nginx+Uwsgi-Container
  • Python löst das Problem, dass Flask uwsgi keine globalen Variablen abrufen kann
  • Python-Webframework Django WSGI Prinzipanalyse
  • Detaillierte Erklärung zur Konfiguration von Python, MySQL, Nginx, UWSGI und Django auf VPS CENTOS
  • Python-Entwicklung Nginx+uWSGI+virtualenv Tutorial zur Bereitstellung mehrerer Projekte
  • So führen Sie Python WSGI-Anwendungen in Apache aus
  • Verwendung der in Python integrierten Bibliothek wsgiref (WSGI-Grundlagen)

<<:  Detailliertes Beispiel einer MySQL-Austauschpartition

>>:  MySQL-Deduplizierungsmethoden

Artikel empfehlen

Eine kurze Einführung in das bionische Design im Internet-Webdesign

Beim Stichwort Bionik-Design denken viele an die E...

Umfassende Analyse der Isolationsebenen in MySQL

Wenn die Datenbank gleichzeitig denselben Datenst...

Unvollständige Lösung für die Verwendung von Eingabetyp=Textwert=str

Ich bin heute auf ein sehr seltsames Problem gesto...

Lösung für das Problem des MySQL-Datenverzögerungssprungs

Heute haben wir ein weiteres typisches Problem im...

Detaillierte Erklärung zur Verwendung der Element-el-button-Button-Komponente

1. Hintergrund Schaltflächen werden sehr häufig v...

Zusammenfassung der Methoden zum Einbinden von Dateiinhalten in HTML-Dateien

Im Forum fragen Internetnutzer oft: „Kann ich den...

CSS3-Bézierkurven-Beispiel: Erstellen von Link-Hover-Animationseffekten

Wir verwenden animierte CSS3-Übergänge, um einen ...

Zwei Möglichkeiten, die CSS-Priorität zu verstehen

Methode 1: Werte hinzufügen Gehen wir zu MDN, um ...

Der Kernprozess der NodeJS-Verarbeitung einer TCP-Verbindung

Vor ein paar Tagen habe ich mit einem Freund etwa...

So ändern Sie die Standardcodierung von MySQL in Linux

Wenn während des Entwicklungsprozesses nach der W...

Über das Problem beim Schreiben von Plugins zum Mounten von DOM in vue3

Im Vergleich zu vue2 verfügt vue3 über ein zusätz...

Ein Artikel zum Verständnis von Linux-Festplatten und Festplattenpartitionen

Vorwort Alle Hardwaregeräte im Linux-System werde...