anchor.diff:          ";
         };
   
  +      apacheHttpd = mkOption {
  +        default = pkgs.apacheHttpd.override { mpm = mainCfg.multiProcessingModule; };
  +	example = "pkgs.apacheHttpd_2_4";
  +        description = "
  +          Overridable attribute of the Apache HTTP Server package to use.
  +        ";
  +      };
  +
  +      configFile = mkOption {
  +        default = confFile;
  +	example = ''pkgs.writeText "httpd.conf" "# my custom config file ...";'';
  +        description = "
  +          Overridable config file to use for Apache. By default, use the
  +          file automatically generated by nixos.
  +        ";
  +      };
  +
         extraConfig = mkOption {
           default = "";
           description = "
  -          These configuration lines will be passed verbatim to the apache config
  +          These configuration lines will be appended to the Apache config
  +          file. Note that this mechanism may not work when <option>configFile</option>
  +          is overridden.
           ";
         };
   
  
positive.code:   '';
  
  
    httpdConf = pkgs.writeText "httpd.conf" ''
  
      ServerRoot ${httpd}
  
  
negative.code: 
    mainCfg = config.services.httpd;
  
    httpd = mainCfg.apacheHttpd;
  
    httpdConf = mainCfg.configFile;
  
    php = pkgs.php.override { apacheHttpd = httpd; };
  
  