[10] httpd – mod_wsgi

17 stycznia 2022 Wyłączono przez Adam [zicherka] Nogły

Zainstalujemy teraz [mod_wsgi (WSGI : Web Server Gateway Interface)], który uczyni skrypty Python’a szybsze w działaniu.

[1] Zainstaluj Python 3: Python 3.8 – instalacja.

[2] Zainstaluj [mod_wsgi].

[root@vlsr01 ~]# dnf install python3-mod_wsgi

[3] Dla przykładu skonfigurujemy WSGI, aby możliwy był dostęp do [/test_wsgi] z katalogu  [/var/www/html/test_wsgi.py].

[root@vlsr01 ~]# mcedit /etc/httpd/conf.d/python3_wsgi.conf

# stwórz nowy
WSGIScriptAlias /test_wsgi /var/www/html/test_wsgi.py

[root@vlsr01 ~]# systemctl restart httpd

[4] Stwórz skrypt testowy i przetestuj jego działanie.

[root@vlsr01 ~]# mcedit /var/www/html/test_wsgi.py

# stwórz nowy
def application(environ, start_response):
    status = '200 OK'
    html = '<html>\n' \
        '<body>\n' \
        '<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">\n' \
        'WSGI test page\n' \
        '</div>\n' \
        '</body>\n' \
        '</html>\n'.encode("utf-8")
    response_header = [('Content-type','text/html')]
    start_response(status,response_header)
    return [html]

[5] Aby móc użyć Django – skonfiguruj go. (Django 3 – instalacja).

Dla przykładu skonfigurujemy testową aplikację [test_app], w katalogu [/home/user01/venv/testproject], której właścicielem jest użytkownik [user01].

[root@vlsr01 ~]# mcedit /etc/httpd/conf.d/django.conf

#stwórz nowy plik konfiguracyjny
WSGIDaemonProcess test_app python-path=/home/user01/venv/testproject:/home/user01/venv/lib/python3.6/site-packages
WSGIProcessGroup test_app
WSGIScriptAlias /django /home/user01/venv/testproject/testproject/wsgi.py

<Directory /home/user01/venv/testproject>
    Require all granted
</Directory>

[root@vlsr01 ~]# systemctl restart httpd

#jeżeli SELinux jest włączony do kontroli katalogów domowych użytkowników, skonfiguruj go jak poniżej
[root@vlsr01 ~]# setsebool -P httpd_read_user_content on