Difference between revisions of "WhosWhoPy op een webcie-vm"

From A-Eskwiki
Jump to: navigation, search
(Created page with "Category:WebCie Category:HowTo Category:WhosWhoPy WhosWhoPy wordt op de WebCie-VM's gehost door middel van Apache en mod_wsgi. Om WhosWhoPy op een WebCie-VM...")
 
(Maak een (lege) virtualenv aan)
Line 38: Line 38:
 
<pre>
 
<pre>
 
sudo python3 -m virtualenv /usr/local/venvs/empty
 
sudo python3 -m virtualenv /usr/local/venvs/empty
</code>
+
</pre>
  
 
== Stel in dat requests worden doorgegeven ==
 
== Stel in dat requests worden doorgegeven ==

Revision as of 17:38, 6 March 2019

WhosWhoPy wordt op de WebCie-VM's gehost door middel van Apache en mod_wsgi.

Om WhosWhoPy op een WebCie-VM te installeren, volg je de volgende stappen. We gaan er al vanuit dat je Apache en PHP hebt geïnstalleerd. (Zie ook Webcie VM voor instructies daarvoor.)

Installeer Python

Ten eerste hebben we een recente (minstens Python 3 uiteraard!) versie van Python nodig:

yum install python36 python36-virtualenv

Installeer mod_wsgi

mod_wsgi geeft de request uit Apache door naar Python. Je moet opletten dat je een recente mod_wsgi gebruikt, anders krijg je problemen met oude Pythonversies. In ons geval (de vm-www-debug) moeten we Pip gebruiken om een recente mod_wsgi te bekomen. Daarvoor installeren we eerst de Python-developmentheaders:

sudo yum install python36u-devel

en dan mod_wsgi zelf:

sudo pip3.6 install mod_wsgi

Stel Apache in zodat die mod_wsgi laadt, door /etc/httpd/conf/httpd.conf aan te passen en de mod_wsgi-module in te laden (check ook even of dit het juiste pad is ernaartoe):

LoadModule wsgi_module /usr/lib64/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so

Herstart Apache om instabiliteit te voorkomen:

sudo service httpd restart

Maak een (lege) virtualenv aan

Hoewel elke (debug)website hun eigen virtualenv heeft, kan mod_wsgi dat eigenlijk niet aan. Dit fixen we door een lege virtualenv aan te maken voor de daemon, en vervolgens in het daadwerkelijke Pythonscript die te vervangen met de juiste virtualenv.

sudo python3 -m virtualenv /usr/local/venvs/empty

Stel in dat requests worden doorgegeven

Pas de configuratie van Apache aan, en zet daar het equivalent van het volgende neer, afhankelijk van de hostnaam en installatielocatie enzo:

<VirtualHost *>
    ServerName boom-debug.a-eskwadraat.nl

    WSGIDaemonProcess whoswhopy user=apache group=apache threads=5 python-home=/usr/local/venvs/empty
    WSGIScriptAlias / /mnt/wwwdebug2/lidanoniem/wwwdebug/whoswhopy.wsgi

    <Directory /mnt/wwwdebug2/lidanoniem/wwwdebug>
        WSGIProcessGroup whoswhopy
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

Herstart Apache nogmaals:

sudo service httpd restart

En nu zou het moeten werken :D