# LUCI description file for config file '/etc/apache/httpd.conf'.
# Automatically generated by create_desc_file.

title='Apache Web Server Configuration'

config_file_name   = '/tmp/httpd.conf'
config_file_type   = 'keywords'
entries = ['servertype', 'port', 'hostnamelookups', 'user', 'group', 'serveradmin', 'serverroot', 'bindaddress', 'extendedstatus', 'errorlog', 'loglevel', 'pidfile', 'scoresoardfile', 'lockfile', 'servername', 'usecanonicalname', 'cachenegotiateddocs', 'timeout', 'keepalive', 'maxkeepaliverequests', 'keepalivetimeout', 'minspareservers', 'maxspareservers', 'startservers', 'maxclients', 'maxrequestsperchild']

import pwd, grp

servertype={
'name'            : 'Server Type',
'description'     : 'If you are running from inetd, go to "ServerAdmin"',
'value_type'      : 'list',
'list_values'     : ['inetd', 'standalone'],
'size'            : 120 ,
'config_name'     : 'ServerType'
}

port={
'name'            : 'Port',
'description'     : 'The port the standalone listens to. For ports < 1023, you will need httpd to be run as root initially.',
'value_type'      : 'integer',
'integer_limits'  : (1, 65535),
'size'            : 60 ,
'config_name'     : 'Port'
}

hostnamelookups={
'name'            : 'Hostnamelookups',
'description'     : """Log the names of clients or just their IP numbers
e.g.   www.apache.org (on) or 204.62.129.132 (off).
The default is off because it'd be overall better for the net if people had to knowingly turn this feature on.""",
'value_type'      : 'list',
'list_values'     : ['on', 'off'],
'size'            : 40 ,
'config_name'     : 'HostnameLookups'
}

user={
'name'            : 'User',
'description'     : """If you wish httpd to run as a different user or group, you must run httpd as root initially and it will switch.

The name (or #number) of the user to run httpd as.
On SCO (ODT 3) use User nouser
On HPUX you may not be able to use shared memory as nobody, and the suggested workaround is to create a user www and use that user.""",
'value_type'      : 'list',
'list_values'     : map(lambda x:(x[0]), pwd.getpwall()),
'size'            : 80 ,
'config_name'     : 'User'
}

group={
'name'            : 'Group',
'description'     : """If you wish httpd to run as a different group, you must run httpd as root initially and it will switch.

The name (or #number) of the group to run httpd as.""",
'value_type'      : 'list',
'list_values'     : map(lambda x:(x[0]), grp.getgrall()),
'size'            : 80 ,
'config_name'     : 'Group'
}

serveradmin={
'name'            : 'Server Admin',
'description'     : 'Your address, where problems with the server should be e-mailed.',
'size'            : 160 ,
'config_name'     : 'ServerAdmin'
}

serverroot={
'name'            : 'Server Root',
'description'     : """The directory the server's config, error, and log files are kept in.
NOTE!  If you intend to place this on a NFS (or otherwise network) mounted filesystem then please read the LockFile documentation, you will save yourself a lot of trouble.""",
'value_type'      : 'filename',
'size'            : 160 ,
'config_name'     : 'ServerRoot'
}

bindaddress={
'name'            : 'Bind Address',
'description'     : """You can support virtual hosts with this option. This option is used to tell the server which IP address to listen to. It can either contain \"*\", an IP address, or a fully qualified Internet domain name.
See also the VirtualHost directive.""",
'size'            : 40 ,
'config_name'     : 'BindAddress'
}

extendedstatus={
'name'            : 'Extended Status',
'value_type'      : 'list',
'list_values'     : ['on', 'off'],
'size'            : 40 ,
'config_name'     : 'ExtendedStatus'
}

errorlog={
'name'            : 'Error Log',
'description'     : 'The location of the error log file. If this does not start with /, ServerRoot is prepended to it.',
'value_type'      : 'filename',
'size'            : 160 ,
'config_name'     : 'ErrorLog'
}

loglevel={
'name'            : 'Log Level',
'description'     : 'Control the number of messages logged to the error_log.',
'value_type'      : 'list',
'list_values'     : ['debug', 'info', 'notice', 'warn', 'error', 'crit', 'alert', 'emerg'],
'size'            : 40 ,
'config_name'     : 'LogLevel'
}

pidfile={
'name'            : 'Pid File',
'description'     : 'The file the server should log its pid to',
'value_type'      : 'filename',
'size'            : 160 ,
'config_name'     : 'PidFile'
}

scoresoardfile={
'name'            : 'Score Board File',
'description'     : "File used to store internal server process information. Not all architectures require this.  But if yours does (you'll know because this file is created when you run Apache) then you *must* ensure that no two invocations of Apache share the same scoreboard file.",
'presence'        : 'optional',
'size'            : 160 ,
'config_name'     : 'ScoreBoardFile'
}

lockfile={
'name'            : 'Lock File',
'description'     : 'The LockFile directive sets the path to the lockfile used when Apache is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally be left at its default value. The main reason for changing it is if the logs directory is NFS mounted, since the lockfile MUST BE STORED ON A LOCAL DISK. The PID of the main server process is automatically appended to the filename.',
'value_type'      : 'filename',
'size'            : 160 ,
'config_name'     : 'LockFile'
}

