Domtool Module Apache
Apache web server configuration
extern type web_node
extern val web_node_to_node : web_node -> node
extern type web_place
extern val web_place_default : web_node -> web_place
extern val web_place : web_node -> your_ip -> your_ipv6 -> web_place
extern val web_place_to_web_node : web_place -> web_node
extern val web_place_to_node : web_place -> node
extern val web_place_to_ip : web_place -> ip
extern val web_place_to_ipv6 : web_place -> ipv6
context Vhost
extern type suexec_flag
extern type ssl_cert_path
extern type ssl_cacert_path
extern type ssl
extern val no_ssl : ssl
extern val use_cert : ssl_cert_path -> ssl
extern type php_version
extern val php56 : php_version
extern val php72 : php_version
extern val php73 : php_version
extern val php74 : php_version
extern val php80 : php_version
extern val vhost :
host ->
Vhost =>
[Domain]
{DocumentRoot : your_path,
Group : your_group,
PhpVersion : php_version,
SSL : ssl,
ServerAdmin : email,
SuExec : suexec_flag, User : your_user, WebPlaces : [web_place]}
extern val vhostDefault :
Vhost =>
[Domain]
{DocumentRoot : your_path,
Group : your_group,
PhpVersion : php_version,
SSL : ssl,
ServerAdmin : email,
SuExec : suexec_flag, User : your_user, WebPlaces : [web_place]}
context Location
extern type location
extern val location : location -> ^Vhost & Location => [Vhost & !Location]
extern val directory : your_path -> ^Vhost & Location => [Vhost & !Location]
extern type regexp
extern val filesMatch : regexp -> ^Vhost & Location => [Vhost & !Location]
extern val serverAliasHost : your_domain_host -> [Vhost]
extern val serverAlias : host -> [Vhost]
extern val serverAliasDefault : [Vhost]
extern val testNoHtaccess : [Location]
extern val sslCertificateChainFile : ssl_cacert_path -> [Vhost]
Nodes that accept Apache configuration from you
extern val web_node_to_node : web_node -> node
extern val web_place_default : web_node -> web_place
extern val web_place : web_node -> your_ip -> your_ipv6 -> web_place
extern val web_place_to_web_node : web_place -> web_node
extern val web_place_to_node : web_place -> node
extern val web_place_to_ip : web_place -> ip
extern val web_place_to_ipv6 : web_place -> ipv6
Web places are combinations of web nodes (servers on which you are allowed to run web sites) and IP addresses on which those servers should listen for requests.
A WWW virtual host
Whether or not to use Suexec with a vhost. For users with the 'www' privilege, this type is identical to [bool]. For others, it has only one value, [true].
Filesystem path to an SSL certificate in your 'cert' list
Filesystem path to an intermediate CA certificate in your 'cacert' list
extern val use_cert : ssl_cert_path -> ssl
extern val php56 : php_version
FastCGI based php 5.6.
extern val php72 : php_version
FastCGI based php 7.2.
extern val php73 : php_version
FastCGI based php 7.3.
extern val php74 : php_version
FastCGI based php 7.4.
extern val php80 : php_version
FastCGI based php 8.0.
extern val vhost :
host ->
Vhost =>
[Domain]
{DocumentRoot : your_path,
Group : your_group,
PhpVersion : php_version,
SSL : ssl,
ServerAdmin : email,
SuExec : suexec_flag, User : your_user, WebPlaces : [web_place]}
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 path to the static content root, and the e-mail address to which error pages should direct visitors.
extern val vhostDefault :
Vhost =>
[Domain]
{DocumentRoot : your_path,
Group : your_group,
PhpVersion : php_version,
SSL : ssl,
ServerAdmin : email,
SuExec : suexec_flag, User : your_user, WebPlaces : [web_place]}
Like vhost, but for, e.g., yourdomain.com instead of www.yourdomain.com
A valid URI prefix
extern val location : location -> ^Vhost & Location => [Vhost & !Location]
extern val directory : your_path -> ^Vhost & Location => [Vhost & !Location]
Set some configuration specific to a URI prefix or filesystem directory, respectively.
PCRE regular expression
extern val filesMatch : regexp -> ^Vhost & Location => [Vhost & !Location]
Mark nested configuration to only apply to filenames matching the regexp.
extern val serverAliasHost : your_domain_host -> [Vhost]
Give an alternate hostname for this vhost.
extern val serverAlias : host -> [Vhost]
Like serverAliasHost, but adds an alias for the given hostname at every domain being configured.
extern val serverAliasDefault : [Vhost]
Like serverAliasDefault, but adds aliases for the domains being configured instead of any of their hosts/"subdomains".
extern val testNoHtaccess : [Location]
extern val sslCertificateChainFile : ssl_cacert_path -> [Vhost]
Intermediate file to serve as part of the chain of authority for your ssl certificate