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