+ # this is used to locate the right certificates
+ server_lower=$(echo $server | tr 'A-Z' 'a-z')
+
+ # which one is used is currently configured in myplc.spec,
+ # with mod_python preferred
+ if rpm -q mod_python >& /dev/null ; then
+ configure_for_mod_python=true
+ elif rpm -q mod_wsgi >& /dev/null ; then
+ configure_for_mod_wsgi=true
+ else
+ echo "Requires mod_python or mod_wsgi.... exiting"
+ exit 1
+ fi
+
+ # It would be tempting to use <IfModule> here
+ # but early tests showed this could be tricky/fragile
+ # So let's hard-wire it for one module
+ # A lot of trial-and -error was involved in getting this that way...
+
+ if [ -n "$configure_for_mod_python" ] ; then
+#################### for mod_python
+ cat <<EOF
+# mod_python location
+<Location /PLCAPI/>
+ SetHandler mod_python
+ PythonPath "sys.path + ['/usr/share/plc_api']"
+ PythonHandler apache.ModPython
+</Location>
+EOF
+
+ elif [ -n "$configure_for_mod_wsgi" ] ; then
+#################### for mod_wsgi
+ cat <<EOF
+# create wsgi socket where we have the permission
+WSGISocketPrefix run/wsgi
+
+<VirtualHost *:${!https_port}>
+
+ # SSL
+ SSLEngine On
+ SSLCertificateFile /etc/planetlab/${server_lower}_ssl.crt
+ SSLCertificateKeyFile /etc/planetlab/${server_lower}_ssl.key
+ SSLCertificateChainFile /etc/planetlab/${server_lower}_ca_ssl.crt
+
+ WSGIScriptAlias /$plc_api_path_noslash /usr/share/plc_api/apache/plc.wsgi
+# xxx would be cool to be able to tweak this through config
+ WSGIDaemonProcess plcapi-wsgi-ssl user=apache group=apache processes=1 threads=25
+ WSGIProcessGroup plcapi-wsgi-ssl
+
+ <Directory "/usr/share/plc_api/apache">
+ Options +ExecCGI
+ $(apache_allow)
+ </Directory>
+
+</VirtualHost>
+EOF
+ fi