HCoop IP synonyms; PhpVersion env var
authorAdam Chlipala <adamc@hcoop.net>
Mon, 18 Feb 2008 17:17:43 +0000 (17:17 +0000)
committerAdam Chlipala <adamc@hcoop.net>
Mon, 18 Feb 2008 17:17:43 +0000 (17:17 +0000)
configDefault/apache.cfg
configDefault/apache.csg
lib/apache.dtl
lib/hcoop.dtl
lib/php.dtl
src/plugins/apache.sml

index db278ba..a58359a 100644 (file)
@@ -57,4 +57,6 @@ fun backupLogDirOf version1 =
     else
        "/afs/hcoop.net/common/etc/domtool/backup/apache2/"
 
+val defaultPhpVersion = 4
+
 end
index adc3000..e4c9e70 100644 (file)
@@ -24,4 +24,6 @@ signature APACHE_CONFIG = sig
     val realLogDirOf : string -> string
     val backupLogDirOf : bool -> string
 
+    val defaultPhpVersion : int
+
 end
index ed6f8b1..ebfbeb4 100644 (file)
@@ -30,6 +30,10 @@ extern type ssl;
 extern val no_ssl : ssl;
 extern val use_cert : ssl_cert_path -> ssl;
 
+extern type php_version;
+extern val php4 : php_version;
+extern val php5 : php_version;
+
 extern val vhost : host -> Vhost => [Domain]
   {WebPlaces : [web_place],
   SSL : ssl,
@@ -37,7 +41,8 @@ extern val vhost : host -> Vhost => [Domain]
   Group : your_group,
   DocumentRoot : your_path,
   ServerAdmin : email,
-  SuExec : suexec_flag};
+  SuExec : suexec_flag,
+  PhpVersion : php_version};
 {{Add a new named Apache virtual host, specifying which nodes' Apache servers
   should answer requests for this host, whether it should use SSL, what UNIX
   user and group dynamic content generators should be run as, the filesystem
@@ -51,7 +56,8 @@ extern val vhostDefault : Vhost => [Domain]
   Group : your_group,
   DocumentRoot : your_path,
   ServerAdmin : email,
-  SuExec : suexec_flag};
+  SuExec : suexec_flag,
+  PhpVersion : php_version};
 {{Like <tt>vhost</tt>, but for, e.g., <tt>yourdomain.com</tt> instead of
   <tt>www.yourdomain.com</tt>}}
 
index 3135462..b4b3109 100644 (file)
@@ -13,3 +13,8 @@ extern val homeS : no_spaces -> no_spaces;
 val mailmanHcoop = mailmanWebHost "lists.hcoop.net";
 {{Configure your domain to have its Mailman mailing lists served on the web at
   lists.hcoop.net.}}
+
+val deleuze_ip : (ip) = "69.90.123.67";
+val mire_ip : (ip) = "69.90.123.68";
+val krunk_ip : (ip) = "69.90.123.70";
+val fyodor_ip : (ip) = "64.20.38.170";
index 369bae5..5957a5e 100644 (file)
@@ -1,7 +1,3 @@
 {{PHP configuration}}
 
-extern type php_version;
-extern val php4 : php_version;
-extern val php5 : php_version;
-
 extern val phpVersion : php_version -> [^Vhost];
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 () => (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;
@@ -998,10 +1013,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";