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

Detaillierte Prozessanalyse der Docker-Bereitstellung des Snail-Cinema-Systems

Umwelterklärung Host-Betriebssystem: Cetnos7.9 Mi...

HTML-Grundlagen-Zusammenfassungsempfehlung (Titel)

HTML: Titel Überschriften werden durch Tags wie &...

MySQL: Datenintegrität

Die Datenintegrität wird in Entitätsintegrität, D...

Vue + echart realisiert Doppelsäulendiagramm

In diesem Artikel wird der spezifische Code von v...

Analyse von MySQL-Latenzproblemen und Datenlöschungsstrategieprozess

Inhaltsverzeichnis 1. MySQL-Replikationsprozess 2...

12 Javascript-Tabellensteuerelemente (DataGrid) sind aussortiert

Wenn die DataSource-Eigenschaft eines DataGrid-Ste...

Detaillierte Analyse der MySQL Master-Slave-Replikation

Vorwort: In MySQL sollte die Master-Slave-Archite...

Über 3 gängige Pakete der REM-Anpassung

Vorwort Ich habe bereits einen Artikel über REM-A...

Beispiel für die CSS3-Clear-Float-Methode

1. Zweck Durch diesen Artikel kann jeder die Prin...

Der Nginx-Reverseproxy leitet Anfragen von Port 80 an 8080 weiter.

Lassen Sie uns zunächst eine Reihe von Konzepten ...