X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/409542d7ec4496c61140e077e4885e267ab1c184..ffc8cf43cd1337beb6e812e06cf1c4ff45945d90:/src/plugins/apache.sml diff --git a/src/plugins/apache.sml b/src/plugins/apache.sml index 31fda50..c69b3d3 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 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"; @@ -632,7 +641,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,6 +649,31 @@ 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" | _ => NONE