generate mod_wsgi config options
Tony Mack [Wed, 23 Jun 2010 21:12:33 +0000 (21:12 +0000)]
plc.d/httpd

index 853a984..eaef6eb 100755 (executable)
@@ -106,15 +106,26 @@ case "$1" in
                fi
            done
 
+        # Create a separate path for mod_wsgi until we are ready to replace 
+        # mod_python
+        PLC_API_WSGI_PATH=/PLCAPIWSGI 
+
            # HTTP configuration
            if [ $skip_http -eq 0 -a -n "${!http_port}" ] ; then
                cat <<EOF
 Listen ${!http_port}
+# create wsgi socket where we have the permission
+WSGISocketPrefix run/wsgi
 # Make sure that the admin web pages and API are always accessed via SSL
 <VirtualHost *:${!http_port}>
     Redirect /db https://$PLC_WWW_HOST:$PLC_WWW_SSL_PORT/db
     Redirect /planetlab https://$PLC_WWW_HOST:$PLC_WWW_SSL_PORT/planetlab
     Redirect /$PLC_API_PATH https://$PLC_API_HOST:$PLC_API_PORT/$PLC_API_PATH
+    Redirect /$PLC_API_WSGI_PATH/ https://$PLC_API_HOST:$PLC_API_PORT/$PLC_API_WSGI_PATH/
+    WSGIScriptAlias $PLC_API_WSGI_PATH /usr/share/plc_api/ModWSGI.wsgi
+    # XX make processes and threads configurable 
+    WSGIDaemonProcess plcapi-wsgi user=apache group=apache processes=1 threads=25
+    WSGIProcessGroup plcapi-wsgi
 </VirtualHost>
 EOF
            fi
@@ -136,17 +147,29 @@ EOF
        (
            if [ "$PLC_API_ENABLED" = "1" ] ; then
                cat <<EOF
+# mod_python location
 <Location $PLC_API_PATH>
     SetHandler mod_python
     PythonPath "sys.path + ['/usr/share/plc_api']"
     PythonHandler ModPython
 </Location>
+
+# mod_wsgi location
+<Location $PLC_API_WSGI_PATH/>
+    SetHandler mod_wsgi
+</Location>
 EOF
            else
                cat <<EOF
+# mod_python location
 <Location $PLC_API_PATH>
     Deny from all
 </Location>
+
+# mod_wsgi location
+<Location $PLC_API_WSGI_PATH/>
+    Deny from all
+</Location> 
 EOF
            fi