Commit 11f7d91c authored by Hanno Schlichting's avatar Hanno Schlichting

Update mkzopesite skeleton.

Provide both a ZServer based etc/zope.conf and 'no HTTP server'
etc/wsgi.conf, both based on a common etc/base.conf.

Also move the full configuration options into an etc/example.conf
parent d6f77dea
......@@ -8,8 +8,11 @@ develop/
develop-eggs/
dist/
eggs/
etc/
include/
lib/
log/
parts/
var/
docs/_build/
docs/.build/
......@@ -15,7 +15,7 @@ global-exclude *.pyo
global-exclude *.so
include *.py
include .travis.yml
include buildout.cfg
include sources.cfg
include versions-prod.cfg
include versions.cfg
......@@ -46,7 +46,6 @@ def _setconfig(configfile=None):
accept a configfile argument (string path) in order to specify
where the configuration file exists. """
from Zope2.Startup import options, handlers
from App import config
opts = options.ZopeOptions()
if configfile:
opts.configfile = configfile
......
......@@ -72,7 +72,7 @@ class StartupTestCase(unittest.TestCase):
cfg = getConfiguration()
import Zope2.utilities
base = os.path.dirname(Zope2.utilities.__file__)
fn = os.path.join(base, "skel", "etc", "zope.conf.in")
fn = os.path.join(base, "skel", "etc", "base.conf.in")
f = open(fn)
text = f.read()
f.close()
......
......@@ -218,6 +218,8 @@ class ZopeCmd(ZDCmd):
def do_foreground(self, arg):
program = self.options.program
local_additions = []
if not program.count('-C'):
local_additions += ['-C', self.options.configfile]
if not program.count('-X'):
local_additions += ['-X']
if not program.count('debug-mode=on'):
......
This directory contains an "instance home" for the Zope application
server. It contains the following directories:
bin/ Scripts used to control the Zope instance
etc/ Configuration files
log/ Log files
var/ Run-time data files, including the object database
%define INSTANCE <<INSTANCE_HOME>>
instancehome $INSTANCE
<eventlog>
level info
<logfile>
path $INSTANCE/log/event.log
level info
</logfile>
</eventlog>
<logger access>
level WARN
<logfile>
path $INSTANCE/log/Z2.log
format %(message)s
</logfile>
</logger>
<zodb_db main>
<filestorage>
path $INSTANCE/var/Data.fs
</filestorage>
mount-point /
</zodb_db>
<zodb_db temporary>
<temporarystorage>
name temporary storage for sessioning
</temporarystorage>
mount-point /temp_folder
container-class Products.TemporaryFolder.TemporaryContainer
</zodb_db>
###############################################################################
# Welcome to Zope 2.
###############################################################################
#
# This is the Zope configuration file. The Zope configuration file
# shows what the default configuration directives are, and show
# examples for each directive. To declare a directive, make sure that
# you add it to a line that does not begin with '#'. Note that comments
# are only allowed at the beginning of a line: you may not add comments
# after directive text on the same line.
# ZConfig "defines" used for later textual substitution
%define INSTANCE <<INSTANCE_HOME>>
# Directive: instancehome
#
# Description:
# The path to the data and process identifier files used by Zope.
#
# Required (no default)
#
# Example:
#
# instancehome /home/chrism/projects/sessions
instancehome $INSTANCE
# Directive: clienthome
#
# Description:
# The directory in which a running Zope's process identifier files are
# placed.
#
# Default: $INSTANCE/var
#
# Example:
#
# clienthome /home/chrism/projects/sessions/var
# Directive: environment
#
# Description:
# A section which can be used to define arbitrary key-value pairs
# for use as environment variables during Zope's run cycle. It
# is not recommended to set system-related environment variables such as
# PYTHONPATH within this section.
#
# Default: unset
#
# Example:
#
# <environment>
# MY_PRODUCT_ENVVAR foobar
# </environment>
# Directive: effective-user
#
# Description:
# If you intend to run Zope as the "root" user, you must supply this
# directive with an effective username or userid number to which Zope
# will 'suid' after the server ports are bound. This directive only
# has effect under UNIX and if Zope is started as the root user.
#
# Default: unset
#
# Example:
#
# effective-user chrism
# Directive: locale
#
# Description:
# Enable locale (internationalization) support by supplying a locale
# name to be used. See your operating system documentation for locale
# information specific to your system. If your Python module does not
# support the locale module, or if the requested locale is not
# supported by your system, an error will be raised and Zope will not
# start.
#
# Default: unset
#
# Example:
#
# locale fr_FR
# Directive: datetime-format
#
# Description:
# Set this variable either to "us" or "international" to force the
# DateTime module to parse date strings either with
# month-before-days-before-year ("us") or
# days-before-month-before-year ("international"). The default
# behaviour of DateTime (when this setting is left unset) is to
# parse dates as US dates.
#
# Default: us
#
# Example:
#
# datetime-format international
# Directive: zserver-threads
#
# Description:
# Specify the number of threads that Zope's ZServer web server will use
# to service requests. The default is 2.
#
# Default: 2
#
# Example:
#
# zserver-threads 3
# Directive: python-check-interval
#
# Description:
# Specify an integer representing the Python interpreter "check
# interval" This interval determines how often the interpreter checks
# for periodic things such as thread switches and signal handlers. The
# Zope default is 1000, but you may want to experiment with other values
# in order to attempt to increase performance in your particular
# environment.
#
# Default: 1000
#
# Example:
#
# python-check-interval 1500
# Directive: zserver-read-only-mode
#
# Description:
# If this directive is set to 'on', it will cause Zope to inhibit the
# creation of log files and pid files. Access and event log files will
# be presented on standard output. Setting this directive 'on' causes
# pcgi, fastcgi, and daemon-related directives to have no effect.
#
# Default: off
#
# Example:
#
# zserver-read-only-mode on
# Directive: pid-filename
#
# Description:
# The path to the file in which the Zope process id(s) will be written.
# This defaults to client-home/Z2.pid.
#
# Default: CLIENT_HOME/Z2.pid
#
# Example:
#
# pid-filename /home/chrism/projects/sessions/var/Z2.pid
# Directive: lock-filename
#
# Description:
# The path to a "lock file" which will be locked by Zope while it's
# running. This file is used by zopectl.py to determine if Zope is
# currently running. This defaults to CLIENT_HOME/Z2.lock.
#
# Default: CLIENT_HOME/Z2.lock
#
# Example:
#
# lock-filename /home/chrism/projects/sessions/var/Z2.lock
# Directive: ip-address
#
# Description:
# The default IP address on which Zope's various server protocol
# implementations will listen for requests. If this is unset, Zope
# will listen on all IP addresses supported by the machine. This
# directive can be overridden on a per-server basis in the servers
# section.
#
# Default: unset
#
# Example:
#
# ip-address 127.0.0.1
# Directive: http-realm
#
# Description:
# The HTTP "Realm" header value sent by this Zope instance. This value
# often shows up in basic authentication dialogs.
#
# Default: Zope
#
# Example:
#
# http-realm Slipknot
# Directive: enable-ms-public-header
#
# Description:
# Set this directive to 'on' to enable sending the "Public" header
# in response to an WebDAV OPTIONS request.
#
# Though recent WebDAV drafts mention this header, the original
# WebDAV RFC did not mention it as part of the standard. Very few
# web servers out there include this header in their replies, most
# notably IIS and Netscape Enterprise 3.6.
#
# Since many best practices documents out in the web mention
# turning off this header with the subject of "Mask Your Web Server
# For Enhanced Security", this setting is off by
# default. Presumably malicious people might take the presence of
# this header as indication of an IIS Web Server and try to attack
# your site, so be careful when turning it on.
#
# Recent versions of Microsoft Web Folders, updated after January
# 2005, *do* require this header to be present in reply to the
# OPTIONS WebDAV request.
# (http://www.redmountainsw.com/wordpress/archives/webfolders-zope)
#
# To get a recent Microsoft Web Folders implementation, refer to
# Microsoft KB Article 907306.
# (Software Update for Web Folders: May 18, 2007).
#
# Default: off
#
# Example:
#
# enable-ms-public-header on
# Directive: automatically-quote-dtml-request-data
#
# Description:
# Set this directive to 'off' in order to disable the autoquoting of
# implicitly retrieved REQUEST data by DTML code which contains a '<'
# when used in <dtml-var> construction. When this directive is 'on',
# all data implicitly retrieved from the REQUEST in DTML (as opposed to
# addressing REQUEST.somevarname directly) that contains a '<' will be
# HTML-quoted when interpolated via a <dtml-var> or &dtml- construct. This
# mitigates the possibility that DTML programmers will leave their
# sites open to a "client-side trojan" attack.
#
# Default: on
#
# Example:
#
# automatically-quote-dtml-request-data on
# Directive: trusted-proxy
#
# Description:
# Define one or more 'trusted-proxies' directives, each of which is a
# hostname or an IP address. The set of definitions comprises a list
# of front-end proxies that are trusted to supply an accurate
# X-Forwarded-For header to Zope. If a connection comes from
# a trusted proxy, Zope will trust any X-Forwarded header to contain
# the user's real IP address for the purposes of address-based
# authentication restriction.
#
# Default: unset
#
# Example:
#
# trusted-proxy www.example.com
# trusted-proxy 192.168.1.1
# Directive: publisher-profile-file
#
# Description:
# Names a file on the filesystem which causes Zope's Python
# profiling capabilities to be enabled. For more information, see
# the Debug Information - > Profiling tab of Zope's Control_Panel
# via the Zope Management Interface. IMPORTANT: setting this
# filename will cause Zope code to be executed much more slowly
# than normal. This should not be enabled in production.
#
# Default: unset
#
# Example:
#
# publisher-profile-file $INSTANCE/var/profile.dat
# Directive: security-policy-implementation
#
# Description:
# The default Zope security machinery is implemented in C. Change
# this to "python" to use the Python version of the Zope security
# machinery. This setting may impact performance but is useful
# for debugging purposes. See also the "verbose-security" option
# below.
#
# Default: C
#
# Example:
#
# security-policy-implementation python
# Directive: skip-authentication-checking
#
# Description:
# Set this directive to 'on' to cause Zope to skip checks related
# to authentication, for servers which serve only anonymous content.
# Only works if security-policy-implementation is 'C'.
#
# Default: off
#
# Example:
#
# skip-authentication-checking on
# Directive: skip-ownership-checking
#
# Description:
# Set this directive to 'on' to cause Zope to ignore ownership checking
# when attempting to execute "through the web" code. By default, this
# directive is on in order to prevent 'trojan horse' security problems
# whereby a user with less privilege can cause a user with more
# privilege to execute dangerous code.
#
# Default: off
#
# Example:
#
# skip-ownership-checking on
# Directive: verbose-security
#
# Description:
# By default, Zope reports authorization failures in a terse manner in
# order to avoid revealing unnecessary information. This option
# modifies the Zope security policy to report more information about
# the reason for authorization failures. It's designed for debugging.
# If you enable this option, you must also set the
# 'security-policy-implementation' to 'python'.
#
# Default: off
#
# Example:
#
# security-policy-implementation python
# verbose-security on
# Directives: logger
#
# Description:
# This area should define one or more "logger" sections of the
# names "access", "event", and "trace". The "access" logger logs
# Zope server access. The "event" logger logs Zope event
# information. The "trace" logger logs detailed server request
# information (for debugging purposes only). Each logger section
# may contain a "level" name/value pair which indicates the level
# of logging detail to capture for this logger. The default level
# is INFO. Level may be any of "CRITICAL", 'ERROR", WARN", "INFO",
# "DEBUG", and "ALL". Each logger section may additionally contain
# one or more "handler" sections which indicates a types of log
# "handlers" (file, syslog, NT event log, etc) to be used for the
# logger being defined. There are 5 types of handlers: logfile,
# syslog, win32-eventlog, http-handler, email-notifier. Each
# handler type has its own set of allowable subkeys which define
# aspects of the handler. All handler sections also allow for the
# specification of a "format" (the log message format string), a
# "dateformat" (the log message format for date strings), and a
# "level", which has the same semantics of the overall logger
# level but overrides the logger's level for the handler it's
# defined upon. XXXX much more detail necessary here
#
# Default:
#
# The access log will log to the file <instancehome>/log/Z2.log at
# level INFO, the event log will log to the file
# <instancehome>/log/event.log at level INFO, and the trace log
# will not be written anywhere.
<eventlog>
level info
<logfile>
path $INSTANCE/log/event.log
level info
</logfile>
</eventlog>
<logger access>
level WARN
<logfile>
path $INSTANCE/log/Z2.log
format %(message)s
</logfile>
</logger>
# <logger trace>
# level WARN
# <logfile>
# path $INSTANCE/log/trace.log
# format %(message)s
# </logfile>
# </logger>
# Directive: conflict-error-log-level
#
# Description:
# Specifies at which level conflict errors are logged. Conflict
# errors, when occuring in small numbers, are a normal part of the
# Zope optimistic transaction conflict resolution algorithms. They
# are retried automatically a few times, and are therefore usually
# not visible by the user. You can specify 'notset' if you don't
# want them logged, or use any other logger level (see above).
#
# Default: info
#
# Example:
#
# conflict-error-log-level blather
# Directive: max-conflict-retries
#
# Description:
# Specifies how many times a transaction will be re-tried when
# it generates ConflictErrors. This can be a problem when using
# a ZEO server and you have large numbers of simultaneous writes.
#
# Default: 3
#
# Example:
#
# max-conflict-retries 10
# Directive: warnfilter
#
# Description:
# A section that allows you to define a warning filter.
# The following keys are valid within a warnfilter section:
#
# action: one of the following strings:
#
# "error" turn matching warnings into exceptions
# "ignore" never print matching warnings
# "always" always print matching warnings
# "default" print the first occurrence of matching warnings
# for each location where the warning is issued
# "module" print the first occurrence of matching warnings
# for each module where the warning is issued
# "once" print only the first occurrence of matching
# warnings, regardless of location
#
# message: a string containing a regular expression that the
# warning message must match (the match is compiled to
# always be case-insensitive)
#
# category: a Python dotted-path classname (must be a subclass of
# Warning) of which the warning category must be a subclass in
# order to match
#
# module: a string containing a regular expression that the
# module name must match (the match is compiled to be
# case-sensitive)
#
# lineno: an integer that the line number where the warning
# occurred must match, or 0 to match all line numbers
#
# All keys within a warnfilter section are optional. More than
# one warnfilter section may be specified.
#
# Default: unset
#
# Example:
#
# <warnfilter>
# action ignore
# category exceptions.DeprecationWarning
# </warnfilter>
# Directive: max-listen-sockets
#
# Description:
# The maximum number of sockets that ZServer will attempt to open
# in order to service incoming connections.
#
# Default: 1000
#
# Example:
#
# max-listen-sockets 500
# Directives: port-base
#
# Description:
# Offset applied to the port numbers used for ZServer
# configurations. For example, if the http-server port is 8080 and
# the port-base is 1000, the HTTP server will listen on port 9080.
# This makes it easy to change the complete set of ports used by a
# Zope server process
#
# Default:
#
# 0
#
# Example:
#
# port-base 1000
# Directive: large-file-threshold
#
# Description:
# Requests bigger than this size get saved into a temporary file
# instead of being read completely into memory.
#
# Default: 512K
#
# Example:
#
# large-file-threshold 1Mb
# Directives: servers
#
# Description:
# A set of sections which allow the specification of Zope's various
# ZServer servers. 8 different server types may be defined:
# http-server, ftp-server, webdav-source-server, persistent-cgi,
# fast-cgi, monitor-server, icp-server, and clock-server. If no servers
# are defined, the default servers are used.
#
# Ports may be specified using the 'address' directive either in simple
# form (80) or in complex form including hostname 127.0.0.1:80. If the
# hostname is "left off", the default-ip-address is used as the hostname.
#
# Port numbers are offset by the setting of port-base.
#
# To run the monitor-server an emergency user must be defined
# (through an 'access' file).
#
# Default:
#
# An HTTP server starts on port 8080.
<http-server>
# valid keys are "address" and "force-connection-close"
address 8080
# force-connection-close on
#
# You can also use the WSGI interface between ZServer and ZPublisher:
# use-wsgi on
#
# To defer the opening of the HTTP socket until the end of the
# startup phase:
# fast-listen off
</http-server>
# Examples:
#
# <webdav-source-server>
# # valid keys are "address" and "force-connection-close"
# address 1980
# force-connection-close off
# </webdav-source-server>
#
# <icp-server>
# # valid key is "address"
# address 888
# </icp-server>
#
# <clock-server>
# # starts a clock which calls /foo/bar every 30 seconds
# method /foo/bar
# period 30
# user admin
# password 123
# </clock-server>
# Database (zodb_db) section
#
# Description:
# A database section allows the definition of custom database and
# storage types. More than one zodb_db section can be defined.
#
# Default: unset.
# IMPORTANT: At least one database with a mount-point of "/"
# must be specified for Zope to start properly.
<zodb_db main>
# Main FileStorage database
<filestorage>
# See ZODB's component.xml for directives (sectiontype "filestorage").
path $INSTANCE/var/Data.fs
blob-dir $INSTANCE/var/blobstorage
</filestorage>
mount-point /
</zodb_db>
<zodb_db temporary>
# Temporary storage database (for sessions)
<temporarystorage>
name temporary storage for sessioning
</temporarystorage>
mount-point /temp_folder
container-class Products.TemporaryFolder.TemporaryContainer
</zodb_db>
# Other storage examples
#
# ZEO client storage:
#
# <zodb_db main>
# # The full mount-point syntax is:
# #
# # mount-point <localpath>[:<remotepath>]
# #
# # localpath - the path where the storage is mounted in this instance
# # remotepath - is the path to the object in the storage where it is mounted
# # from. This defaults to whatever is supplied for localpath.
# mount-point /
# # ZODB cache, in number of objects
# cache-size 5000
# <zeoclient>
# # See .../ZODB/component.xml for directives (sectiontype
# # "zeoclient").
# server localhost:8100
# storage 1
# name zeostorage
# var $INSTANCE/var
# # ZEO client cache, in bytes
# cache-size 20MB
# # Uncomment to have a persistent disk cache
# #client zeo1
# </zeoclient>
# </zodb_db>
# Product configuration (product-config) section(s)
#
# Description:
# Add-on products may need to allow the user to specify policy /
# configuration. Such policies may be expressed as a set of
# name-value pairs, grouped into a named section (there may
# be many such sections, typically one per product).
# These sections will be captured in an attribute, 'product_config'
# of the top-level config object, under the key corresponding to
# the section name. E.g., the sample section below would be
# parsed into a dict, {'bar': 'baz'}, available as
# config.product_config['foo']
#
# Products may also register their own section types, extending
#
#
# Example:
#
# 1. Simple "bag of strings" section:
#
# <product-config foo>
# bar baz
# </product-config>
#
# 2. Custom section type
#
# Products/Foo/component.xml:
#
# <component>
# <description>
# Some product-specific hackery.
# </description>
# <sectiontype name="myproduct" implements="zope.product.base">
# <description>
# Product-specific configuration.
# </description>
# <key name="foo" />
# </sectiontype>
# </component>
#
# In zope.conf:
#
# %import Products.Foo
#
# <myproduct bar>
# foo qux
# </myproduct>
%include <<INSTANCE_HOME>>/etc/base.conf
###############################################################################
# Welcome to Zope 2.
###############################################################################
#
# This is the Zope configuration file. The Zope configuration file
# shows what the default configuration directives are, and show
# examples for each directive. To declare a directive, make sure that
# you add it to a line that does not begin with '#'. Note that comments
# are only allowed at the beginning of a line: you may not add comments
# after directive text on the same line.
# ZConfig "defines" used for later textual substitution
%define INSTANCE <<INSTANCE_HOME>>
# Directive: instancehome
#
# Description:
# The path to the data and process identifier files used by Zope.
#
# Required (no default)
#
# Example:
#
# instancehome /home/chrism/projects/sessions
instancehome $INSTANCE
# Directive: clienthome
#
# Description:
# The directory in which a running Zope's process identifier files are
# placed.
#
# Default: $INSTANCE/var
#
# Example:
#
# clienthome /home/chrism/projects/sessions/var
# Directive: environment
#
# Description:
# A section which can be used to define arbitrary key-value pairs
# for use as environment variables during Zope's run cycle. It
# is not recommended to set system-related environment variables such as
# PYTHONPATH within this section.
#
# Default: unset
#
# Example:
#
# <environment>
# MY_PRODUCT_ENVVAR foobar
# </environment>
# Directive: effective-user
#
# Description:
# If you intend to run Zope as the "root" user, you must supply this
# directive with an effective username or userid number to which Zope
# will 'suid' after the server ports are bound. This directive only
# has effect under UNIX and if Zope is started as the root user.
#
# Default: unset
#
# Example:
#
# effective-user chrism
# Directive: locale
#
# Description:
# Enable locale (internationalization) support by supplying a locale
# name to be used. See your operating system documentation for locale
# information specific to your system. If your Python module does not
# support the locale module, or if the requested locale is not
# supported by your system, an error will be raised and Zope will not
# start.
#
# Default: unset
#
# Example:
#
# locale fr_FR
# Directive: datetime-format
#
# Description:
# Set this variable either to "us" or "international" to force the
# DateTime module to parse date strings either with
# month-before-days-before-year ("us") or
# days-before-month-before-year ("international"). The default
# behaviour of DateTime (when this setting is left unset) is to
# parse dates as US dates.
#
# Default: us
#
# Example:
#
# datetime-format international
# Directive: zserver-threads
#
# Description:
# Specify the number of threads that Zope's ZServer web server will use
# to service requests. The default is 2.
#
# Default: 2
#
# Example:
#
# zserver-threads 3
# Directive: python-check-interval
#
# Description:
# Specify an integer representing the Python interpreter "check
# interval" This interval determines how often the interpreter checks
# for periodic things such as thread switches and signal handlers. The
# Zope default is 1000, but you may want to experiment with other values
# in order to attempt to increase performance in your particular
# environment.
#
# Default: 1000
#
# Example:
#
# python-check-interval 1500
# Directive: zserver-read-only-mode
#
# Description:
# If this directive is set to 'on', it will cause Zope to inhibit the
# creation of log files and pid files. Access and event log files will
# be presented on standard output. Setting this directive 'on' causes
# pcgi, fastcgi, and daemon-related directives to have no effect.
#
# Default: off
#
# Example:
#
# zserver-read-only-mode on
# Directive: pid-filename
#
# Description:
# The path to the file in which the Zope process id(s) will be written.
# This defaults to client-home/Z2.pid.
#
# Default: CLIENT_HOME/Z2.pid
#
# Example:
#
# pid-filename /home/chrism/projects/sessions/var/Z2.pid
# Directive: lock-filename
#
# Description:
# The path to a "lock file" which will be locked by Zope while it's
# running. This file is used by zopectl.py to determine if Zope is
# currently running. This defaults to CLIENT_HOME/Z2.lock.
#
# Default: CLIENT_HOME/Z2.lock
#
# Example:
#
# lock-filename /home/chrism/projects/sessions/var/Z2.lock
# Directive: ip-address
#
# Description:
# The default IP address on which Zope's various server protocol
# implementations will listen for requests. If this is unset, Zope
# will listen on all IP addresses supported by the machine. This
# directive can be overridden on a per-server basis in the servers
# section.
#
# Default: unset
#
# Example:
#
# ip-address 127.0.0.1
# Directive: http-realm
#
# Description:
# The HTTP "Realm" header value sent by this Zope instance. This value
# often shows up in basic authentication dialogs.
#
# Default: Zope
#
# Example:
#
# http-realm Slipknot
# Directive: enable-ms-public-header
#
# Description:
# Set this directive to 'on' to enable sending the "Public" header
# in response to an WebDAV OPTIONS request.
#
# Though recent WebDAV drafts mention this header, the original
# WebDAV RFC did not mention it as part of the standard. Very few
# web servers out there include this header in their replies, most
# notably IIS and Netscape Enterprise 3.6.
#
# Since many best practices documents out in the web mention
# turning off this header with the subject of "Mask Your Web Server
# For Enhanced Security", this setting is off by
# default. Presumably malicious people might take the presence of
# this header as indication of an IIS Web Server and try to attack
# your site, so be careful when turning it on.
#
# Recent versions of Microsoft Web Folders, updated after January
# 2005, *do* require this header to be present in reply to the
# OPTIONS WebDAV request.
# (http://www.redmountainsw.com/wordpress/archives/webfolders-zope)
#
# To get a recent Microsoft Web Folders implementation, refer to
# Microsoft KB Article 907306.
# (Software Update for Web Folders: May 18, 2007).
#
# Default: off
#
# Example:
#
# enable-ms-public-header on
# Directive: automatically-quote-dtml-request-data
#
# Description:
# Set this directive to 'off' in order to disable the autoquoting of
# implicitly retrieved REQUEST data by DTML code which contains a '<'
# when used in <dtml-var> construction. When this directive is 'on',
# all data implicitly retrieved from the REQUEST in DTML (as opposed to
# addressing REQUEST.somevarname directly) that contains a '<' will be
# HTML-quoted when interpolated via a <dtml-var> or &dtml- construct. This
# mitigates the possibility that DTML programmers will leave their
# sites open to a "client-side trojan" attack.
#
# Default: on
#
# Example:
#
# automatically-quote-dtml-request-data on
# Directive: trusted-proxy
#
# Description:
# Define one or more 'trusted-proxies' directives, each of which is a
# hostname or an IP address. The set of definitions comprises a list
# of front-end proxies that are trusted to supply an accurate
# X-Forwarded-For header to Zope. If a connection comes from
# a trusted proxy, Zope will trust any X-Forwarded header to contain
# the user's real IP address for the purposes of address-based
# authentication restriction.
#
# Default: unset
#
# Example:
#
# trusted-proxy www.example.com
# trusted-proxy 192.168.1.1
# Directive: publisher-profile-file
#
# Description:
# Names a file on the filesystem which causes Zope's Python
# profiling capabilities to be enabled. For more information, see
# the Debug Information - > Profiling tab of Zope's Control_Panel
# via the Zope Management Interface. IMPORTANT: setting this
# filename will cause Zope code to be executed much more slowly
# than normal. This should not be enabled in production.
#
# Default: unset
#
# Example:
#
# publisher-profile-file $INSTANCE/var/profile.dat
# Directive: security-policy-implementation
#
# Description:
# The default Zope security machinery is implemented in C. Change
# this to "python" to use the Python version of the Zope security
# machinery. This setting may impact performance but is useful
# for debugging purposes. See also the "verbose-security" option
# below.
#
# Default: C
#
# Example:
#
# security-policy-implementation python
# Directive: skip-authentication-checking
#
# Description:
# Set this directive to 'on' to cause Zope to skip checks related
# to authentication, for servers which serve only anonymous content.
# Only works if security-policy-implementation is 'C'.
#
# Default: off
#
# Example:
#
# skip-authentication-checking on
# Directive: skip-ownership-checking
#
# Description:
# Set this directive to 'on' to cause Zope to ignore ownership checking
# when attempting to execute "through the web" code. By default, this
# directive is on in order to prevent 'trojan horse' security problems
# whereby a user with less privilege can cause a user with more
# privilege to execute dangerous code.
#
# Default: off
#
# Example:
#
# skip-ownership-checking on
# Directive: verbose-security
#
# Description:
# By default, Zope reports authorization failures in a terse manner in
# order to avoid revealing unnecessary information. This option
# modifies the Zope security policy to report more information about
# the reason for authorization failures. It's designed for debugging.
# If you enable this option, you must also set the
# 'security-policy-implementation' to 'python'.
#
# Default: off
#
# Example:
#
# security-policy-implementation python
# verbose-security on
# Directives: logger
#
# Description:
# This area should define one or more "logger" sections of the
# names "access", "event", and "trace". The "access" logger logs
# Zope server access. The "event" logger logs Zope event
# information. The "trace" logger logs detailed server request
# information (for debugging purposes only). Each logger section
# may contain a "level" name/value pair which indicates the level
# of logging detail to capture for this logger. The default level
# is INFO. Level may be any of "CRITICAL", 'ERROR", WARN", "INFO",
# "DEBUG", and "ALL". Each logger section may additionally contain
# one or more "handler" sections which indicates a types of log
# "handlers" (file, syslog, NT event log, etc) to be used for the
# logger being defined. There are 5 types of handlers: logfile,
# syslog, win32-eventlog, http-handler, email-notifier. Each
# handler type has its own set of allowable subkeys which define
# aspects of the handler. All handler sections also allow for the
# specification of a "format" (the log message format string), a
# "dateformat" (the log message format for date strings), and a
# "level", which has the same semantics of the overall logger
# level but overrides the logger's level for the handler it's
# defined upon. XXXX much more detail necessary here
#
# Default:
#
# The access log will log to the file <instancehome>/log/Z2.log at
# level INFO, the event log will log to the file
# <instancehome>/log/event.log at level INFO, and the trace log
# will not be written anywhere.
<eventlog>
level info
<logfile>
path $INSTANCE/log/event.log
level info
</logfile>
</eventlog>
<logger access>
level WARN
<logfile>
path $INSTANCE/log/Z2.log
format %(message)s
</logfile>
</logger>
# <logger trace>
# level WARN
# <logfile>
# path $INSTANCE/log/trace.log
# format %(message)s
# </logfile>
# </logger>
# Directive: conflict-error-log-level
#
# Description:
# Specifies at which level conflict errors are logged. Conflict
# errors, when occuring in small numbers, are a normal part of the
# Zope optimistic transaction conflict resolution algorithms. They
# are retried automatically a few times, and are therefore usually
# not visible by the user. You can specify 'notset' if you don't
# want them logged, or use any other logger level (see above).
#
# Default: info
#
# Example:
#
# conflict-error-log-level blather
# Directive: max-conflict-retries
#
# Description:
# Specifies how many times a transaction will be re-tried when
# it generates ConflictErrors. This can be a problem when using
# a ZEO server and you have large numbers of simultaneous writes.
#
# Default: 3
#
# Example:
#
# max-conflict-retries 10
# Directive: warnfilter
#
# Description:
# A section that allows you to define a warning filter.
# The following keys are valid within a warnfilter section:
#
# action: one of the following strings:
#
# "error" turn matching warnings into exceptions
# "ignore" never print matching warnings
# "always" always print matching warnings
# "default" print the first occurrence of matching warnings
# for each location where the warning is issued
# "module" print the first occurrence of matching warnings
# for each module where the warning is issued
# "once" print only the first occurrence of matching
# warnings, regardless of location
#
# message: a string containing a regular expression that the
# warning message must match (the match is compiled to
# always be case-insensitive)
#
# category: a Python dotted-path classname (must be a subclass of
# Warning) of which the warning category must be a subclass in
# order to match
#
# module: a string containing a regular expression that the
# module name must match (the match is compiled to be
# case-sensitive)
#
# lineno: an integer that the line number where the warning
# occurred must match, or 0 to match all line numbers
#
# All keys within a warnfilter section are optional. More than
# one warnfilter section may be specified.
#
# Default: unset
#
# Example:
#
# <warnfilter>
# action ignore
# category exceptions.DeprecationWarning
# </warnfilter>
# Directive: max-listen-sockets
#
# Description:
# The maximum number of sockets that ZServer will attempt to open
# in order to service incoming connections.
#
# Default: 1000
#
# Example:
#
# max-listen-sockets 500
# Directives: port-base
#
# Description:
# Offset applied to the port numbers used for ZServer
# configurations. For example, if the http-server port is 8080 and
# the port-base is 1000, the HTTP server will listen on port 9080.
# This makes it easy to change the complete set of ports used by a
# Zope server process
#
# Default:
#
# 0
#
# Example:
#
# port-base 1000
# Directive: large-file-threshold
#
# Description:
# Requests bigger than this size get saved into a temporary file
# instead of being read completely into memory.
#
# Default: 512K
#
# Example:
#
# large-file-threshold 1Mb
# Directives: servers
#
# Description:
# A set of sections which allow the specification of Zope's various
# ZServer servers. 8 different server types may be defined:
# http-server, ftp-server, webdav-source-server, persistent-cgi,
# fast-cgi, monitor-server, icp-server, and clock-server. If no servers
# are defined, the default servers are used.
#
# Ports may be specified using the 'address' directive either in simple
# form (80) or in complex form including hostname 127.0.0.1:80. If the
# hostname is "left off", the default-ip-address is used as the hostname.
#
# Port numbers are offset by the setting of port-base.
#
# To run the monitor-server an emergency user must be defined
# (through an 'access' file).
#
# Default:
#
# An HTTP server starts on port 8080.
%include <<INSTANCE_HOME>>/etc/base.conf
<http-server>
# valid keys are "address" and "force-connection-close"
address 8080
# force-connection-close on
#
# You can also use the WSGI interface between ZServer and ZPublisher:
# use-wsgi on
#
# To defer the opening of the HTTP socket until the end of the
# startup phase:
# fast-listen off
</http-server>
# Examples:
#
# <webdav-source-server>
# # valid keys are "address" and "force-connection-close"
# address 1980
# force-connection-close off
# </webdav-source-server>
#
# <icp-server>
# # valid key is "address"
# address 888
# </icp-server>
#
# <clock-server>
# # starts a clock which calls /foo/bar every 30 seconds
# method /foo/bar
# period 30
# user admin
# password 123
# </clock-server>
# Database (zodb_db) section
#
# Description:
# A database section allows the definition of custom database and
# storage types. More than one zodb_db section can be defined.
#
# Default: unset.
# IMPORTANT: At least one database with a mount-point of "/"
# must be specified for Zope to start properly.
<zodb_db main>
# Main FileStorage database
<filestorage>
# See ZODB's component.xml for directives (sectiontype "filestorage").
path $INSTANCE/var/Data.fs
blob-dir $INSTANCE/var/blobstorage
</filestorage>
mount-point /
</zodb_db>
<zodb_db temporary>
# Temporary storage database (for sessions)
<temporarystorage>
name temporary storage for sessioning
</temporarystorage>
mount-point /temp_folder
container-class Products.TemporaryFolder.TemporaryContainer
</zodb_db>
# Other storage examples
#
# ZEO client storage:
#
# <zodb_db main>
# # The full mount-point syntax is:
# #
# # mount-point <localpath>[:<remotepath>]
# #
# # localpath - the path where the storage is mounted in this instance
# # remotepath - is the path to the object in the storage where it is mounted
# # from. This defaults to whatever is supplied for localpath.
# mount-point /
# # ZODB cache, in number of objects
# cache-size 5000
# <zeoclient>
# # See .../ZODB/component.xml for directives (sectiontype
# # "zeoclient").
# server localhost:8100
# storage 1
# name zeostorage
# var $INSTANCE/var
# # ZEO client cache, in bytes
# cache-size 20MB
# # Uncomment to have a persistent disk cache
# #client zeo1
# </zeoclient>
# </zodb_db>
# Product configuration (product-config) section(s)
#
# Description:
# Add-on products may need to allow the user to specify policy /
# configuration. Such policies may be expressed as a set of
# name-value pairs, grouped into a named section (there may
# be many such sections, typically one per product).
# These sections will be captured in an attribute, 'product_config'
# of the top-level config object, under the key corresponding to
# the section name. E.g., the sample section below would be
# parsed into a dict, {'bar': 'baz'}, available as
# config.product_config['foo']
#
# Products may also register their own section types, extending
#
#
# Example:
#
# 1. Simple "bag of strings" section:
#
# <product-config foo>
# bar baz
# </product-config>
#
# 2. Custom section type
#
# Products/Foo/component.xml:
#
# <component>
# <description>
# Some product-specific hackery.
# </description>
# <sectiontype name="myproduct" implements="zope.product.base">
# <description>
# Product-specific configuration.
# </description>
# <key name="foo" />
# </sectiontype>
# </component>
#
# In zope.conf:
#
# %import Products.Foo
#
# <myproduct bar>
# foo qux
# </myproduct>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment