From 4648ee8ad333857882bddff03099bf870d42e19a Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Wed, 26 Dec 2018 18:40:06 -0500 Subject: [PATCH] apache: add php 7.2 support Also get rid of fast_php (except for compatibility), and use php56 instead since we only have fastcgi php support now. --- configDefault/apache.cfg | 2 +- configDefault/apache.csg | 2 +- lib/apache.dtl | 8 +++++-- lib/defaults.dtl | 2 +- src/plugins/apache.sml | 48 ++++++++++++++-------------------------- 5 files changed, 26 insertions(+), 36 deletions(-) diff --git a/configDefault/apache.cfg b/configDefault/apache.cfg index 4cf1168..7cb48f5 100644 --- a/configDefault/apache.cfg +++ b/configDefault/apache.cfg @@ -74,7 +74,7 @@ fun fastCgiWrapperOf user = "-wrapper-wrapper"] (* FIXME: hcoop reference *) -val phpFastCgiWrapper = "/afs/hcoop.net/common/bin/php5-fcgi-wrapper" +fun phpFastCgiWrapper version = "/afs/hcoop.net/common/bin/php" ^ Int.toString version ^ "-fcgi-wrapper" val waklogUserFile = ConfigCore.localRoot ^ "/waklog.conf" diff --git a/configDefault/apache.csg b/configDefault/apache.csg index 451ab40..26e5cb0 100644 --- a/configDefault/apache.csg +++ b/configDefault/apache.csg @@ -27,7 +27,7 @@ signature APACHE_CONFIG = sig val backupLogDirOf : bool -> string val fastCgiWrapperOf : string -> string - val phpFastCgiWrapper : string + val phpFastCgiWrapper : int -> string val waklogUserFile : string diff --git a/lib/apache.dtl b/lib/apache.dtl index a75dd0d..1c66775 100644 --- a/lib/apache.dtl +++ b/lib/apache.dtl @@ -35,8 +35,12 @@ extern val no_ssl : ssl; extern val use_cert : ssl_cert_path -> ssl; extern type php_version; -extern val fast_php : php_version; -{{FastCGI based php5. Much faster than regular php5.}} +extern val php56 : php_version; +{{FastCGI based php 5.6.}} +extern val php72 : php_version; +{{FastCGI based php 7.2.}} + +val fast_php : php_version = php56; extern val vhost : host -> Vhost => [Domain] {WebPlaces : [web_place], diff --git a/lib/defaults.dtl b/lib/defaults.dtl index 75dcd61..4df01e7 100644 --- a/lib/defaults.dtl +++ b/lib/defaults.dtl @@ -12,7 +12,7 @@ var Group : your_group = "nogroup"; var DocumentRoot : your_path = (home "public_html"); var SuExec : suexec_flag = true; -var PhpVersion : php_version = fast_php; +var PhpVersion : php_version = php56; var Mailbox : email = defaultMailbox; var ServerAdmin : email = defaultServerAdmin; diff --git a/src/plugins/apache.sml b/src/plugins/apache.sml index 5a3bb88..0c3e685 100644 --- a/src/plugins/apache.sml +++ b/src/plugins/apache.sml @@ -470,7 +470,8 @@ fun vhostPost () = (!post (); write "\n"; app (TextIO.closeOut o #2) (!vhostFiles)) -val php_version = fn (EVar "fast_php", _) => SOME 6 +val php_version = fn (EVar "php56", _) => SOME 56 + | (EVar "php72", _) => SOME 72 | _ => NONE fun vhostBody (env, makeFullHost) = @@ -561,26 +562,18 @@ fun vhostBody (env, makeFullHost) = TextIO.output (file, user); TextIO.output (file, "/DAVLock"); - if php = 6 - then - (* fastcgi php 5.6, using version 6 since php6 doesn't exist *) - (TextIO.output (file, "\n\tAddHandler fcgid-script .php .phtml"); - map (fn ext => (TextIO.output (file, "\n\tFcgidWrapper \""); - (* kerberos wrapper, simulates waklog+mod_cgi *) - if isWaklog node then - (TextIO.output (file, Config.Apache.fastCgiWrapperOf user); - TextIO.output (file, " ")) - else - (); - TextIO.output (file, Config.Apache.phpFastCgiWrapper); - TextIO.output (file, "\" "); - TextIO.output (file, ext))) - [".php", ".phtml"]; - ()) - else - (TextIO.output (file, "\n\tAddHandler x-httpd-php"); - TextIO.output (file, Int.toString php); - TextIO.output (file, " .php .phtml")); + TextIO.output (file, "\n\tAddHandler fcgid-script .php .phtml"); + map (fn ext => (TextIO.output (file, "\n\tFcgidWrapper \""); + (* kerberos wrapper, simulates waklog+mod_cgi *) + if isWaklog node then + (TextIO.output (file, Config.Apache.fastCgiWrapperOf user); + TextIO.output (file, " ")) + else + (); + TextIO.output (file, Config.Apache.phpFastCgiWrapper php); + TextIO.output (file, "\" "); + TextIO.output (file, ext))) + [".php", ".phtml"]; (ld, file) end) places; @@ -1161,21 +1154,14 @@ val () = Env.action_one "diskCache" val () = Env.action_one "phpVersion" ("version", php_version) - (fn version => (if version = 6 - then - (* fastcgi php 5.6 since 6 doesn't exist *) - (write "\tAddHandler fcgid-script .php .phtml\n"; + (fn version => (write "\tAddHandler fcgid-script .php .phtml\n"; (* FIXME: only set kerberos wrapper of waklog is on *) (* won't be trivial, since we don't have access to node here *) write "\n\tFcgidWrapper \""; write (Config.Apache.fastCgiWrapperOf (Domain.getUser ())); write " "; - write Config.Apache.phpFastCgiWrapper; - write "\" .php .phtml\n") - else - (write "\tAddHandler x-httpd-php"; - write (Int.toString version); - write " .php .phtml\n"))) + write (Config.Apache.phpFastCgiWrapper version); + write "\" .php .phtml\n")) val () = Env.action_two "addType" ("mime type", Env.string, "extension", Env.string) -- 2.20.1