HCoop IP synonyms; PhpVersion env var
[hcoop/domtool2.git] / src / plugins / apache.sml
index a612cb0..eb4623a 100644 (file)
@@ -145,7 +145,10 @@ val defaults = [("WebPlaces",
                 (fn () => (EString (Domain.getUser () ^ "@" ^ Config.defaultDomain), dl))),
                ("SuExec",
                 (TBase "suexec_flag", dl),
                 (fn () => (EString (Domain.getUser () ^ "@" ^ Config.defaultDomain), dl))),
                ("SuExec",
                 (TBase "suexec_flag", dl),
-                (fn () => (EVar "true", dl)))]
+                (fn () => (EVar "true", dl))),
+               ("PhpVersion",
+                (TBase "php_version", dl),
+                (fn () => (EVar "php4", dl)))]
 
 val () = app Defaults.registerDefault defaults
 
 
 val () = app Defaults.registerDefault defaults
 
@@ -440,6 +443,10 @@ fun vhostPost () = (!post ();
                    write "</VirtualHost>\n";
                    app (TextIO.closeOut o #2) (!vhostFiles))
 
                    write "</VirtualHost>\n";
                    app (TextIO.closeOut o #2) (!vhostFiles))
 
+val php_version = fn (EVar "php4", _) => SOME 4
+                  | (EVar "php5", _) => SOME 5
+                  | _ => NONE
+
 fun vhostBody (env, makeFullHost) =
     let
        val places = Env.env (Env.list webPlace) (env, "WebPlaces")
 fun vhostBody (env, makeFullHost) =
     let
        val places = Env.env (Env.list webPlace) (env, "WebPlaces")
@@ -450,6 +457,7 @@ fun vhostBody (env, makeFullHost) =
        val docroot = Env.env Env.string (env, "DocumentRoot")
        val sadmin = Env.env Env.string (env, "ServerAdmin")
        val suexec = Env.env Env.bool (env, "SuExec")
        val docroot = Env.env Env.string (env, "DocumentRoot")
        val sadmin = Env.env Env.string (env, "ServerAdmin")
        val suexec = Env.env Env.bool (env, "SuExec")
+       val php = Env.env php_version (env, "PhpVersion")
 
        val fullHost = makeFullHost (Domain.currentDomain ())
        val vhostId = fullHost ^ (if Option.isSome ssl then ".ssl" else "")
 
        val fullHost = makeFullHost (Domain.currentDomain ())
        val vhostId = fullHost ^ (if Option.isSome ssl then ".ssl" else "")
@@ -515,6 +523,13 @@ fun vhostBody (env, makeFullHost) =
                                  TextIO.output (file, user);
                                  TextIO.output (file, "/DAVLock");
 
                                  TextIO.output (file, user);
                                  TextIO.output (file, "/DAVLock");
 
+                                 if php <> Config.Apache.defaultPhpVersion then
+                                     (TextIO.output (file, "\n\tAddHandler x-httpd-php");
+                                      TextIO.output (file, Int.toString php);
+                                      TextIO.output (file, " .php .phtml"))
+                                 else
+                                     ();
+
                                  (ld, file)
                              end)
                          places;
                                  (ld, file)
                              end)
                          places;
@@ -998,10 +1013,6 @@ val () = Env.action_one "diskCache"
                      write path;
                      write "\"\n"))
 
                      write path;
                      write "\"\n"))
 
-val php_version = fn (EVar "php4", _) => SOME 4
-                  | (EVar "php5", _) => SOME 5
-                  | _ => NONE
-
 val () = Env.action_one "phpVersion"
         ("version", php_version)
         (fn version => (write "\tAddHandler x-httpd-php";
 val () = Env.action_one "phpVersion"
         ("version", php_version)
         (fn version => (write "\tAddHandler x-httpd-php";