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

my.cnf-Parameterkonfiguration zur Optimierung der InnoDB-Engine-Leistung

Ich habe im Internet unzählige my.cnf-Konfigurati...

Was Sie über Responsive Design wissen müssen

Responsive Design bedeutet, während des Website-E...

CSS und JS für eine romantische Meteorschauer-Animation

1. Rendern 2. Quellcode HTML < Textkörper >...

Beispielcode zur Implementierung der Formularvalidierung mit reinem CSS

In unserem täglichen Geschäft ist die Formularval...

Hinweise zur Verwendung der verknüpften Liste des Linux-Kernel-Gerätetreibers

/******************** * Anwendung von verknüpften...