Odpalałem ostatnio prostą aplikacyjkę napisaną w pythonie 3 z wykorzystaniem frameworka falcon. Troszkę było kombinowania.
Nie poruszam tutaj kompletnie kwestii uprawnień, selinuxa itd. Zakładam też działające apache httpd i skonfigurowanego vhosta.
- Dodaj repozytorium IUS do Centosa 7
yum install https://centos7.iuscommunity.org/ius-release.rpm
- Zainstaluj Python 3.6, mod_wsgi i pip.
yum install python36u-mod_wsgi python36u-pip
- Stwórz środowisko wirtualne 'app1′ potrzebne do uruchomienia aplikacji. Ścieżka przykładowa.
sudo mkdir -p /srv/pythonenvs cd /srv/pythonenvs python3.6 -m venv app1
- Aktywuj venv dla swojej sesji
source app1/bin/activate
- Zainstaluj falcona i wszystkie inne zależności
(app1)$ pip install falcon
- Zakładam, że aplikację masz w katalogu /srv/app1/www, a 'entry point’ to main.py. Bardzo ważne! Aplikacja musi się przedstawiać serwerowi wsgi jako 'application’. To znaczy, że w kodzie falcon musi być odpalony w następujący sposób:
api = application = falcon.API()
- Dodaj do konfiguracji vhosta:
WSGIDaemonProcess app1 python-path=/srv/app1/www/ python-home=/srv/pythonenvs/app1 WSGIProcessGroup app1 WSGIScriptAlias / /srv/app1/www/main.py <Directory /srv/app1/www/> Require all granted </Directory>
- Teraz tylko restart httpd:
systemctl restart httpd