Progmar Marcin Załęczny

Język:

Konfiguracja Apache'owego VirtualHosta z Pythonem w systemie Kali Linux

Instalujemy Apache'owy moduł mod-wsgi obsługujący skrypty Pythona: apt install libapache2-mod-wsgi

Uaktywniamy potrzebne moduły Apache'a (mpm_prefork i cgi): a2enmod mpm_prefork cgi

Upewniamy się, że moduł wsgi_module, jest załadowany: apache2ctl -t -D DUMP_MODULES

Tworzymy w katalogu /var/www/dev.trip.pl plik wejściowy naszej aplikacji, np. tripapp.wsgi oraz opcjonalny plik Pythona, który jest inkludowany w pliku wejściowym:

tripapp.wsgi:

import sys
sys.path.insert(0, '/var/www/dev.trip.pl')

import index


def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World from Application Entry Point<br/>' + index.say_hello()

    response_headers = [('Content-type', 'text/html'),
                        ('Content-Length', str(len(output)))]

    start_response(status, response_headers)

    return [output]

index.py:

def say_hello():
    return "Hello world from index.py"

Teraz konfigurujemy wirtualny host w Apache'u. W tym celu w katalogu /etc/apache2/sites-available, tworzymy plik 001-dev.trip.pl.conf o następującej zawartości:

<VirtualHost *:80>
    DocumentRoot /var/www/dev.trip.pl
    ServerName dev.trip.pl

    ErrorLog ${APACHE_LOG_DIR}/dev.trip.pl.error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/dev.trip.pl.access.log combined


    WSGIScriptAlias / /var/www/dev.trip.pl/tripapp.wsgi

    <Directory /var/www/dev.trip.pl>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

</VirtualHost>

Aktywujemy utworzonego Virtual Hosta wydając w linii poleceń następujące polecenie: a2ensite 001-dev.trip.pl

Dodajemy do pliku /etc/hosts linijkę: 127.0.0.1 dev.trip.pl

Restartujemy serwer Apache'a: systemctl reload apache2

Uruchamiamy przeglądarkę i wpisujemy w pasku adresu utworzoną wcześniej domenę: http://dev.trip.pl

Naszym oczom powinna się ukazać strona z następującą zawartością, wygenerowaną przez skrypty Pythona: Hello World from Application Entry Point
Hello world from index.py