servername={
'name'            : 'Server Name',
'description'     : """ServerName allows you to set a host name which is sent back to clients for your server if it's different than the one the program would get (i.e. use \"www\" instead of the host's real name).

Note: You cannot just invent host names and hope they work. The name you define here must be a valid DNS name for your host. If you don't understand this, ask your network administrator.""",
'presence'        : 'optional',
'size'            : 160 ,
'config_name'     : 'ServerName'
}

usecanonicalname={
'name'            : 'Use Canonical Name',
'description'     : '(new for 1.3)  With this setting turned on, whenever Apache needs to construct a self-referencing URL (a url that refers back to the server the response is coming from) it will use ServerName and Port to form a "canonical" name.  With this setting off, Apache will use the hostname:port that the client supplied, when possible.  This also affects SERVER_NAME and SERVER_PORT in CGIs.',
'size'            : 40 ,
'config_name'     : 'UseCanonicalName'
}

cachenegotiateddocs={
'name'            : 'CacheNegotiatedDocs',
'description'     : 'By default, Apache sends Pragma: no-cache with each document that was negotiated on the basis of content. This asks proxy servers not to cache the document. Activing this parameter will disables this behavior, and proxies will be allowed to cache the documents.',
'presence'        : 'optional',
'size'            : 1 ,
'max_length'      : 0 ,
'config_name'     : 'CacheNegotiatedDocs'
}

timeout={
'name'            : 'Timeout',
'description'     : 'The number of seconds before receives and sends time out',
'value_type'      : 'integer',
'integer_limits'  : (1, 9999999),
'size'            : 60 ,
'config_name'     : 'Timeout'
}

keepalive={
'name'            : 'Keep Alive',
'description'     : 'KeepAlive: Whether or not to allow persistent connections (more than one request per connection). Set to "Off" to deactivate.',
'value_type'      : 'list',
'list_values'     : ['on', 'off'],
'size'            : 40 ,
'config_name'     : 'KeepAlive'
}

maxkeepaliverequests={
'name'            : 'Max Keep Alive Requests',
'description'     : 'The maximum number of requests to allow during a persistent connection. Set to 0 to allow an unlimited amount. We reccomend you leave this number high, for maximum performance.',
'value_type'      : 'integer',
'integer_limits'  : (0, 99999),
'size'            : 60 ,
'config_name'     : 'MaxKeepAliveRequests'
}

keepalivetimeout={
'name'            : 'Keep Alive Timeout',
'description'     : 'Number of seconds to wait for the next request',
'value_type'      : 'integer',
'integer_limits'  : (0, 99999),
'size'            : 60 ,
'config_name'     : 'KeepAliveTimeout'
}

minspareservers={
'name'            : 'Min Spare Servers',
'description'     : """Server-pool size regulation.  Rather than making you guess how many server processes you need, Apache dynamically adapts to the load it sees --- that is, it tries to maintain enough server processes to handle the current load, plus a few spare servers to handle transient load spikes (e.g., multiple simultaneous requests from a single Netscape browser).

It does this by periodically checking how many servers are waiting for a request.  If there are fewer than MinSpareServers, it creates a new spare.  If there are more than MaxSpareServers, some of the spares die off.  These values are probably OK for most sites""",
'value_type'      : 'integer',
'integer_limits'  : (1, 99999),
'size'            : 60 ,
'config_name'     : 'MinSpareServers'
}

maxspareservers={
'name'            : 'Max Spare Servers',
'description'     : """Server-pool size regulation.  Rather than making you guess how many server processes you need, Apache dynamically adapts to the load it sees --- that is, it tries to maintain enough server processes to handle the current load, plus a few spare servers to handle transient load spikes (e.g., multiple simultaneous requests from a single Netscape browser).

It does this by periodically checking how many servers are waiting for a request.  If there are fewer than MinSpareServers, it creates a new spare.  If there are more than MaxSpareServers, some of the spares die off.  These values are probably OK for most sites""",
'value_type'      : 'integer',
'integer_limits'  : (1, 99999),
'size'            : 60 ,
'config_name'     : 'MaxSpareServers'
}

startservers={
'name'            : 'Start Servers',
'description'     : 'Number of servers to start --- should be a reasonable ballpark figure.',
'value_type'      : 'integer',
'integer_limits'  : (1, 1000),
'size'            : 60 ,
'config_name'     : 'StartServers'
}

maxclients={
'name'            : 'Max Clients',
'description'     : 'Limit on total number of servers running, i.e., limit on the number of clients who can simultaneously connect --- if this limit is ever reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW. It is intended mainly as a brake to keep a runaway server from taking Unix with it as it spirals down...',
'value_type'      : 'integer',
'integer_limits'  : (1, 1000),
'size'            : 60 ,
'config_name'     : 'MaxClients'
}

maxrequestsperchild={
'name'            : 'Max Requests per Child',
'description'     : """the number of requests each child process is allowed to process before the child dies.
The child will exit so as to avoid problems after prolonged use when Apache (and maybe the libraries it uses) leak.  On most systems, this isn't really needed, but a few (such as Solaris) do have notable leaks in the libraries.""",
'value_type'      : 'integer',
'integer_limits'  : (1, 1000),
'size'            : 60 ,
'config_name'     : 'MaxRequestsPerChild'
}