X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/7d6cc0ecb8dcc767fd914939033d2ea8c0a9db46..94b7b11acaf25eadda183ff48cf2cf497e8aef58:/src/plugins/apache.sml diff --git a/src/plugins/apache.sml b/src/plugins/apache.sml index 602a396..4a399e8 100644 --- a/src/plugins/apache.sml +++ b/src/plugins/apache.sml @@ -103,7 +103,7 @@ val _ = Defaults.registerDefault ("User", val _ = Defaults.registerDefault ("Group", (TBase "your_group", dl), - (fn () => (EString (Domain.getUser ()), dl))) + (fn () => (EString "nogroup", dl))) val _ = Defaults.registerDefault ("DocumentRoot", (TBase "your_path", dl), @@ -242,7 +242,7 @@ fun undown () = if imVersion1 () then Config.Apache.undown1 else Config.Apache.u fun reload () = if imVersion1 () then Config.Apache.reload1 else Config.Apache.reload fun logDir {user, node, vhostId} = - String.concat [Config.Apache.logDirOf (imVersion1 ()) user, + String.concat [Config.Apache.logDirOf (isVersion1 node) user, "/", node, "/", @@ -266,7 +266,7 @@ val () = Slave.registerFileHandler (fn fs => print ("Can't find user in " ^ #file fs ^ " or " ^ realVhostFile ^ "! Taking no action.\n") else let - val vhostId = if OS.Path.ext (#file spl) = SOME ".vhost_ssl" then + val vhostId = if OS.Path.ext (#file spl) = SOME "vhost_ssl" then OS.Path.base (#file spl) ^ ".ssl" else OS.Path.base (#file spl) @@ -404,6 +404,8 @@ val () = Env.containerV_one "vhost" let val file = Domain.domainFile {node = node, name = confFile} + + val ld = logDir {user = user, node = node, vhostId = vhostId} in TextIO.output (file, "# Owner: "); TextIO.output (file, user); @@ -415,12 +417,18 @@ val () = Env.containerV_one "vhost" | NONE => "80"); TextIO.output (file, ">\n"); TextIO.output (file, "\tErrorLog "); - TextIO.output (file, logDir {user = user, node = node, vhostId = vhostId}); + TextIO.output (file, ld); TextIO.output (file, "/error.log\n\tCustomLog "); - TextIO.output (file, logDir {user = user, node = node, vhostId = vhostId}); + TextIO.output (file, ld); TextIO.output (file, "/access.log combined\n"); TextIO.output (file, "\tServerName "); TextIO.output (file, fullHost); + app + (fn dom => (TextIO.output (file, "\n\tServerAlias "); + TextIO.output (file, host); + TextIO.output (file, "."); + TextIO.output (file, dom))) + (Domain.currentAliasDomains ()); if suexec then if isVersion1 node then (TextIO.output (file, "\n\tUser "); @@ -441,7 +449,7 @@ val () = Env.containerV_one "vhost" TextIO.output (file, user)) else (); - (logDir {user = user, node = node, vhostId = vhostId}, file) + (ld, file) end) nodes; write "\n\tDocumentRoot "; @@ -454,7 +462,8 @@ val () = Env.containerV_one "vhost" write cert) | NONE => (); write "\n"; - !pre {user = user, nodes = nodes, id = vhostId, hostname = fullHost} + !pre {user = user, nodes = nodes, id = vhostId, hostname = fullHost}; + app (fn dom => !aliaser (host ^ "." ^ dom)) (Domain.currentAliasDomains ()) end, fn () => (!post (); write "\n"; @@ -561,6 +570,14 @@ val () = Env.action_three "rewriteCond" write "]"); write "\n")) +val () = Env.action_one "rewriteBase" + ("prefix", Env.string) + (fn prefix => + (checkRewrite (); + write "\tRewriteBase\t"; + write prefix; + write "\n")) + val () = Env.action_one "rewriteLogLevel" ("level", Env.int) (fn level => @@ -632,7 +649,7 @@ val () = Env.action_one "directoryIndex" app (fn opt => (write " "; write opt)) opts; write "\n")) -val () = Env.action_one "serverAlias" +val () = Env.action_one "serverAliasHost" ("host", Env.string) (fn host => (write "\tServerAlias "; @@ -640,8 +657,34 @@ val () = Env.action_one "serverAlias" write "\n"; !aliaser host)) +val () = Env.action_one "serverAlias" + ("host", Env.string) + (fn host => + (app + (fn dom => + let + val full = host ^ "." ^ dom + in + write "\tServerAlias "; + write full; + write "\n"; + !aliaser full + end) + (Domain.currentDomains ()))) + +val () = Env.action_none "serverAliasDefault" + (fn () => + (app + (fn dom => + (write "\tServerAlias "; + write dom; + write "\n"; + !aliaser dom)) + (Domain.currentDomains ()))) + val authType = fn (EVar "basic", _) => SOME "basic" | (EVar "digest", _) => SOME "digest" + | (EVar "kerberos", _) => SOME "kerberos" | _ => NONE val () = Env.action_one "authType" @@ -649,7 +692,11 @@ val () = Env.action_one "authType" (fn ty => (write "\tAuthType "; write ty; - write "\n")) + write "\n"; + case ty of + "kerberos" => + write "\tKrbMethodNegotiate off\n\tKrbMethodK5Passwd on\n\tKrbVerifyKDC off\n\tKrbAuthRealms HCOOP.NET\n\tKrbSaveCredentials on\n" + | _ => ())) val () = Env.action_one "authName" ("name", Env.string)