Specifying encoding on database creation
[hcoop/domtool2.git] / src / plugins / apache.sml
index a612cb0..2d384a9 100644 (file)
@@ -145,7 +145,10 @@ val defaults = [("WebPlaces",
                 (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
 
@@ -440,6 +443,10 @@ fun vhostPost () = (!post ();
                    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")
@@ -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 php = Env.env php_version (env, "PhpVersion")
 
        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");
 
+                                 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;
@@ -582,9 +597,9 @@ val () = Env.action_three "localProxyRewrite"
         ("from", Env.string, "to", Env.string, "port", Env.int)
         (fn (from, to, port) =>
             (checkRewrite ();
-             write "\tRewriteRule\t";
+             write "\tRewriteRule\t\"";
              write from;
-             write "\thttp://localhost:";
+             write "\"\thttp://localhost:";
              write (Int.toString port);
              write "/";
              write to;
@@ -612,10 +627,11 @@ val () = Env.action_three "rewriteRule"
         ("from", Env.string, "to", Env.string, "flags", Env.list flag)
         (fn (from, to, flags) =>
             (checkRewrite ();
-             write "\tRewriteRule\t";
+             write "\tRewriteRule\t\"";
              write from;
-             write "\t";
+             write "\"\t\"";
              write to;
+             write "\"";
              case flags of
                  [] => ()
                | flag::rest => (write " [";
@@ -629,10 +645,11 @@ val () = Env.action_three "rewriteCond"
         ("test", Env.string, "pattern", Env.string, "flags", Env.list cond_flag)
         (fn (from, to, flags) =>
             (checkRewrite ();
-             write "\tRewriteCond\t";
+             write "\tRewriteCond\t\"";
              write from;
-             write "\t";
+             write "\"\t\"";
              write to;
+             write "\"";
              case flags of
                  [] => ()
                | flag::rest => (write " [";
@@ -646,9 +663,9 @@ val () = Env.action_one "rewriteBase"
         ("prefix", Env.string)
         (fn prefix =>
             (checkRewrite ();
-             write "\tRewriteBase\t";
+             write "\tRewriteBase\t\"";
              write prefix;
-             write "\n"))
+             write "\"\n"))
 
 val () = Env.action_one "rewriteLogLevel"
         ("level", Env.int)
@@ -998,10 +1015,6 @@ val () = Env.action_one "diskCache"
                      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";
@@ -1039,4 +1052,7 @@ val () = Domain.registerDescriber (Domain.considerAll
                                    Domain.Extension {extension = "vhost_ssl",
                                                      heading = fn host => "SSL web vhost " ^ host ^ ":"}])
 
+val () = Env.action_none "testNoHtaccess"
+        (fn path => write "\tAllowOverride None\n")
+
 end