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]

extern type web_node

Nodes that accept Apache configuration from you

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

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.

context Vhost

A WWW virtual host

extern type suexec_flag

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].

extern type ssl_cert_path

Filesystem path to an SSL certificate in your 'cert' list

extern type ssl_cacert_path

Filesystem path to an intermediate CA certificate in your 'cacert' list

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

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

context Location

extern type location

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.

extern type regexp

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