diff --git httpd/Makefile.in httpd/Makefile.in index e822b045f..5fad74bb2 100644 --- httpd/Makefile.in +++ httpd/Makefile.in @@ -21,8 +21,11 @@ INSTALL_TARGETS = install-conf install-htdocs install-error install-icons \ DISTCLEAN_TARGETS = include/ap_config_auto.h include/ap_config_layout.h \ include/apache_probes.h \ modules.c config.cache config.log config.status build/config_vars.mk \ - build/rules.mk docs/conf/httpd.conf docs/conf/extra/*.conf shlibtool \ - build/pkg/pkginfo build/config_vars.sh + build/rules.mk docs/conf/httpd.conf docs/conf/extra-available/*.conf \ + docs/conf/ports-available/*.conf docs/conf/sites-available/*.conf \ + docs/conf/mods-available/*.conf docs/conf/mods-available/*.load \ + docs/conf/include/*.conf \ + shlibtool build/pkg/pkginfo build/config_vars.sh EXTRACLEAN_TARGETS = configure include/ap_config_auto.h.in generated_lists \ httpd.spec @@ -33,93 +36,86 @@ install-conf: @echo Installing configuration files @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(sysconfdir)/extra @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/extra - @cd $(top_srcdir)/docs/conf; \ + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir) + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/include + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/extra-available + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/extra-enabled + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/extra-start.d + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/ports-available + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/ports-enabled + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/ports-start.d + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/sites-available + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/sites-enabled + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/sites-start.d + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/mods-available + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/mods-enabled + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/mods-start.d + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/include + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/extra-available + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/extra-enabled + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/extra-start.d + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/ports-available + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/ports-enabled + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/ports-start.d + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/sites-available + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/sites-enabled + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/sites-start.d + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/mods-available + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/mods-enabled + @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/original/mods-start.d + ( cd $(top_srcdir)/docs/conf; \ for i in mime.types magic; do \ if test ! -f $(DESTDIR)$(sysconfdir)/$$i; then \ $(INSTALL_DATA) $$i $(DESTDIR)$(sysconfdir); \ fi; \ + done;) + cd docs/conf; \ + for j in $(DSO_MODULES) "^EOL^"; do \ + if test $$j != "^EOL^"; then \ + f_name_load=$$(printf "%s.load" $${j}); \ + if test -f mods-available/$$f_name_load; then \ + cat mods-available/$$f_name_load; \ + else \ + echo "LoadModule $${j}_module $(rel_libexecdir)/mod_$${j}.so"; \ + fi | \ + sed -e 's#@@ServerRoot@@#$(prefix)#g' \ + -e 's#@@Port@@#$(PORT)#g' \ + -e 's#@@SSLPort@@#$(SSLPORT)#g' \ + -e '/@@LoadModule@@/d' \ + > $(DESTDIR)$(sysconfdir)/original/mods-available/$$f_name_load; \ + chmod 0644 $(DESTDIR)$(sysconfdir)/original/mods-available/$$f_name_load; \ + f_name_conf=$$(printf "%s.conf" $${j}); \ + if test -f mods-available/$$f_name_conf; then \ + cat mods-available/$$f_name_conf | \ + sed -e 's#@@ServerRoot@@#$(prefix)#g' \ + -e 's#@@Port@@#$(PORT)#g' \ + -e 's#@@SSLPort@@#$(SSLPORT)#g' \ + -e '/@@LoadModule@@/d' \ + > $(DESTDIR)$(sysconfdir)/original/mods-available/$$f_name_conf; \ + chmod 0644 $(DESTDIR)$(sysconfdir)/original/mods-available/$$f_name_conf; \ + fi; \ + fi; \ + done; \ + for i in include/*.conf extra-available/*.conf ports-available/*.conf sites-available/*.conf; do \ + cat $$i | \ + sed -e 's#@@ServerRoot@@#$(prefix)#g' \ + -e 's#@@Port@@#$(PORT)#g' \ + -e 's#@@SSLPort@@#$(SSLPORT)#g' \ + -e '/@@LoadModule@@/d' \ + > $(DESTDIR)$(sysconfdir)/original/$$i; \ + chmod 0644 $(DESTDIR)$(sysconfdir)/original/$$i; \ + done; \ + cat httpd.conf | \ + sed -e 's#@@ServerRoot@@#$(prefix)#g' \ + -e 's#@@Port@@#$(PORT)#g' \ + -e 's#@@SSLPort@@#$(SSLPORT)#g' \ + -e '/@@LoadModule@@/d' \ + > $(DESTDIR)$(sysconfdir)/original/$(PROGRAM_NAME).conf; \ + chmod 0644 $(DESTDIR)$(sysconfdir)/original/$(PROGRAM_NAME).conf; \ + for i in $$(cd $(DESTDIR)$(sysconfdir)/original/ && \ + ls $(PROGRAM_NAME).conf include/*.conf mods-available/*.conf mods-available/*.load extra-available/*.conf ports-available/*.conf sites-available/*.conf); do \ + $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/original/$$i $(DESTDIR)$(sysconfdir)/$$i; \ done; \ - for j in $(top_srcdir)/docs/conf $(top_builddir)/docs/conf ; do \ - cd $$j ; \ - for i in httpd.conf extra/*.conf; do \ - if [ -f $$i ] ; then \ - ( \ - n_lm=`awk 'BEGIN {n=0} /@@LoadModule@@/ {n+=1} END {print n}' < $$i`; \ - if test $$n_lm -eq 0 -o "x$(MPM_MODULES)$(DSO_MODULES)" = "x"; then \ - sed -e 's#@@ServerRoot@@#$(prefix)#g' \ - -e 's#@@Port@@#$(PORT)#g' \ - -e 's#@@SSLPort@@#$(SSLPORT)#g' \ - -e '/@@LoadModule@@/d' \ - < $$i; \ - else \ - sed -n -e '/@@LoadModule@@/q' \ - -e 's#@@ServerRoot@@#$(prefix)#g' \ - -e 's#@@Port@@#$(PORT)#g' \ - -e 's#@@SSLPort@@#$(SSLPORT)#g' \ - -e 'p' \ - < $$i; \ - if echo " $(DSO_MODULES) "|$(EGREP) " cgi " > /dev/null ; then \ - have_cgi="1"; \ - else \ - have_cgi="0"; \ - fi; \ - if echo " $(DSO_MODULES) "|$(EGREP) " cgid " > /dev/null ; then \ - have_cgid="1"; \ - else \ - have_cgid="0"; \ - fi; \ - for j in $(MPM_MODULES) "^EOL^"; do \ - if test $$j != "^EOL^"; then \ - if echo ",$(ENABLED_MPM_MODULE),"|$(EGREP) ",$$j," > /dev/null ; then \ - loading_disabled=""; \ - else \ - loading_disabled="#"; \ - fi; \ - echo "$${loading_disabled}LoadModule $${j}_module $(rel_libexecdir)/mod_$${j}.so"; \ - fi; \ - done; \ - for j in $(DSO_MODULES) "^EOL^"; do \ - if test $$j != "^EOL^"; then \ - if echo ",$(ENABLED_DSO_MODULES),"|$(EGREP) ",$$j," > /dev/null ; then \ - loading_disabled=""; \ - else \ - loading_disabled="#"; \ - if test "$(LOAD_ALL_MODULES)" = "yes"; then \ - loading_disabled=""; \ - fi; \ - fi; \ - if test $$j = "cgid" -a "$$have_cgi" = "1"; then \ - echo ""; \ - echo " $${loading_disabled}LoadModule $${j}_module $(rel_libexecdir)/mod_$${j}.so"; \ - echo ""; \ - elif test $$j = "cgi" -a "$$have_cgid" = "1"; then \ - echo ""; \ - echo " $${loading_disabled}LoadModule $${j}_module $(rel_libexecdir)/mod_$${j}.so"; \ - echo ""; \ - else \ - echo "$${loading_disabled}LoadModule $${j}_module $(rel_libexecdir)/mod_$${j}.so"; \ - fi; \ - fi; \ - done; \ - sed -e '1,/@@LoadModule@@/d' \ - -e '/@@LoadModule@@/d' \ - -e 's#@@ServerRoot@@#$(prefix)#g' \ - -e 's#@@Port@@#$(PORT)#g' \ - -e 's#@@SSLPort@@#$(SSLPORT)#g' \ - < $$i; \ - fi \ - ) > $(DESTDIR)$(sysconfdir)/original/$$i; \ - chmod 0644 $(DESTDIR)$(sysconfdir)/original/$$i; \ - file=$$i; \ - if [ "$$i" = "httpd.conf" ]; then \ - file=`echo $$i|sed s/.*.conf/$(PROGRAM_NAME).conf/`; \ - fi; \ - if test ! -f $(DESTDIR)$(sysconfdir)/$$file; then \ - $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/original/$$i $(DESTDIR)$(sysconfdir)/$$file; \ - fi; \ - fi; \ - done ; \ - done ; \ if test -f "$(builddir)/envvars-std"; then \ cp -p envvars-std $(DESTDIR)$(sbindir); \ if test ! -f $(DESTDIR)$(sbindir)/envvars; then \ diff --git httpd/acinclude.m4 httpd/acinclude.m4 index 51cf130c9..43653f9b1 100644 --- httpd/acinclude.m4 +++ httpd/acinclude.m4 @@ -121,6 +121,12 @@ AC_DEFUN([APACHE_GEN_MAKEFILES],[ $SHELL $srcdir/build/fastgen.sh $srcdir $ac_cv_mkdir_p $BSD_MAKEFILE $APACHE_FAST_OUTPUT_FILES ]) +dnl APACHE_OUTPUT_CONFIGFILES +dnl ## adds config files to the list of files generated by AC_OUTPUT +AC_DEFUN([APACHE_OUTPUT_CONFIGFILES],[ + APACHE_OUTPUT_FILES="$APACHE_OUTPUT_FILES `find $srcdir/docs/conf -name '*.in'|sed -e "s@$srcdir/\([[^[:space:]]]\+\)\.in@\1@"`" +]) + dnl dnl APACHE_TYPE_RLIM_T dnl diff --git httpd/configure.in httpd/configure.in index 62ed7b0e0..ec5080bda 100644 --- httpd/configure.in +++ httpd/configure.in @@ -937,7 +937,8 @@ AC_SUBST(ap_make_delimiter) dnl Ensure that docs/conf is created. test -d docs/conf||$mkdir_p docs/conf -AC_CONFIG_FILES(docs/conf/httpd.conf docs/conf/extra/httpd-autoindex.conf docs/conf/extra/httpd-dav.conf docs/conf/extra/httpd-default.conf docs/conf/extra/httpd-info.conf docs/conf/extra/httpd-languages.conf docs/conf/extra/httpd-manual.conf docs/conf/extra/httpd-mpm.conf docs/conf/extra/httpd-multilang-errordoc.conf docs/conf/extra/httpd-ssl.conf docs/conf/extra/httpd-userdir.conf docs/conf/extra/httpd-vhosts.conf docs/conf/extra/proxy-html.conf include/ap_config_layout.h support/apxs support/apachectl support/dbmmanage support/envvars-std support/log_server_status support/logresolve.pl support/phf_abuse_log.cgi support/split-logfile build/rules.mk build/pkg/pkginfo build/config_vars.sh) +APACHE_OUTPUT_CONFIGFILES +AC_CONFIG_FILES(support/a2chkconfig support/a2chkconfig_list support/a2disextra support/a2dismod support/a2disport support/a2dissite support/a2enextra support/a2enmod support/a2enport support/a2ensite support/check_forensic support/modhandler.py include/ap_config_layout.h support/apxs support/apachectl support/dbmmanage support/envvars-std support/log_server_status support/logresolve.pl support/phf_abuse_log.cgi support/split-logfile build/rules.mk build/pkg/pkginfo build/config_vars.sh $ac_config_files $APACHE_OUTPUT_FILES) AC_CONFIG_COMMANDS([default], [true], [APACHE_GEN_MAKEFILES]) AC_OUTPUT AC_MSG_NOTICE([summary of build options: diff --git httpd/docs/cgi-examples/printenv httpd/docs/cgi-examples/printenv index 5b5035e26..bceb4e558 100644 --- httpd/docs/cgi-examples/printenv +++ httpd/docs/cgi-examples/printenv @@ -1,4 +1,4 @@ -# +#!/usr/bin/perl # To permit this cgi, replace # on the first line above with the # appropriate #!/path/to/perl shebang, and on Unix / Linux also diff --git httpd/docs/conf/extra-available/httpd-autoindex.conf.in httpd/docs/conf/extra-available/httpd-autoindex.conf.in new file mode 100644 index 000000000..7dec5f109 --- /dev/null +++ httpd/docs/conf/extra-available/httpd-autoindex.conf.in @@ -0,0 +1,90 @@ +# +# Summary: Directives controlling the display of server-generated directory listings. +# Provides: Extra +# + +# +# Directives controlling the display of server-generated directory listings. +# +# Required modules: mod_autoindex, mod_alias +# +# To see the listing of a directory, the Options directive for the +# directory must include "Indexes", and the directory must not contain +# a file matching those listed in the DirectoryIndex directive. +# + + + # + # IndexOptions: Controls the appearance of server-generated directory + # listings. + # + IndexOptions FancyIndexing HTMLTable VersionSort + + + # + # AddIcon* directives tell the server which icon to show for different + # files or filename extensions. These are only displayed for + # FancyIndexed directories. + # + AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip + + AddIconByType (TXT,/icons/text.gif) text/* + AddIconByType (IMG,/icons/image2.gif) image/* + AddIconByType (SND,/icons/sound2.gif) audio/* + AddIconByType (VID,/icons/movie.gif) video/* + + AddIcon /icons/binary.gif .bin .exe + AddIcon /icons/binhex.gif .hqx + AddIcon /icons/tar.gif .tar + AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv + AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip + AddIcon /icons/a.gif .ps .ai .eps + AddIcon /icons/layout.gif .html .shtml .htm .pdf + AddIcon /icons/text.gif .txt + AddIcon /icons/c.gif .c + AddIcon /icons/p.gif .pl .py + AddIcon /icons/f.gif .for + AddIcon /icons/dvi.gif .dvi + AddIcon /icons/uuencoded.gif .uu + AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl + AddIcon /icons/tex.gif .tex + AddIcon /icons/bomb.gif core + + AddIcon /icons/back.gif .. + AddIcon /icons/hand.right.gif README + AddIcon /icons/folder.gif ^^DIRECTORY^^ + AddIcon /icons/blank.gif ^^BLANKICON^^ + + # + # DefaultIcon is which icon to show for files which do not have an icon + # explicitly set. + # + DefaultIcon /icons/unknown.gif + + + # + # AddDescription allows you to place a short description after a file in + # server-generated indexes. These are only displayed for FancyIndexed + # directories. + # Format: AddDescription "description" filename + # + #AddDescription "GZIP compressed document" .gz + #AddDescription "tar archive" .tar + #AddDescription "GZIP compressed tar archive" .tgz + + # + # ReadmeName is the name of the README file the server will look for by + # default, and append to directory listings. + # + # HeaderName is the name of a file which should be prepended to + # directory indexes. + ReadmeName README.html + HeaderName HEADER.html + + # + # IndexIgnore is a set of filenames which directory indexing should ignore + # and not include in the listing. Shell-style wildcarding is permitted. + # + IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t + + diff --git httpd/docs/conf/extra-available/httpd-dav.conf.in httpd/docs/conf/extra-available/httpd-dav.conf.in new file mode 100644 index 000000000..8f81ea22b --- /dev/null +++ httpd/docs/conf/extra-available/httpd-dav.conf.in @@ -0,0 +1,47 @@ +# +# Summary: Distributed authoring and versioning (WebDAV) +# Provides: Extra +# + +# +# Distributed authoring and versioning (WebDAV) +# +# Required modules: mod_dav, mod_dav_fs, mod_setenvif, mod_alias +# mod_auth_digest, mod_authn_file +# + +# The following example gives DAV write access to a directory called +# "uploads" under the ServerRoot directory. +# +# The User/Group specified in httpd.conf needs to have write permissions +# on the directory where the DavLockDB is placed and on any directory where +# "Dav On" is specified. + + + Alias /uploads "@@ServerRoot@@/uploads" + + + + + Dav On + + Require all granted + + AuthType Digest + AuthName DAV-upload + + + # You can use the htdigest program to create the password database: + # htdigest -c "@@ServerRoot@@/user.passwd" DAV-upload admin + AuthUserFile "@@ServerRoot@@/user.passwd" + AuthDigestProvider file + + + # Allow universal read-access, but writes are restricted + # to the admin user. + + require user admin + + + + diff --git httpd/docs/conf/extra-available/httpd-default.conf.in httpd/docs/conf/extra-available/httpd-default.conf.in new file mode 100644 index 000000000..aab527d1a --- /dev/null +++ httpd/docs/conf/extra-available/httpd-default.conf.in @@ -0,0 +1,80 @@ +# +# Summary: This configuration file reflects default settings for Apache HTTP Server. +# Provides: Extra +# + +# +# This configuration file reflects default settings for Apache HTTP Server. +# +# You may change these, but chances are that you may not need to. +# + +# +# Timeout: The number of seconds before receives and sends time out. +# +Timeout 300 + +# +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. +# +KeepAlive On + +# +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. +# +MaxKeepAliveRequests 100 + +# +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. +# +KeepAliveTimeout 5 + +# +# UseCanonicalName: Determines how Apache constructs self-referencing +# URLs and the SERVER_NAME and SERVER_PORT variables. +# When set "Off", Apache will use the Hostname and Port supplied +# by the client. When set "On", Apache will use the value of the +# ServerName directive. +# +UseCanonicalName Off + +# +# AccessFileName: The name of the file to look for in each directory +# for additional configuration directives. See also the AllowOverride +# directive. +# +AccessFileName .htaccess + +# +# ServerTokens +# This directive configures what you return as the Server HTTP response +# Header. The default is 'Full' which sends information about the OS-Type +# and compiled in modules. +# Set to one of: Full | OS | Minor | Minimal | Major | Prod +# where Full conveys the most information, and Prod the least. +# +ServerTokens Full + +# +# Optionally add a line containing the server version and virtual host +# name to server-generated pages (internal error documents, FTP directory +# listings, mod_status and mod_info output etc., but not CGI generated +# documents or custom error documents). +# Set to "EMail" to also include a mailto: link to the ServerAdmin. +# Set to one of: On | Off | EMail +# +ServerSignature On + +# +# HostnameLookups: Log the names of clients or just their IP addresses +# 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, since enabling it means that +# each client request will result in AT LEAST one lookup request to the +# nameserver. +# +HostnameLookups Off diff --git httpd/docs/conf/extra-available/httpd-icons.conf.in httpd/docs/conf/extra-available/httpd-icons.conf.in new file mode 100644 index 000000000..36fcce852 --- /dev/null +++ httpd/docs/conf/extra-available/httpd-icons.conf.in @@ -0,0 +1,21 @@ +# +# Summary: Icons for server-generated directory listings. +# Provides: Extra +# + +# +# Required modules: mod_alias +# + + + # We include the /icons/ alias for FancyIndexed directory listings. If + # you do not use FancyIndexing, you may comment this out. + # + Alias /icons/ "@exp_iconsdir@/" + + + + Options Indexes MultiViews + AllowOverride None + Require all granted + diff --git httpd/docs/conf/extra-available/httpd-info.conf.in httpd/docs/conf/extra-available/httpd-info.conf.in new file mode 100644 index 000000000..43c097d65 --- /dev/null +++ httpd/docs/conf/extra-available/httpd-info.conf.in @@ -0,0 +1,42 @@ +# +# Summary: Get information about the requests being processed by the server and the configuration of the server. +# Provides: Extra +# + +# +# Get information about the requests being processed by the server +# and the configuration of the server. +# +# Required modules: mod_status (for the server-status handler), +# mod_info (for the server-info handler) + + + # + # Allow server status reports generated by mod_status, + # with the URL of http://servername/server-status + # Change the ".example.com" to match your domain to enable. + + + SetHandler server-status + Require host .example.com + + + # + # ExtendedStatus controls whether Apache will generate "full" status + # information (ExtendedStatus On) or just basic information (ExtendedStatus + # Off) when the "server-status" handler is called. The default is Off. + # + #ExtendedStatus On + + + + # + # Allow remote server configuration reports, with the URL of + # http://servername/server-info (requires that mod_info.c be loaded). + # Change the ".example.com" to match your domain to enable. + # + + SetHandler server-info + Require host .example.com + + diff --git httpd/docs/conf/extra-available/httpd-languages.conf.in httpd/docs/conf/extra-available/httpd-languages.conf.in new file mode 100644 index 000000000..28b4a4142 --- /dev/null +++ httpd/docs/conf/extra-available/httpd-languages.conf.in @@ -0,0 +1,152 @@ +# +# Summary: Settings for hosting different languages. +# Provides: Extra +# + +# +# Settings for hosting different languages. +# +# Required modules: mod_mime, mod_negotiation + + + # DefaultLanguage and AddLanguage allows you to specify the language of + # a document. You can then use content negotiation to give a browser a + # file in a language the user can understand. + # + # Specify a default language. This means that all data + # going out without a specific language tag (see below) will + # be marked with this one. You probably do NOT want to set + # this unless you are sure it is correct for all cases. + # + # * It is generally better to not mark a page as + # * being a certain language than marking it with the wrong + # * language! + # + # DefaultLanguage nl + # + # Note 1: The suffix does not have to be the same as the language + # keyword --- those with documents in Polish (whose net-standard + # language code is pl) may wish to use "AddLanguage pl .po" to + # avoid the ambiguity with the common suffix for perl scripts. + # + # Note 2: The example entries below illustrate that in some cases + # the two character 'Language' abbreviation is not identical to + # the two character 'Country' code for its country, + # E.g. 'Danmark/dk' versus 'Danish/da'. + # + # Note 3: In the case of 'ltz' we violate the RFC by using a three char + # specifier. There is 'work in progress' to fix this and get + # the reference data for rfc1766 cleaned up. + # + # Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl) + # English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de) + # Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja) + # Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn) + # Norwegian (no) - Polish (pl) - Portugese (pt) + # Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv) + # Turkish (tr) - Simplified Chinese (zh-CN) - Spanish (es) + # Traditional Chinese (zh-TW) + # + AddLanguage ca .ca + AddLanguage cs .cz .cs + AddLanguage da .dk + AddLanguage de .de + AddLanguage el .el + AddLanguage en .en + AddLanguage eo .eo + AddLanguage es .es + AddLanguage et .et + AddLanguage fr .fr + AddLanguage he .he + AddLanguage hr .hr + AddLanguage it .it + AddLanguage ja .ja + AddLanguage ko .ko + AddLanguage ltz .ltz + AddLanguage nl .nl + AddLanguage nn .nn + AddLanguage no .no + AddLanguage pl .po + AddLanguage pt .pt + AddLanguage pt-BR .pt-br + AddLanguage ru .ru + AddLanguage sv .sv + AddLanguage tr .tr + AddLanguage zh-CN .zh-cn + AddLanguage zh-TW .zh-tw + + + + # LanguagePriority allows you to give precedence to some languages + # in case of a tie during content negotiation. + # + # Just list the languages in decreasing order of preference. We have + # more or less alphabetized them here. You probably want to change this. + # + LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW + + # + # ForceLanguagePriority allows you to serve a result page rather than + # MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback) + # [in case no accepted languages matched the available variants] + # + ForceLanguagePriority Prefer Fallback + + + + # + # Commonly used filename extensions to character sets. You probably + # want to avoid clashes with the language extensions, unless you + # are good at carefully testing your setup after each change. + # See http://www.iana.org/assignments/character-sets for the + # official list of charset names and their respective RFCs. + # + AddCharset us-ascii .ascii .us-ascii + AddCharset ISO-8859-1 .iso8859-1 .latin1 + AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen + AddCharset ISO-8859-3 .iso8859-3 .latin3 + AddCharset ISO-8859-4 .iso8859-4 .latin4 + AddCharset ISO-8859-5 .iso8859-5 .cyr .iso-ru + AddCharset ISO-8859-6 .iso8859-6 .arb .arabic + AddCharset ISO-8859-7 .iso8859-7 .grk .greek + AddCharset ISO-8859-8 .iso8859-8 .heb .hebrew + AddCharset ISO-8859-9 .iso8859-9 .latin5 .trk + AddCharset ISO-8859-10 .iso8859-10 .latin6 + AddCharset ISO-8859-13 .iso8859-13 + AddCharset ISO-8859-14 .iso8859-14 .latin8 + AddCharset ISO-8859-15 .iso8859-15 .latin9 + AddCharset ISO-8859-16 .iso8859-16 .latin10 + AddCharset ISO-2022-JP .iso2022-jp .jis + AddCharset ISO-2022-KR .iso2022-kr .kis + AddCharset ISO-2022-CN .iso2022-cn .cis + AddCharset Big5.Big5 .big5 .b5 + AddCharset cn-Big5 .cn-big5 + # For russian, more than one charset is used (depends on client, mostly): + AddCharset WINDOWS-1251 .cp-1251 .win-1251 + AddCharset CP866 .cp866 + AddCharset KOI8 .koi8 + AddCharset KOI8-E .koi8-e + AddCharset KOI8-r .koi8-r .koi8-ru + AddCharset KOI8-U .koi8-u + AddCharset KOI8-ru .koi8-uk .ua + AddCharset ISO-10646-UCS-2 .ucs2 + AddCharset ISO-10646-UCS-4 .ucs4 + AddCharset UTF-7 .utf7 + AddCharset UTF-8 .utf8 + AddCharset UTF-16 .utf16 + AddCharset UTF-16BE .utf16be + AddCharset UTF-16LE .utf16le + AddCharset UTF-32 .utf32 + AddCharset UTF-32BE .utf32be + AddCharset UTF-32LE .utf32le + AddCharset euc-cn .euc-cn + AddCharset euc-gb .euc-gb + AddCharset euc-jp .euc-jp + AddCharset euc-kr .euc-kr + #Not sure how euc-tw got in - IANA doesn't list it??? + AddCharset EUC-TW .euc-tw + AddCharset gb2312 .gb2312 .gb + AddCharset iso-10646-ucs-2 .ucs-2 .iso-10646-ucs-2 + AddCharset iso-10646-ucs-4 .ucs-4 .iso-10646-ucs-4 + AddCharset shift_jis .shift_jis .sjis + diff --git httpd/docs/conf/extra-available/httpd-manual.conf.in httpd/docs/conf/extra-available/httpd-manual.conf.in new file mode 100644 index 000000000..4b9f18735 --- /dev/null +++ httpd/docs/conf/extra-available/httpd-manual.conf.in @@ -0,0 +1,43 @@ +# +# Summary: Provide access to the documentation on your server +# Provides: Extra +# + +# +# Provide access to the documentation on your server as +# http://yourserver.example.com/manual/ +# The documentation is always available at +# http://httpd.apache.org/docs/2.2/ +# +# Required modules: mod_alias, mod_setenvif, mod_negotiation +# + + + AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|pt-br|ru|tr))?(/.*)?$ "@exp_manualdir@$1" + + + + Options Indexes + AllowOverride None + Require all granted + + + SetHandler type-map + + # .tr is text/troff in mime.types! + + ForceType text/html + + + + SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|pt-br|ru|tr)/ prefer-language=$1 + + + RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|pt-br|ru|tr)){2,}(/.*)?$ /manual/$1$2 + + + + LanguagePriority en de es fr ja ko pt-br ru tr + ForceLanguagePriority Prefer Fallback + + diff --git httpd/docs/conf/extra-available/httpd-mime.conf.in httpd/docs/conf/extra-available/httpd-mime.conf.in new file mode 100644 index 000000000..04c565e50 --- /dev/null +++ httpd/docs/conf/extra-available/httpd-mime.conf.in @@ -0,0 +1,48 @@ +# +# Summary: Configure the list of mappings from filename extension to MIME-type. +# Provides: Extra +# + + + # + # AddType allows you to add to or override the MIME configuration + # file specified in TypesConfig for specific file types. + # + #AddType application/x-gzip .tgz + # + # AddEncoding allows you to have certain browsers uncompress + # information on the fly. Note: Not all browsers support this. + # + #AddEncoding x-compress .Z + #AddEncoding x-gzip .gz .tgz + # + # If the AddEncoding directives above are commented-out, then you + # probably should define those extensions to indicate media types: + # + AddType application/x-compress .Z + AddType application/x-gzip .gz .tgz + + # + # AddHandler allows you to map certain file extensions to "handlers": + # actions unrelated to filetype. These can be either built into the server + # or added with the Action directive (see below) + # + # To use CGI scripts outside of ScriptAliased directories: + # (You will also need to add "ExecCGI" to the "Options" directive.) + # + #AddHandler cgi-script .cgi + + # For type maps (negotiated resources): + #AddHandler type-map var + + # + # Filters allow you to process content before it is sent to the client. + # + # To parse .shtml files for server-side includes (SSI): + # (You will also need to add "Includes" to the "Options" directive.) + # + AddType text/html .shtml + + AddOutputFilter INCLUDES .shtml + + diff --git httpd/docs/conf/extra-available/httpd-mpm.conf.in httpd/docs/conf/extra-available/httpd-mpm.conf.in new file mode 100644 index 000000000..b3e83e3b1 --- /dev/null +++ httpd/docs/conf/extra-available/httpd-mpm.conf.in @@ -0,0 +1,110 @@ +# +# Server-Pool Management (MPM specific) +# + +# +# PidFile: The file in which the server should record its process +# identification number when it starts. +# +# Note that this is the default PidFile for most MPMs. +# + + PidFile "@rel_runtimedir@/httpd.pid" + + +# +# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. +# + + + #LockFile "@rel_logfiledir@/accept.lock" + Mutex sem + + + +# +# Only one of the below sections will be relevant on your +# installed httpd. Use "apachectl -l" to find out the +# active mpm. +# + +# prefork MPM +# StartServers: number of server processes to start +# MinSpareServers: minimum number of server processes which are kept spare +# MaxSpareServers: maximum number of server processes which are kept spare +# MaxClients: maximum number of server processes allowed to start +# MaxRequestsPerChild: maximum number of requests a server process serves + + StartServers 5 + MinSpareServers 5 + MaxSpareServers 10 + MaxClients 150 + MaxRequestsPerChild 0 + + +# worker MPM +# StartServers: initial number of server processes to start +# MaxClients: maximum number of simultaneous client connections +# MinSpareThreads: minimum number of worker threads which are kept spare +# MaxSpareThreads: maximum number of worker threads which are kept spare +# ThreadsPerChild: constant number of worker threads in each server process +# MaxRequestsPerChild: maximum number of requests a server process serves + + StartServers 2 + MaxClients 150 + MinSpareThreads 25 + MaxSpareThreads 75 + ThreadsPerChild 25 + MaxRequestsPerChild 0 + + +# BeOS MPM +# StartThreads: how many threads do we initially spawn? +# MaxClients: max number of threads we can have (1 thread == 1 client) +# MaxRequestsPerThread: maximum number of requests each thread will process + + StartThreads 10 + MaxClients 50 + MaxRequestsPerThread 10000 + + +# NetWare MPM +# ThreadStackSize: Stack size allocated for each worker thread +# StartThreads: Number of worker threads launched at server startup +# MinSpareThreads: Minimum number of idle threads, to handle request spikes +# MaxSpareThreads: Maximum number of idle threads +# MaxThreads: Maximum number of worker threads alive at the same time +# MaxRequestsPerChild: Maximum number of requests a thread serves. It is +# recommended that the default value of 0 be set for this +# directive on NetWare. This will allow the thread to +# continue to service requests indefinitely. + + ThreadStackSize 65536 + StartThreads 250 + MinSpareThreads 25 + MaxSpareThreads 250 + MaxThreads 1000 + MaxRequestsPerChild 0 + MaxMemFree 100 + + +# OS/2 MPM +# StartServers: Number of server processes to maintain +# MinSpareThreads: Minimum number of idle threads per process, +# to handle request spikes +# MaxSpareThreads: Maximum number of idle threads per process +# MaxRequestsPerChild: Maximum number of connections per server process + + StartServers 2 + MinSpareThreads 5 + MaxSpareThreads 10 + MaxRequestsPerChild 0 + + +# WinNT MPM +# ThreadsPerChild: constant number of worker threads in the server process +# MaxRequestsPerChild: maximum number of requests a server process serves + + ThreadsPerChild 150 + MaxRequestsPerChild 0 + diff --git httpd/docs/conf/extra-available/httpd-multilang-errordoc.conf.in httpd/docs/conf/extra-available/httpd-multilang-errordoc.conf.in new file mode 100644 index 000000000..991c03ee1 --- /dev/null +++ httpd/docs/conf/extra-available/httpd-multilang-errordoc.conf.in @@ -0,0 +1,62 @@ +# +# Summary: The configuration below implements multi-language error documents through content-negotiation +# Provides: Extra +# + +# +# The configuration below implements multi-language error documents through +# content-negotiation. +# +# Required modules: mod_alias, mod_include, mod_negotiation +# +# We use Alias to redirect any /error/HTTP_.html.var response to +# our collection of by-error message multi-language collections. We use +# includes to substitute the appropriate text. +# +# You can modify the messages' appearance without changing any of the +# default HTTP_.html.var files by adding the line: +# +# Alias /error/include/ "/your/include/path/" +# +# which allows you to create your own set of files by starting with the +# @exp_errordir@/include/ files and copying them to /your/include/path/, +# even on a per-VirtualHost basis. The default include files will display +# your Apache version number and your ServerAdmin email address regardless +# of the setting of ServerSignature. + + + Alias /error/ "@exp_errordir@/" + + + + AllowOverride None + Options IncludesNoExec + + AddOutputFilter Includes html + AddHandler type-map var + + Require all granted + + LanguagePriority en cs de es fr it ja ko nl pl pt-br ro sv tr + ForceLanguagePriority Prefer Fallback + + + +ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var +ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var +ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var +ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var +ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var +ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var +ErrorDocument 410 /error/HTTP_GONE.html.var +ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var +ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var +ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var +ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var +ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var +ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var +ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var +ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var +ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var +ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var + diff --git httpd/docs/conf/extra-available/httpd-proxy.conf.in httpd/docs/conf/extra-available/httpd-proxy.conf.in new file mode 100644 index 000000000..73fb5d70e --- /dev/null +++ httpd/docs/conf/extra-available/httpd-proxy.conf.in @@ -0,0 +1,18 @@ +# +# Summary: proxy_module configure +# Provides: Extra +# + + + + AddDefaultCharset off + Require all denied + #Require host .example.com + + + # Enable/disable the handling of HTTP/1.1 "Via:" headers. + # ("Full" adds the server version; "Block" removes all outgoing Via: headers) + # Set to one of: Off | On | Full | Block + + ProxyVia On + diff --git httpd/docs/conf/include/Directory_cgibin_default.conf.in httpd/docs/conf/include/Directory_cgibin_default.conf.in new file mode 100644 index 000000000..29fb7f057 --- /dev/null +++ httpd/docs/conf/include/Directory_cgibin_default.conf.in @@ -0,0 +1,12 @@ +# +# Summary: Default config for CGI directory +# Provides: Directory +# Provides: Directory-cgi +# + +# +# "@exp_cgidir@" should be changed to whatever your ScriptAliased +# CGI directory exists, if you have that configured. +# +Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch +Require all granted diff --git httpd/docs/conf/include/Directory_html_default.conf.in httpd/docs/conf/include/Directory_html_default.conf.in new file mode 100644 index 000000000..53e32f114 --- /dev/null +++ httpd/docs/conf/include/Directory_html_default.conf.in @@ -0,0 +1,31 @@ +# +# Summary: Default config for html documents +# Provides: Directory +# Provides: Directory-html +# + +# +# Possible values for the Options directive are "None", "All", +# or any combination of: +# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews +# +# Note that "MultiViews" must be named *explicitly* --- "Options All" +# doesn't give it to you. +# +# The Options directive is both complicated and important. Please see +# http://httpd.apache.org/docs/2.2/mod/core.html#options +# for more information. +# +Options Includes FollowSymLinks MultiViews + +# +# AllowOverride controls what directives may be placed in .htaccess files. +# It can be "All", "None", or any combination of the keywords: +# Options FileInfo AuthConfig Limit +# +AllowOverride None + +# +# Controls who can get stuff from this server. +# +Require all granted diff --git httpd/docs/conf/include/Directory_root_default.conf.in httpd/docs/conf/include/Directory_root_default.conf.in new file mode 100644 index 000000000..bcb8066bc --- /dev/null +++ httpd/docs/conf/include/Directory_root_default.conf.in @@ -0,0 +1,8 @@ +# +# Summary: Default config for all dirs +# Provides: Directory +# Provides: Directory-root +# +Options +FollowSymLinks -Indexes +AllowOverride None +Require all denied diff --git httpd/docs/conf/mods-available/actions.load.in httpd/docs/conf/mods-available/actions.load.in new file mode 100644 index 000000000..ceb36fcb7 --- /dev/null +++ httpd/docs/conf/mods-available/actions.load.in @@ -0,0 +1 @@ +LoadModule actions_module @rel_libexecdir@/mod_actions.so diff --git httpd/docs/conf/mods-available/alias.load.in httpd/docs/conf/mods-available/alias.load.in new file mode 100644 index 000000000..26a732cf2 --- /dev/null +++ httpd/docs/conf/mods-available/alias.load.in @@ -0,0 +1 @@ +LoadModule alias_module @rel_libexecdir@/mod_alias.so diff --git httpd/docs/conf/mods-available/asis.load.in httpd/docs/conf/mods-available/asis.load.in new file mode 100644 index 000000000..800b90154 --- /dev/null +++ httpd/docs/conf/mods-available/asis.load.in @@ -0,0 +1 @@ +LoadModule asis_module @rel_libexecdir@/mod_asis.so diff --git httpd/docs/conf/mods-available/auth_basic.load.in httpd/docs/conf/mods-available/auth_basic.load.in new file mode 100644 index 000000000..cfb2e09bd --- /dev/null +++ httpd/docs/conf/mods-available/auth_basic.load.in @@ -0,0 +1 @@ +LoadModule auth_basic_module @rel_libexecdir@/mod_auth_basic.so diff --git httpd/docs/conf/mods-available/auth_digest.load.in httpd/docs/conf/mods-available/auth_digest.load.in new file mode 100644 index 000000000..6260c33cc --- /dev/null +++ httpd/docs/conf/mods-available/auth_digest.load.in @@ -0,0 +1 @@ +LoadModule auth_digest_module @rel_libexecdir@/mod_auth_digest.so diff --git httpd/docs/conf/mods-available/authn_alias.load.in httpd/docs/conf/mods-available/authn_alias.load.in new file mode 100644 index 000000000..2fde1b913 --- /dev/null +++ httpd/docs/conf/mods-available/authn_alias.load.in @@ -0,0 +1 @@ +LoadModule authn_alias_module @rel_libexecdir@/mod_authn_alias.so diff --git httpd/docs/conf/mods-available/authn_anon.load.in httpd/docs/conf/mods-available/authn_anon.load.in new file mode 100644 index 000000000..8a08754a4 --- /dev/null +++ httpd/docs/conf/mods-available/authn_anon.load.in @@ -0,0 +1 @@ +LoadModule authn_anon_module @rel_libexecdir@/mod_authn_anon.so diff --git httpd/docs/conf/mods-available/authn_dbd.load.in httpd/docs/conf/mods-available/authn_dbd.load.in new file mode 100644 index 000000000..c5dbf067c --- /dev/null +++ httpd/docs/conf/mods-available/authn_dbd.load.in @@ -0,0 +1 @@ +LoadModule authn_dbd_module @rel_libexecdir@/mod_authn_dbd.so diff --git httpd/docs/conf/mods-available/authn_dbm.load.in httpd/docs/conf/mods-available/authn_dbm.load.in new file mode 100644 index 000000000..627e6461a --- /dev/null +++ httpd/docs/conf/mods-available/authn_dbm.load.in @@ -0,0 +1 @@ +LoadModule authn_dbm_module @rel_libexecdir@/mod_authn_dbm.so diff --git httpd/docs/conf/mods-available/authn_default.load.in httpd/docs/conf/mods-available/authn_default.load.in new file mode 100644 index 000000000..297a282c5 --- /dev/null +++ httpd/docs/conf/mods-available/authn_default.load.in @@ -0,0 +1 @@ +LoadModule authn_default_module @rel_libexecdir@/mod_authn_default.so diff --git httpd/docs/conf/mods-available/authn_file.load.in httpd/docs/conf/mods-available/authn_file.load.in new file mode 100644 index 000000000..23b67c824 --- /dev/null +++ httpd/docs/conf/mods-available/authn_file.load.in @@ -0,0 +1 @@ +LoadModule authn_file_module @rel_libexecdir@/mod_authn_file.so diff --git httpd/docs/conf/mods-available/authnz_ldap.load.in httpd/docs/conf/mods-available/authnz_ldap.load.in new file mode 100644 index 000000000..8fde48e24 --- /dev/null +++ httpd/docs/conf/mods-available/authnz_ldap.load.in @@ -0,0 +1,2 @@ +# Depends: ldap +LoadModule authnz_ldap_module @rel_libexecdir@/mod_authnz_ldap.so diff --git httpd/docs/conf/mods-available/authz_dbm.load.in httpd/docs/conf/mods-available/authz_dbm.load.in new file mode 100644 index 000000000..901c6e43b --- /dev/null +++ httpd/docs/conf/mods-available/authz_dbm.load.in @@ -0,0 +1 @@ +LoadModule authz_dbm_module @rel_libexecdir@/mod_authz_dbm.so diff --git httpd/docs/conf/mods-available/authz_default.load.in httpd/docs/conf/mods-available/authz_default.load.in new file mode 100644 index 000000000..38dcad58c --- /dev/null +++ httpd/docs/conf/mods-available/authz_default.load.in @@ -0,0 +1 @@ +LoadModule authz_default_module @rel_libexecdir@/mod_authz_default.so diff --git httpd/docs/conf/mods-available/authz_groupfile.load.in httpd/docs/conf/mods-available/authz_groupfile.load.in new file mode 100644 index 000000000..9d2931978 --- /dev/null +++ httpd/docs/conf/mods-available/authz_groupfile.load.in @@ -0,0 +1 @@ +LoadModule authz_groupfile_module @rel_libexecdir@/mod_authz_groupfile.so diff --git httpd/docs/conf/mods-available/authz_host.load.in httpd/docs/conf/mods-available/authz_host.load.in new file mode 100644 index 000000000..1f0ef4bd1 --- /dev/null +++ httpd/docs/conf/mods-available/authz_host.load.in @@ -0,0 +1 @@ +LoadModule authz_host_module @rel_libexecdir@/mod_authz_host.so diff --git httpd/docs/conf/mods-available/authz_owner.load.in httpd/docs/conf/mods-available/authz_owner.load.in new file mode 100644 index 000000000..c49fa0882 --- /dev/null +++ httpd/docs/conf/mods-available/authz_owner.load.in @@ -0,0 +1 @@ +LoadModule authz_owner_module @rel_libexecdir@/mod_authz_owner.so diff --git httpd/docs/conf/mods-available/authz_user.load.in httpd/docs/conf/mods-available/authz_user.load.in new file mode 100644 index 000000000..74db051cc --- /dev/null +++ httpd/docs/conf/mods-available/authz_user.load.in @@ -0,0 +1 @@ +LoadModule authz_user_module @rel_libexecdir@/mod_authz_user.so diff --git httpd/docs/conf/mods-available/autoindex.load.in httpd/docs/conf/mods-available/autoindex.load.in new file mode 100644 index 000000000..c12ca80b1 --- /dev/null +++ httpd/docs/conf/mods-available/autoindex.load.in @@ -0,0 +1 @@ +LoadModule autoindex_module @rel_libexecdir@/mod_autoindex.so diff --git httpd/docs/conf/mods-available/cache.load.in httpd/docs/conf/mods-available/cache.load.in new file mode 100644 index 000000000..abe2734c8 --- /dev/null +++ httpd/docs/conf/mods-available/cache.load.in @@ -0,0 +1 @@ +LoadModule cache_module @rel_libexecdir@/mod_cache.so diff --git httpd/docs/conf/mods-available/cgi.load.in httpd/docs/conf/mods-available/cgi.load.in new file mode 100644 index 000000000..dd8738fb3 --- /dev/null +++ httpd/docs/conf/mods-available/cgi.load.in @@ -0,0 +1 @@ +LoadModule cgi_module @rel_libexecdir@/mod_cgi.so diff --git httpd/docs/conf/mods-available/cgid.conf.in httpd/docs/conf/mods-available/cgid.conf.in new file mode 100644 index 000000000..944879fd8 --- /dev/null +++ httpd/docs/conf/mods-available/cgid.conf.in @@ -0,0 +1,8 @@ +# Socket for cgid communication + + # + # ScriptSock: On threaded servers, designate the path to the UNIX + # socket used to communicate with the CGI daemon of mod_cgid. + # + Scriptsock @rel_runtimedir@/cgisock + diff --git httpd/docs/conf/mods-available/cgid.load.in httpd/docs/conf/mods-available/cgid.load.in new file mode 100644 index 000000000..5f0442e68 --- /dev/null +++ httpd/docs/conf/mods-available/cgid.load.in @@ -0,0 +1 @@ +LoadModule cgid_module @rel_libexecdir@/mod_cgid.so diff --git httpd/docs/conf/mods-available/charset_lite.load.in httpd/docs/conf/mods-available/charset_lite.load.in new file mode 100644 index 000000000..71a9cc9fb --- /dev/null +++ httpd/docs/conf/mods-available/charset_lite.load.in @@ -0,0 +1 @@ +LoadModule charset_lite_module @rel_libexecdir@/mod_charset_lite.so diff --git httpd/docs/conf/mods-available/dav.conf.in httpd/docs/conf/mods-available/dav.conf.in new file mode 100644 index 000000000..f11dd52dc --- /dev/null +++ httpd/docs/conf/mods-available/dav.conf.in @@ -0,0 +1,22 @@ +# +# Distributed authoring and versioning (WebDAV) +# +# Required modules: mod_dav, mod_dav_fs, mod_setenvif, mod_alias +# mod_auth_digest, mod_authn_file +# + + + # + # The following directives disable redirects on non-GET requests for + # a directory that does not include the trailing slash. This fixes a + # problem with several clients that do not appropriately handle + # redirects for folders with DAV methods. + # + BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully + BrowserMatch "MS FrontPage" redirect-carefully + BrowserMatch "^WebDrive" redirect-carefully + BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully + BrowserMatch "^gnome-vfs/1.0" redirect-carefully + BrowserMatch "^XML Spy" redirect-carefully + BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully + diff --git httpd/docs/conf/mods-available/dav.load.in httpd/docs/conf/mods-available/dav.load.in new file mode 100644 index 000000000..0de3741ef --- /dev/null +++ httpd/docs/conf/mods-available/dav.load.in @@ -0,0 +1 @@ +LoadModule dav_module @rel_libexecdir@/mod_dav.so diff --git httpd/docs/conf/mods-available/dav_fs.conf.in httpd/docs/conf/mods-available/dav_fs.conf.in new file mode 100644 index 000000000..ba6f0f0fe --- /dev/null +++ httpd/docs/conf/mods-available/dav_fs.conf.in @@ -0,0 +1,8 @@ + + # + # The User/Group specified in httpd.conf needs to have write permissions + # on the directory where the DavLockDB is placed and on any directory where + # "Dav On" is specified. + + DavLockDB "@@ServerRoot@@/lock/DavLock" + diff --git httpd/docs/conf/mods-available/dav_fs.load.in httpd/docs/conf/mods-available/dav_fs.load.in new file mode 100644 index 000000000..12d551152 --- /dev/null +++ httpd/docs/conf/mods-available/dav_fs.load.in @@ -0,0 +1,2 @@ +# Depends: dav +LoadModule dav_fs_module @rel_libexecdir@/mod_dav_fs.so diff --git httpd/docs/conf/mods-available/dav_lock.load.in httpd/docs/conf/mods-available/dav_lock.load.in new file mode 100644 index 000000000..0c0c31964 --- /dev/null +++ httpd/docs/conf/mods-available/dav_lock.load.in @@ -0,0 +1 @@ +LoadModule dav_lock_module @rel_libexecdir@/mod_dav_lock.so diff --git httpd/docs/conf/mods-available/dbd.load.in httpd/docs/conf/mods-available/dbd.load.in new file mode 100644 index 000000000..cb85a802e --- /dev/null +++ httpd/docs/conf/mods-available/dbd.load.in @@ -0,0 +1 @@ +LoadModule dbd_module @rel_libexecdir@/mod_dbd.so diff --git httpd/docs/conf/mods-available/deflate.conf.in httpd/docs/conf/mods-available/deflate.conf.in new file mode 100644 index 000000000..a58609bac --- /dev/null +++ httpd/docs/conf/mods-available/deflate.conf.in @@ -0,0 +1,3 @@ + + AddOutputFilterByType DEFLATE text/html text/plain text/xml + diff --git httpd/docs/conf/mods-available/deflate.load.in httpd/docs/conf/mods-available/deflate.load.in new file mode 100644 index 000000000..7822a41ce --- /dev/null +++ httpd/docs/conf/mods-available/deflate.load.in @@ -0,0 +1 @@ +LoadModule deflate_module @rel_libexecdir@/mod_deflate.so diff --git httpd/docs/conf/mods-available/dir.conf.in httpd/docs/conf/mods-available/dir.conf.in new file mode 100644 index 000000000..a5c7c14ab --- /dev/null +++ httpd/docs/conf/mods-available/dir.conf.in @@ -0,0 +1,7 @@ + + # + # DirectoryIndex: sets the file that Apache will serve if a directory + # is requested. + # + DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml + diff --git httpd/docs/conf/mods-available/dir.load.in httpd/docs/conf/mods-available/dir.load.in new file mode 100644 index 000000000..2927ac9c8 --- /dev/null +++ httpd/docs/conf/mods-available/dir.load.in @@ -0,0 +1 @@ +LoadModule dir_module @rel_libexecdir@/mod_dir.so diff --git httpd/docs/conf/mods-available/disk_cache.conf.in httpd/docs/conf/mods-available/disk_cache.conf.in new file mode 100644 index 000000000..d89a41dad --- /dev/null +++ httpd/docs/conf/mods-available/disk_cache.conf.in @@ -0,0 +1,6 @@ + + CacheRoot @htcacheclean_cachepath@ + CacheEnable disk / + CacheDirLevels 5 + CacheDirLength 3 + diff --git httpd/docs/conf/mods-available/disk_cache.load.in httpd/docs/conf/mods-available/disk_cache.load.in new file mode 100644 index 000000000..27fcdf4e9 --- /dev/null +++ httpd/docs/conf/mods-available/disk_cache.load.in @@ -0,0 +1,2 @@ +# Depends: cache +LoadModule disk_cache_module @rel_libexecdir@/mod_disk_cache.so diff --git httpd/docs/conf/mods-available/env.load.in httpd/docs/conf/mods-available/env.load.in new file mode 100644 index 000000000..65146d095 --- /dev/null +++ httpd/docs/conf/mods-available/env.load.in @@ -0,0 +1 @@ +LoadModule env_module @rel_libexecdir@/mod_env.so diff --git httpd/docs/conf/mods-available/expires.load.in httpd/docs/conf/mods-available/expires.load.in new file mode 100644 index 000000000..5d58196bb --- /dev/null +++ httpd/docs/conf/mods-available/expires.load.in @@ -0,0 +1 @@ +LoadModule expires_module @rel_libexecdir@/mod_expires.so diff --git httpd/docs/conf/mods-available/file_cache.load.in httpd/docs/conf/mods-available/file_cache.load.in new file mode 100644 index 000000000..ce4a749b0 --- /dev/null +++ httpd/docs/conf/mods-available/file_cache.load.in @@ -0,0 +1,2 @@ +# Depends: cache +LoadModule file_cache_module @rel_libexecdir@/mod_file_cache.so diff --git httpd/docs/conf/mods-available/filter.load.in httpd/docs/conf/mods-available/filter.load.in new file mode 100644 index 000000000..bfd22b188 --- /dev/null +++ httpd/docs/conf/mods-available/filter.load.in @@ -0,0 +1 @@ +LoadModule filter_module @rel_libexecdir@/mod_filter.so diff --git httpd/docs/conf/mods-available/headers.load.in httpd/docs/conf/mods-available/headers.load.in new file mode 100644 index 000000000..af8c20b57 --- /dev/null +++ httpd/docs/conf/mods-available/headers.load.in @@ -0,0 +1 @@ +LoadModule headers_module @rel_libexecdir@/mod_headers.so diff --git httpd/docs/conf/mods-available/ident.load.in httpd/docs/conf/mods-available/ident.load.in new file mode 100644 index 000000000..1657015a9 --- /dev/null +++ httpd/docs/conf/mods-available/ident.load.in @@ -0,0 +1 @@ +LoadModule ident_module @rel_libexecdir@/mod_ident.so diff --git httpd/docs/conf/mods-available/imagemap.load.in httpd/docs/conf/mods-available/imagemap.load.in new file mode 100644 index 000000000..e0aafe283 --- /dev/null +++ httpd/docs/conf/mods-available/imagemap.load.in @@ -0,0 +1 @@ +LoadModule imagemap_module @rel_libexecdir@/mod_imagemap.so diff --git httpd/docs/conf/mods-available/include.load.in httpd/docs/conf/mods-available/include.load.in new file mode 100644 index 000000000..5808241f6 --- /dev/null +++ httpd/docs/conf/mods-available/include.load.in @@ -0,0 +1 @@ +LoadModule include_module @rel_libexecdir@/mod_include.so diff --git httpd/docs/conf/mods-available/info.load.in httpd/docs/conf/mods-available/info.load.in new file mode 100644 index 000000000..6651ffeb3 --- /dev/null +++ httpd/docs/conf/mods-available/info.load.in @@ -0,0 +1 @@ +LoadModule info_module @rel_libexecdir@/mod_info.so diff --git httpd/docs/conf/mods-available/ldap.load.in httpd/docs/conf/mods-available/ldap.load.in new file mode 100644 index 000000000..c37d993f5 --- /dev/null +++ httpd/docs/conf/mods-available/ldap.load.in @@ -0,0 +1 @@ +LoadModule ldap_module @rel_libexecdir@/mod_ldap.so diff --git httpd/docs/conf/mods-available/log_config.conf.in httpd/docs/conf/mods-available/log_config.conf.in new file mode 100644 index 000000000..c17dd0cfb --- /dev/null +++ httpd/docs/conf/mods-available/log_config.conf.in @@ -0,0 +1,33 @@ +# +# Summary: Loging configure +# Provides: Extra +# + + + # + # The following directives define some format nicknames for use with + # a CustomLog directive (see below). + # + LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined + LogFormat "%a %l %u %t \"%r\" %>s %b" common + + + # You need to enable mod_logio.c to use %I and %O + LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio + + + # + # The location and format of the access logfile (Common Logfile Format). + # If you do not define any access logfiles within a + # container, they will be logged here. Contrariwise, if you *do* + # define per- access logfiles, transactions will be + # logged therein and *not* in this file. + # + CustomLog @rel_logfiledir@/access_log common + + # + # If you prefer a logfile with access, agent, and referer information + # (Combined Logfile Format) you can use the following directive. + # + #CustomLog @rel_logfiledir@/access_log combined + diff --git httpd/docs/conf/mods-available/log_config.load.in httpd/docs/conf/mods-available/log_config.load.in new file mode 100644 index 000000000..b6e0bfd8a --- /dev/null +++ httpd/docs/conf/mods-available/log_config.load.in @@ -0,0 +1 @@ +LoadModule log_config_module @rel_libexecdir@/mod_log_config.so diff --git httpd/docs/conf/mods-available/log_forensic.load.in httpd/docs/conf/mods-available/log_forensic.load.in new file mode 100644 index 000000000..d945e0cfc --- /dev/null +++ httpd/docs/conf/mods-available/log_forensic.load.in @@ -0,0 +1 @@ +LoadModule log_forensic_module @rel_libexecdir@/mod_log_forensic.so diff --git httpd/docs/conf/mods-available/mem_cache.conf.in httpd/docs/conf/mods-available/mem_cache.conf.in new file mode 100644 index 000000000..6c3a849f8 --- /dev/null +++ httpd/docs/conf/mods-available/mem_cache.conf.in @@ -0,0 +1,12 @@ +# +# Summary: Default configs for mem_cache_module +# Provides: Extra +# + + + CacheEnable mem / + MCacheSize 4096 + MCacheMaxObjectCount 100 + MCacheMinObjectSize 1 + MCacheMaxObjectSize 2048 + diff --git httpd/docs/conf/mods-available/mem_cache.load.in httpd/docs/conf/mods-available/mem_cache.load.in new file mode 100644 index 000000000..d938cf23d --- /dev/null +++ httpd/docs/conf/mods-available/mem_cache.load.in @@ -0,0 +1,2 @@ +# Depends: cache +LoadModule mem_cache_module @rel_libexecdir@/mod_mem_cache.so diff --git httpd/docs/conf/mods-available/mime.conf.in httpd/docs/conf/mods-available/mime.conf.in new file mode 100644 index 000000000..6415b4ec2 --- /dev/null +++ httpd/docs/conf/mods-available/mime.conf.in @@ -0,0 +1,7 @@ + + # + # TypesConfig points to the file containing the list of mappings from + # filename extension to MIME-type. + # + TypesConfig @rel_sysconfdir@/mime.types + diff --git httpd/docs/conf/mods-available/mime.load.in httpd/docs/conf/mods-available/mime.load.in new file mode 100644 index 000000000..4cb8b9780 --- /dev/null +++ httpd/docs/conf/mods-available/mime.load.in @@ -0,0 +1 @@ +LoadModule mime_module @rel_libexecdir@/mod_mime.so diff --git httpd/docs/conf/mods-available/mime_magic.conf.in httpd/docs/conf/mods-available/mime_magic.conf.in new file mode 100644 index 000000000..6dac1bc63 --- /dev/null +++ httpd/docs/conf/mods-available/mime_magic.conf.in @@ -0,0 +1,13 @@ +# +# Summary: Default configs for mime_magic_module +# Provides: Extra +# + + + # + # The mod_mime_magic module allows the server to use various hints from the + # contents of the file itself to determine its type. The MIMEMagicFile + # directive tells the module where the hint definitions are located. + # + MIMEMagicFile @rel_sysconfdir@/magic + diff --git httpd/docs/conf/mods-available/mime_magic.load.in httpd/docs/conf/mods-available/mime_magic.load.in new file mode 100644 index 000000000..ca8a9e49c --- /dev/null +++ httpd/docs/conf/mods-available/mime_magic.load.in @@ -0,0 +1 @@ +LoadModule mime_magic_module @rel_libexecdir@/mod_mime_magic.so diff --git httpd/docs/conf/mods-available/negotiation.load.in httpd/docs/conf/mods-available/negotiation.load.in new file mode 100644 index 000000000..f481d7768 --- /dev/null +++ httpd/docs/conf/mods-available/negotiation.load.in @@ -0,0 +1 @@ +LoadModule negotiation_module @rel_libexecdir@/mod_negotiation.so diff --git httpd/docs/conf/mods-available/proxy.conf.in httpd/docs/conf/mods-available/proxy.conf.in new file mode 100644 index 000000000..87a3a0b92 --- /dev/null +++ httpd/docs/conf/mods-available/proxy.conf.in @@ -0,0 +1,7 @@ + + #turning ProxyRequests on and allowing proxying from all may allow + #spammers to use your proxy to send email. + + ProxyRequests Off + + diff --git httpd/docs/conf/mods-available/proxy.load.in httpd/docs/conf/mods-available/proxy.load.in new file mode 100644 index 000000000..da5ec8de0 --- /dev/null +++ httpd/docs/conf/mods-available/proxy.load.in @@ -0,0 +1 @@ +LoadModule proxy_module @rel_libexecdir@/mod_proxy.so diff --git httpd/docs/conf/mods-available/proxy_ajp.load.in httpd/docs/conf/mods-available/proxy_ajp.load.in new file mode 100644 index 000000000..49dc6b182 --- /dev/null +++ httpd/docs/conf/mods-available/proxy_ajp.load.in @@ -0,0 +1,2 @@ +# Depends: proxy +LoadModule proxy_ajp_module @rel_libexecdir@/mod_proxy_ajp.so diff --git httpd/docs/conf/mods-available/proxy_balancer.load.in httpd/docs/conf/mods-available/proxy_balancer.load.in new file mode 100644 index 000000000..cd99e0fec --- /dev/null +++ httpd/docs/conf/mods-available/proxy_balancer.load.in @@ -0,0 +1,2 @@ +# Depends: proxy cache +LoadModule proxy_balancer_module @rel_libexecdir@/mod_proxy_balancer.so diff --git httpd/docs/conf/mods-available/proxy_connect.load.in httpd/docs/conf/mods-available/proxy_connect.load.in new file mode 100644 index 000000000..14b6f1dd2 --- /dev/null +++ httpd/docs/conf/mods-available/proxy_connect.load.in @@ -0,0 +1,2 @@ +# Depends: proxy +LoadModule proxy_connect_module @rel_libexecdir@/mod_proxy_connect.so diff --git httpd/docs/conf/mods-available/proxy_ftp.load.in httpd/docs/conf/mods-available/proxy_ftp.load.in new file mode 100644 index 000000000..23127b8ad --- /dev/null +++ httpd/docs/conf/mods-available/proxy_ftp.load.in @@ -0,0 +1,2 @@ +# Depends: proxy +LoadModule proxy_ftp_module @rel_libexecdir@/mod_proxy_ftp.so diff --git httpd/docs/conf/mods-available/proxy_http.load.in httpd/docs/conf/mods-available/proxy_http.load.in new file mode 100644 index 000000000..7b3905174 --- /dev/null +++ httpd/docs/conf/mods-available/proxy_http.load.in @@ -0,0 +1,2 @@ +# Depends: proxy +LoadModule proxy_http_module @rel_libexecdir@/mod_proxy_http.so diff --git httpd/docs/conf/mods-available/rewrite.load.in httpd/docs/conf/mods-available/rewrite.load.in new file mode 100644 index 000000000..f5ae2b722 --- /dev/null +++ httpd/docs/conf/mods-available/rewrite.load.in @@ -0,0 +1 @@ +LoadModule rewrite_module @rel_libexecdir@/mod_rewrite.so diff --git httpd/docs/conf/mods-available/setenvif.conf.in httpd/docs/conf/mods-available/setenvif.conf.in new file mode 100644 index 000000000..6aebc87a2 --- /dev/null +++ httpd/docs/conf/mods-available/setenvif.conf.in @@ -0,0 +1,11 @@ + + # + # The following directives modify normal HTTP response behavior to + # handle known problems with browser implementations. + # + BrowserMatch "Mozilla/2" nokeepalive + BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 + BrowserMatch "RealPlayer 4\.0" force-response-1.0 + BrowserMatch "Java/1\.0" force-response-1.0 + BrowserMatch "JDK/1\.0" force-response-1.0 + diff --git httpd/docs/conf/mods-available/setenvif.load.in httpd/docs/conf/mods-available/setenvif.load.in new file mode 100644 index 000000000..4b670abcc --- /dev/null +++ httpd/docs/conf/mods-available/setenvif.load.in @@ -0,0 +1 @@ +LoadModule setenvif_module @rel_libexecdir@/mod_setenvif.so diff --git httpd/docs/conf/mods-available/sick-hack-to-update-modules.in httpd/docs/conf/mods-available/sick-hack-to-update-modules.in new file mode 100644 index 000000000..7169d987a --- /dev/null +++ httpd/docs/conf/mods-available/sick-hack-to-update-modules.in @@ -0,0 +1,8 @@ +#!/bin/bash +for path in @rel_libexecdir@/*.so; do + module=$(echo $path|sed -e 's/.*mod_\(.*\).so/\1/'); + if [ ! -e ${module}.load ]; then + module_name=${module}_module; + echo "LoadModule $module_name $path" > ${module}.load; + fi; +done diff --git httpd/docs/conf/mods-available/speling.load.in httpd/docs/conf/mods-available/speling.load.in new file mode 100644 index 000000000..8dde7d956 --- /dev/null +++ httpd/docs/conf/mods-available/speling.load.in @@ -0,0 +1 @@ +LoadModule speling_module @rel_libexecdir@/mod_speling.so diff --git httpd/docs/conf/mods-available/ssl.conf.in httpd/docs/conf/mods-available/ssl.conf.in new file mode 100644 index 000000000..3990f5aa2 --- /dev/null +++ httpd/docs/conf/mods-available/ssl.conf.in @@ -0,0 +1,64 @@ +# +# This is the Apache server configuration file providing SSL support. +# It contains the configuration directives to instruct the server how to +# serve pages over an https connection. For detailing information about these +# directives see +# +# Do NOT simply read the instructions in here without understanding +# what they do. They're here only as hints or reminders. If you are unsure +# consult the online docs. You have been warned. +# + + + # + # Pseudo Random Number Generator (PRNG): + # Configure one or more sources to seed the PRNG of the SSL library. + # The seed data should be of good random quality. + # WARNING! On some platforms /dev/random blocks if not enough entropy + # is available. This means you then cannot use the /dev/random device + # because it would lead to very long connection times (as long as + # it requires to make more entropy available). But usually those + # platforms additionally provide a /dev/urandom device which doesn't + # block. So, if available, use this one instead. Read the mod_ssl User + # Manual for more details. + # + #SSLRandomSeed startup file:/dev/random 512 + #SSLRandomSeed startup file:/dev/urandom 512 + #SSLRandomSeed connect file:/dev/random 512 + #SSLRandomSeed connect file:/dev/urandom 512 + + +## +## SSL Global Context +## +## All SSL configuration in this context applies both to +## the main server and all SSL-enabled virtual hosts. +## + + + # + # Some MIME-types for downloading Certificates and CRLs + # + AddType application/x-x509-ca-cert .crt + AddType application/x-pkcs7-crl .crl + + + + # Pass Phrase Dialog: + # Configure the pass phrase gathering process. + # The filtering dialog program (`builtin' is a internal + # terminal dialog) has to provide the pass phrase on stdout. + SSLPassPhraseDialog builtin + + # Inter-Process Session Cache: + # Configure the SSL Session Cache: First the mechanism + # to use and second the expiring timeout (in seconds). + #SSLSessionCache "dbm:@exp_runtimedir@/ssl_scache" + SSLSessionCache "shmcb:@exp_runtimedir@/ssl_scache(512000)" + SSLSessionCacheTimeout 300 + + # Semaphore: + # Configure the path to the mutual exclusion semaphore the + # SSL engine uses internally for inter-process synchronization. + #SSLMutex "file:@exp_runtimedir@/ssl_mutex" + Mutex default ssl-cache diff --git httpd/docs/conf/mods-available/ssl.load.in httpd/docs/conf/mods-available/ssl.load.in new file mode 100644 index 000000000..a698a3d57 --- /dev/null +++ httpd/docs/conf/mods-available/ssl.load.in @@ -0,0 +1 @@ +LoadModule ssl_module @rel_libexecdir@/mod_ssl.so diff --git httpd/docs/conf/mods-available/status.load.in httpd/docs/conf/mods-available/status.load.in new file mode 100644 index 000000000..4ebf8441e --- /dev/null +++ httpd/docs/conf/mods-available/status.load.in @@ -0,0 +1 @@ +LoadModule status_module @rel_libexecdir@/mod_status.so diff --git httpd/docs/conf/mods-available/suexec.load.in httpd/docs/conf/mods-available/suexec.load.in new file mode 100644 index 000000000..f5ddf3a05 --- /dev/null +++ httpd/docs/conf/mods-available/suexec.load.in @@ -0,0 +1 @@ +LoadModule suexec_module @rel_libexecdir@/mod_suexec.so diff --git httpd/docs/conf/mods-available/unique_id.load.in httpd/docs/conf/mods-available/unique_id.load.in new file mode 100644 index 000000000..ae944104d --- /dev/null +++ httpd/docs/conf/mods-available/unique_id.load.in @@ -0,0 +1 @@ +LoadModule unique_id_module @rel_libexecdir@/mod_unique_id.so diff --git httpd/docs/conf/mods-available/userdir.conf.in httpd/docs/conf/mods-available/userdir.conf.in new file mode 100644 index 000000000..c1aa81d28 --- /dev/null +++ httpd/docs/conf/mods-available/userdir.conf.in @@ -0,0 +1,28 @@ +# Settings for user home directories +# +# Required module: mod_userdir + + + # + # UserDir: The name of the directory that is appended onto a user's home + # directory if a ~user request is received. Note that you must also set + # the default access control for these directories, as in the example below. + # + UserDir public_html + UserDir disabled root + + # + # Control access to UserDir directories. The following is an example + # for a site where these directories are restricted to read-only. + # + + AllowOverride FileInfo AuthConfig Limit Indexes + Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec + + Require all granted + + + Require all denied + + + diff --git httpd/docs/conf/mods-available/userdir.load.in httpd/docs/conf/mods-available/userdir.load.in new file mode 100644 index 000000000..53dc724e7 --- /dev/null +++ httpd/docs/conf/mods-available/userdir.load.in @@ -0,0 +1 @@ +LoadModule userdir_module @rel_libexecdir@/mod_userdir.so diff --git httpd/docs/conf/mods-available/usertrack.load.in httpd/docs/conf/mods-available/usertrack.load.in new file mode 100644 index 000000000..b57cee452 --- /dev/null +++ httpd/docs/conf/mods-available/usertrack.load.in @@ -0,0 +1 @@ +LoadModule usertrack_module @rel_libexecdir@/mod_usertrack.so diff --git httpd/docs/conf/mods-available/version.load.in httpd/docs/conf/mods-available/version.load.in new file mode 100644 index 000000000..33d66e5d9 --- /dev/null +++ httpd/docs/conf/mods-available/version.load.in @@ -0,0 +1 @@ +LoadModule version_module @rel_libexecdir@/mod_version.so diff --git httpd/docs/conf/mods-available/vhost_alias.load.in httpd/docs/conf/mods-available/vhost_alias.load.in new file mode 100644 index 000000000..a0960167a --- /dev/null +++ httpd/docs/conf/mods-available/vhost_alias.load.in @@ -0,0 +1 @@ +LoadModule vhost_alias_module @rel_libexecdir@/mod_vhost_alias.so diff --git httpd/docs/conf/ports-available/http.conf.in httpd/docs/conf/ports-available/http.conf.in new file mode 100644 index 000000000..b91c07e1b --- /dev/null +++ httpd/docs/conf/ports-available/http.conf.in @@ -0,0 +1,16 @@ +# +# Summary: Set @@Port@@ port listen +# Provides: Listen +# Provides: Listen-default +# + +# +# Listen: Allows you to bind Apache to specific IP addresses and/or +# ports, instead of the default. See also the +# directive. +# +# Change this to Listen on specific IP addresses as shown below to +# prevent Apache from glomming onto all bound IP addresses. +# +#Listen 12.34.56.78:80 +Listen @@Port@@ diff --git httpd/docs/conf/ports-available/https.conf.in httpd/docs/conf/ports-available/https.conf.in new file mode 100644 index 000000000..72fa3e08a --- /dev/null +++ httpd/docs/conf/ports-available/https.conf.in @@ -0,0 +1,17 @@ +# +# Summary: Set 443 port for https listen +# Provides: Listen +# Provides: Listen-https +# Provides: Listen-https-default +# + + + # + # When we also provide SSL we have to listen to the + # standard HTTP port (see above) and to the HTTPS port + # + # Note: Configurations that use IPv6 but not IPv4-mapped addresses need two + # Listen directives: "Listen [::]:@@SSLPort@@" and "Listen 0.0.0.0:@@SSLPort@@" + # + Listen @@SSLPort@@ + diff --git httpd/docs/conf/sites-available/default.conf.in httpd/docs/conf/sites-available/default.conf.in new file mode 100644 index 000000000..9016aad69 --- /dev/null +++ httpd/docs/conf/sites-available/default.conf.in @@ -0,0 +1,147 @@ +# +# Summary: Main server configuration (for default virtual host) +# Provides: VirtualHost +# Provides: VirtualHost-default +# + +# +# 'Main' server configuration +# +# The directives in this section set up the values used by the 'main' +# server, which responds to any requests that aren't handled by a +# definition. These values also provide defaults for +# any containers you may define later in the file. +# +# All of these directives may appear inside containers, +# in which case these default settings will be overridden for the +# virtual host being defined. +# + + + # + # ServerAdmin: Your address, where problems with the server should be + # e-mailed. This address appears on some server-generated pages, such + # as error documents. e.g. admin@your-domain.com + # + ServerAdmin your@localhost + + # + # ServerName gives the name and port that the server uses to identify itself. + # This can often be determined automatically, but we recommend you specify + # it explicitly to prevent problems during startup. + # + # If your host doesn't have a registered DNS name, enter its IP address here. + # + #ServerName www.example.com:80 + + # + # DocumentRoot: The directory out of which you will serve your + # documents. By default, all requests are taken from this directory, but + # symbolic links and aliases may be used to point to other locations. + # + DocumentRoot "@exp_htdocsdir@" + + # + # Each directory to which Apache has access can be configured with respect + # to which services and features are allowed and/or disabled in that + # directory (and its subdirectories). + # + # First, we configure the "default" to be a very restrictive set of + # features. + # + + # Summary: Configure for all dirs by default + # Requires: Directory-root + Include @rel_sysconfdir@/include/Directory_root_default.conf + + + # + # Note that from this point forward you must specifically allow + # particular features to be enabled - so if something's not working as + # you might expect, make sure that you have specifically enabled it + # below. + # + + # + # This should be changed to whatever you set DocumentRoot to. + # + + # Summary: Configure for html documents in DocumentRoot + # Requires: Directory-html + Include @rel_sysconfdir@/include/Directory_html_default.conf + + + # + # ErrorLog: The location of the error log file. + # If you do not specify an ErrorLog directive within a + # container, error messages relating to that virtual host will be + # logged here. If you *do* define an error logfile for a + # container, that host's errors will be logged there and not here. + # + ErrorLog @rel_logfiledir@/error_log + + # + # LogLevel: Control the number of messages logged to the error_log. + # Possible values include: debug, info, notice, warn, error, crit, + # alert, emerg. + # + LogLevel warn + + + # + # The location and format of the access logfile (Common Logfile Format). + # If you do not define any access logfiles within a + # container, they will be logged here. Contrariwise, if you *do* + # define per- access logfiles, transactions will be + # logged therein and *not* in this file. + # + CustomLog @rel_logfiledir@/access_log common + + # + # If you prefer a logfile with access, agent, and referer information + # (Combined Logfile Format) you can use the following directive. + # + #CustomLog @rel_logfiledir@/access_log combined + + + + # + # Redirect: Allows you to tell clients about documents that used to + # exist in your server's namespace, but do not anymore. The client + # will make a new request for the document at its new location. + # Example: + # Redirect permanent /foo http://www.example.com/bar + + # + # Alias: Maps web paths into filesystem paths and is used to + # access content that does not live under the DocumentRoot. + # Example: + # Alias /webpath /full/filesystem/path + # + # If you include a trailing / on /webpath then the server will + # require it to be present in the URL. You will also likely + # need to provide a section to allow access to + # the filesystem path. + + # + # ScriptAlias: This controls which directories contain server scripts. + # ScriptAliases are essentially the same as Aliases, except that + # documents in the target directory are treated as applications and + # run by the server when requested rather than as documents sent to the + # client. The same rules about trailing "/" apply to ScriptAlias + # directives as to Alias. + # + ScriptAlias /cgi-bin/ "@exp_cgidir@/" + + + + # + # "@exp_cgidir@" should be changed to whatever your ScriptAliased + # CGI directory exists, if you have that configured. + # + + # Summary: Configure for default CGI directory + # Requires: Directory-cgi + Include @rel_sysconfdir@/include/Directory_cgibin_default.conf + + diff --git httpd/docs/conf/sites-available/default_https.conf.in httpd/docs/conf/sites-available/default_https.conf.in new file mode 100644 index 000000000..256afae70 --- /dev/null +++ httpd/docs/conf/sites-available/default_https.conf.in @@ -0,0 +1,203 @@ +# +# Summary: Default server configuration for https +# Provides: VirtualHost +# Provides: VirtualHost-https +# Provides: VirtualHost-https-default +# + +# +# This is the Apache server configuration file providing SSL support. +# It contains the configuration directives to instruct the server how to +# serve pages over an https connection. For detailing information about these +# directives see +# +# Do NOT simply read the instructions in here without understanding +# what they do. They're here only as hints or reminders. If you are unsure +# consult the online docs. You have been warned. +# + + + ## + ## SSL Virtual Host Context + ## + + + + # General setup for the virtual host + DocumentRoot "@exp_htdocsdir@" + ServerName www.example.com:@@SSLPort@@ + ServerAdmin you@example.com + ErrorLog "@exp_logfiledir@/error_log" + TransferLog "@exp_logfiledir@/access_log" + + # SSL Engine Switch: + # Enable/Disable SSL for this virtual host. + SSLEngine on + + # SSL Protocol support: + # List the protocol versions which clients are allowed to + # connect with. Disable SSLv2 by default (cf. RFC 6176). + SSLProtocol all -SSLv2 + + # SSL Cipher Suite: + # List the ciphers that the client is permitted to negotiate. + # See the mod_ssl documentation for a complete list. + SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 + + # Speed-optimized SSL Cipher configuration: + # If speed is your main concern (on busy HTTPS servers e.g.), + # you might want to force clients to specific, performance + # optimized ciphers. In this case, prepend those ciphers + # to the SSLCipherSuite list, and enable SSLHonorCipherOrder. + # Caveat: by giving precedence to RC4-SHA and AES128-SHA + # (as in the example below), most connections will no longer + # have perfect forward secrecy - if the server's key is + # compromised, captures of past or future traffic must be + # considered compromised, too. + #SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5 + #SSLHonorCipherOrder on + + # Server Certificate: + # Point SSLCertificateFile at a PEM encoded certificate. If + # the certificate is encrypted, then you will be prompted for a + # pass phrase. Note that a kill -HUP will prompt again. Keep + # in mind that if you have both an RSA and a DSA certificate you + # can configure both in parallel (to also allow the use of DSA + # ciphers, etc.) + SSLCertificateFile "@@SSLCertificateFile@@" + #SSLCertificateFile "@@SSLCertificateFile-dsa@@" + + # Server Private Key: + # If the key is not combined with the certificate, use this + # directive to point at the key file. Keep in mind that if + # you've both a RSA and a DSA private key you can configure + # both in parallel (to also allow the use of DSA ciphers, etc.) + SSLCertificateKeyFile "@@SSLCertificateKeyFile@@" + #SSLCertificateKeyFile "@@SSLCertificateKeyFile-dsa@@" + + # Server Certificate Chain: + # Point SSLCertificateChainFile at a file containing the + # concatenation of PEM encoded CA certificates which form the + # certificate chain for the server certificate. Alternatively + # the referenced file can be the same as SSLCertificateFile + # when the CA certificates are directly appended to the server + # certificate for convinience. + #SSLCertificateChainFile "@@SSLCertificateChainFile@@" + + # Certificate Authority (CA): + # Set the CA certificate verification path where to find CA + # certificates for client authentication or alternatively one + # huge file containing all of them (file must be PEM encoded) + # Note: Inside SSLCACertificatePath you need hash symlinks + # to point to the certificate files. Use the provided + # Makefile to update the hash symlinks after changes. + #SSLCACertificatePath "@@SSLCACertificatePath@@" + #SSLCACertificateFile "@@SSLCACertificateFile@@" + + # Certificate Revocation Lists (CRL): + # Set the CA revocation path where to find CA CRLs for client + # authentication or alternatively one huge file containing all + # of them (file must be PEM encoded) + # Note: Inside SSLCARevocationPath you need hash symlinks + # to point to the certificate files. Use the provided + # Makefile to update the hash symlinks after changes. + #SSLCARevocationPath "@@SSLCARevocationPath@@" + #SSLCARevocationFile "@@SSLCARevocationFile@@" + + # Client Authentication (Type): + # Client certificate verification type and depth. Types are + # none, optional, require and optional_no_ca. Depth is a + # number which specifies how deeply to verify the certificate + # issuer chain before deciding the certificate is not valid. + #SSLVerifyClient require + #SSLVerifyDepth 10 + + # Access Control: + # With SSLRequire you can do per-directory access control based + # on arbitrary complex boolean expressions containing server + # variable checks and other lookup directives. The syntax is a + # mixture between C and Perl. See the mod_ssl documentation + # for more details. + # + # SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \ + # and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ + # and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \ + # and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \ + # and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \ + # or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/ + # + + # SSL Engine Options: + # Set various options for the SSL engine. + # o FakeBasicAuth: + # Translate the client X.509 into a Basic Authorisation. This means that + # the standard Auth/DBMAuth methods can be used for access control. The + # user name is the `one line' version of the client's X.509 certificate. + # Note that no password is obtained from the user. Every entry in the user + # file needs this password: `xxj31ZMTZzkVA'. + # o ExportCertData: + # This exports two additional environment variables: SSL_CLIENT_CERT and + # SSL_SERVER_CERT. These contain the PEM-encoded certificates of the + # server (always existing) and the client (only existing when client + # authentication is used). This can be used to import the certificates + # into CGI scripts. + # o StdEnvVars: + # This exports the standard SSL/TLS related `SSL_*' environment variables. + # Per default this exportation is switched off for performance reasons, + # because the extraction step is an expensive operation and is usually + # useless for serving static content. So one usually enables the + # exportation for CGI and SSI requests only. + # o StrictRequire: + # This denies access when "SSLRequireSSL" or "SSLRequire" applied even + # under a "Satisfy any" situation, i.e. when it applies access is denied + # and no other module can change it. + # o OptRenegotiate: + # This enables optimized SSL connection renegotiation handling when SSL + # directives are used in per-directory context. + #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire + + SSLOptions +StdEnvVars + + + SSLOptions +StdEnvVars + + + + # SSL Protocol Adjustments: + # The safe and default but still SSL/TLS standard compliant shutdown + # approach is that mod_ssl sends the close notify alert but doesn't wait for + # the close notify alert from client. When you need a different shutdown + # approach you can use one of the following variables: + # o ssl-unclean-shutdown: + # This forces an unclean shutdown when the connection is closed, i.e. no + # SSL close notify alert is send or allowed to received. This violates + # the SSL/TLS standard but is needed for some brain-dead browsers. Use + # this when you receive I/O errors because of the standard approach where + # mod_ssl sends the close notify alert. + # o ssl-accurate-shutdown: + # This forces an accurate shutdown when the connection is closed, i.e. a + # SSL close notify alert is send and mod_ssl waits for the close notify + # alert of the client. This is 100% SSL/TLS standard compliant, but in + # practice often causes hanging connections with brain-dead browsers. Use + # this only for browsers where you know that their SSL implementation + # works correctly. + # Notice: Most problems of broken clients are also related to the HTTP + # keep-alive facility, so you usually additionally want to disable + # keep-alive for those clients, too. Use variable "nokeepalive" for this. + # Similarly, one has to force some clients to use HTTP/1.0 to workaround + # their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and + # "force-response-1.0" for this. + BrowserMatch "MSIE [2-5]" \ + nokeepalive ssl-unclean-shutdown \ + downgrade-1.0 force-response-1.0 + + + + # Per-Server Logging: + # The home of a custom SSL log file. Use this when you want a + # compact non-error SSL logfile on a virtual host basis. + CustomLog "@exp_logfiledir@/ssl_request_log" \ + "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" + + + diff --git httpd/docs/conf/sites-available/vhosts.conf.in httpd/docs/conf/sites-available/vhosts.conf.in new file mode 100644 index 000000000..dfbc515c2 --- /dev/null +++ httpd/docs/conf/sites-available/vhosts.conf.in @@ -0,0 +1,47 @@ +# +# Summary: Use name-based virtual hosting for *:@@Port@@ +# Provides: NameVirtualHost +# + +# +# Virtual Hosts +# +# If you want to maintain multiple domains/hostnames on your +# machine you can setup VirtualHost containers for them. Most configurations +# use only name-based virtual hosts so the server doesn't need to worry about +# IP addresses. This is indicated by the asterisks in the directives below. +# +# Please see the documentation at +# +# for further details before you try to setup virtual hosts. +# +# You may use the command line option '-S' to verify your virtual host +# configuration. + +# +# Use name-based virtual hosting. +# +NameVirtualHost *:@@Port@@ + +# +# VirtualHost example: +# Almost any Apache directive may go into a VirtualHost container. +# The first VirtualHost section is used for all requests that do not +# match a ServerName or ServerAlias in any block. +# +# +# ServerAdmin webmaster@dummy-host.example.com +# DocumentRoot "@vhosts_dir@/dummy-host.example.com" +# ServerName dummy-host.example.com +# ServerAlias www.dummy-host.example.com +# ErrorLog "@rel_logfiledir@/dummy-host.example.com-error_log" +# CustomLog "@rel_logfiledir@/dummy-host.example.com-access_log common" +# +# +# +# ServerAdmin webmaster@dummy-host2.example.com +# DocumentRoot "@vhosts_dir@/dummy-host.example.com" +# ServerName dummy-host2.example.com +# ErrorLog "@rel_logfiledir@/dummy-host2.example.com-error_log" +# CustomLog "@rel_logfiledir@/dummy-host2.example.com-access_log common" +# diff --git httpd/docs/man/a2chkconfig.8 httpd/docs/man/a2chkconfig.8 new file mode 100644 index 000000000..bcda395bb --- /dev/null +++ httpd/docs/man/a2chkconfig.8 @@ -0,0 +1,39 @@ +.TH "A2CHKCONFIG" 8 "2007-04-06" "Apache HTTP Server" "a2chkconfig" + +.SH NAME +.B a2chkconfig +is an utility for apache2 autostart modification. + +.SH "SYNOPSIS" +.PP +.B a2chkconfig + +.SH "SUMMARY" +.B a2chkconfig +reads configuration files from conf/*-start.d/* and creates or removes symbolic links in corresponding /etc/httpd2/conf/*-enabled. + +Syntax of configuration files in directories conf/*-start.d: + +NAME={yes,no} + +where NAME is a filename in corresponding conf/*-available. + +.SH "EXAMPLE" +If you want to disable mod_alias you have to edit file /etc/httpd2/conf/mods-start.d/000-default.conf and change parameter alias to "no". You can see that symbolic link "alias.load" removed from directory /etc/httpd2/conf/mods-enabled.d + +.SH "BUGS" +Configuration files in conf/*-start.d/* must have new line at the end of file. + +.SH "AUTHOR" +Written by Andrew Avramenko with help of Aleksey Avdeev. + +.SH "COPYRIGHT" +Copyright \(co 2007. ALT Linux TEAM. +.br + +.br +This is free software. You may redistribute copies of it under the terms of the GNU General Public License +. There is NO WARRANTY, to the extent permitted by law. + +.SH "SEE ALSO" +.B a2enmod(8) a2dismod(8) a2enextra(8) a2disextra(8) a2ensite(8) a2dissite(8) apachectl(8) diff --git httpd/docs/man/a2dismod.8 httpd/docs/man/a2dismod.8 new file mode 100644 index 000000000..302eac1b8 --- /dev/null +++ httpd/docs/man/a2dismod.8 @@ -0,0 +1 @@ +.so man8/a2enmod.8 diff --git httpd/docs/man/a2enmod.8 httpd/docs/man/a2enmod.8 new file mode 100644 index 000000000..1649a55ca --- /dev/null +++ httpd/docs/man/a2enmod.8 @@ -0,0 +1,73 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH A2ENMOD 8 "12 October 2006" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +a2enmod, a2dismod \- enable or disable an apache2 module +.SH SYNOPSIS +.B a2enmod +.RI [ module ] +.PP +.B a2dismod +.RI [ module ] +.SH DESCRIPTION +This manual page documents briefly the +.B a2enmod +and +.B a2dismod +commands. +.PP +.B a2enmod +is a script that enables the specified module within the +.B apache2 +configuration. It does this by creating symlinks within +.BR /etc/apache2/mods-enabled . +Likewise, +.B a2dismod +disables a module by removing those symlinks. It is not an error to +enable a module which is already enabled, or to disable one which is +already disabled. +.SH NOTE +.B a2enmod +also enables the module in the conf/mods-start.d/* files to prevent the module explicitly enabled from being disabled after update. +.B a2dismod +disables module in conf/mods-start.d/* for the same reason. +.SH EXAMPLES +.RS +.B "a2enmod imagemap" +.br +.B "a2dismod mime_magic" +.RE +.PP +Enables the +.B mod_imagemap +module, and disables the +.B mod_mime_magic +module. +.SH FILES +.TP +.B /etc/apache2/mods-available +Directory with files giving information on available modules. +.TP +.B /etc/apache2/mods-enabled +Directory with links to the files in +.B mods-available +for enabled modules. +.SH "SEE ALSO" +.BR apache2ctl (8). +.SH AUTHOR +This manual page was written by Daniel Stone for the Debian +GNU/Linux distribution, as it is a Debian-specific script with the package. diff --git httpd/docs/man/check_forensic.8 httpd/docs/man/check_forensic.8 new file mode 100644 index 000000000..afb8fcd62 --- /dev/null +++ httpd/docs/man/check_forensic.8 @@ -0,0 +1,15 @@ +.TH check_forensic 8 +.SH NAME +check_forensic \- tool to extract mod_log_forensic output from apache log files +.SH SYNOPSIS +.B check_forensic + +.SH "DESCRIPTION" +chech_forensic is a simple shell script designed to help apache administrators +to extract mod_log_forensic output from apache, apache-ssl and apache-perl +log files. +.PP +.SH AUTHOR +This manual page was written by Fabio M. Di Nitto +, for the Debian GNU/Linux system +(but may be used by others). diff --git httpd/docs/man/checkgid.8 httpd/docs/man/checkgid.8 new file mode 100644 index 000000000..6dfab9c2c --- /dev/null +++ httpd/docs/man/checkgid.8 @@ -0,0 +1,36 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH CHECKGID 8 "November 3rd, 2001" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +checkgid \- checks the gid +.SH SYNOPSIS +.B checkgid group +.SH DESCRIPTION +This manual page documents briefly the +.B checkgid +command. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +\fBcheckgid\fP is a program that checks whether it can setgid to the group +specified. This is to see if it is a valid group for apache2 to use at runtime. +If the user (should be run as superuser) is in that group, or can setgid to it, +it will return 0. +.SH AUTHOR +This manual page was written by Daniel Stone for the Debian +GNU/Linux distribution, as the original did not have a manpage. diff --git httpd/support/a2chkconfig.in httpd/support/a2chkconfig.in new file mode 100644 index 000000000..32dd4034c --- /dev/null +++ httpd/support/a2chkconfig.in @@ -0,0 +1,55 @@ +#!/bin/sh -e + +SYSCONFDIR='@exp_sysconfdir@' +SBINDIR='@sbindir@' + +GetNameUtil() +{ + local d="$1" + local f="$2" + local com suf + case "x$f" in + x[yY][eE][sS]) + com="en" + ;; + x[nN][oO]) + com="dis" + ;; + *) + return -1 + ;; + esac + case "x$d" in + xmods) + suf="mod" + ;; + xports) + suf="port" + ;; + xsites) + suf="site" + ;; + xextra) + suf="extra" + ;; + *) + return -1 + ;; + esac + printf 'a2%s%s' $com $suf +} + + +SetLinks() +{ + local d n f com + $SBINDIR/a2chkconfig_list | \ + while read d n f; do + com=`GetNameUtil $d $f` + $SBINDIR/$com $n ||: + done +} + +SetLinks + +find -L $SYSCONFDIR/*-enabled -maxdepth 1 -type l -delete diff --git httpd/support/a2chkconfig_list.in httpd/support/a2chkconfig_list.in new file mode 100644 index 000000000..3b7e86de4 --- /dev/null +++ httpd/support/a2chkconfig_list.in @@ -0,0 +1,94 @@ +#!/bin/sh -e + +SYSCONFDIR='@exp_sysconfdir@' + +SetVar() +{ + local s n f vn p + p="$1" + shift + s="$@" + s=`echo "$s" | \ + sed -ne '/^[[:space:]]*[0-9a-zA-Z._-]\{1,\}\(=\|[[:space:]]\{1,\}\)\([Yy][Ee][Ss]\|[Nn][Oo]\)\([[:space:]].*\|\)$/s/^[[:space:]]*\([0-9a-zA-Z._-]\{1,\}\)\(=\|[[:space:]]\{1,\}\)\([Yy][Ee][Ss]\|[Nn][Oo]\)\([[:space:]].*\|\)$/\1 \3/p'` + if [ "x$s" == "x" ]; then + continue + fi + f=`echo $s | cut -d" " -f2` + n=`echo $s | cut -d" " -f1` + vn=`echo "$n" | sed -e 's/[-.]/_/g'` + eval ${p}_FILE_$vn=$n + eval ${p}_$vn=$f +} + +SetVars() +{ + local c s d p + d="$1" + p="$2" + for c in $SYSCONFDIR/$d-start.d/*.conf; do + if [ ! -f "$c" ]; then + break + fi + while read s; do + SetVar "$p" "$s" + done < "$c" + SetVar "$p" "$s" + done +} + +PrintConf() +{ + local c s n f vn d p e + d="$1" + p="$2" + r="$3" + for vn in `ls -1 --quoting-style=shell $SYSCONFDIR/$d-available/*.$r 2>/dev/null | \ + sed -e "s,$SYSCONFDIR/$d-available/\(.*\).$r,\1,g" -e "s/[-.]/_/g"`; do + local pvn pfvn rez + pvn=${p}_$vn + pfvn=${p}_FILE_$vn + eval f=\$$pvn + eval n=\$$pfvn + case "x$f" in + x[yY][eE][sS]) + rez="yes" + ;; + x[nN][oO]) + rez="no" + ;; + *) + continue + ;; + esac + echo "$d $n $rez" + done +} + +case "x$1" in + xmods) + SetVars mods MOD + PrintConf mods MOD load + ;; + xports) + SetVars ports PORT + PrintConf ports PORT conf + ;; + xsites) + SetVars sites SITE + PrintConf sites SITE conf + ;; + xextra) + SetVars extra EXTRA + PrintConf extra EXTRA conf + ;; + *) + SetVars ports PORT + PrintConf ports PORT conf + SetVars extra EXTRA + PrintConf extra EXTRA conf + SetVars sites SITE + PrintConf sites SITE conf + SetVars mods MOD + PrintConf mods MOD load + ;; +esac diff --git httpd/support/a2disextra.in httpd/support/a2disextra.in new file mode 100644 index 000000000..123732caf --- /dev/null +++ httpd/support/a2disextra.in @@ -0,0 +1,23 @@ +#!/bin/sh -e + +SYSCONFDIR='@exp_sysconfdir@' + +if [ -z "$1" ]; then + echo "Which extra config would you like to disable?" + echo -n "Your choices are: " + ls $SYSCONFDIR/extra-enabled/*.conf | \ + sed -e "s,$SYSCONFDIR/extra-enabled/\(.*\).conf,\1,g" | xargs echo + echo -n "Extra config name? " + read CONFNAME +else + CONFNAME=$1 +fi + +if ! [ -e "$SYSCONFDIR/extra-enabled/$CONFNAME.conf" ]; then + echo "Extra config $CONFNAME.conf is already disabled, or does not exist!" + exit 1 +fi + +rm "$SYSCONFDIR/extra-enabled/$CONFNAME.conf" 2>/dev/null +echo "Extra config $CONFNAME disabled;" +echo " run service httpd2 condreload to fully disable." diff --git httpd/support/a2dismod.in httpd/support/a2dismod.in new file mode 100644 index 000000000..506384f49 --- /dev/null +++ httpd/support/a2dismod.in @@ -0,0 +1,41 @@ +#!/bin/sh -e + +SYSCONFDIR='@exp_sysconfdir@' + +if [ -z "$1" ]; then + echo "Which module would you like to disable?" + echo -n "Your choices are: " + ls $SYSCONFDIR/mods-enabled/*.load | \ + sed -e "s,$SYSCONFDIR/mods-enabled/,,g" | sed -e 's/\.load$//g;' | xargs echo + echo -n "Module name? " + read MODNAME +else + MODNAME=$1 +fi + +DEPENDS=`grep -l "# Depends:.*$MODNAME" $SYSCONFDIR/mods-enabled/*.load| sed -e "s,$SYSCONFDIR/mods-enabled/,,g" | sed -e 's/\.load$//g;'` +#for i in $DEPENDS; do +# a2dismod ${i%.load}; +#done +if [ ! -z "$DEPENDS" ]; then + echo "The following modules depend on the module you requested be uninstalled:" + echo "$DEPENDS" + echo "Please uninstall these first" + exit 1 +fi + +if ! [ -L "$SYSCONFDIR/mods-enabled/$MODNAME.load" ]; then + if [ -e "$SYSCONFDIR/mods-available/$MODNAME.load" ]; then + rm -f $SYSCONFDIR/mods-enabled/$MODNAME.* + echo "Module $MODNAME already disabled" + exit 0 + fi + rm -f $SYSCONFDIR/mods-enabled/$MODNAME.* + echo "Module $MODNAME does not exist!" + exit 1 +fi + +rm -f $SYSCONFDIR/mods-enabled/$MODNAME.* +sed -i -e "s/^$MODNAME=yes/$MODNAME=no/" $SYSCONFDIR/mods-start.d/*.conf +echo "Module $MODNAME disabled;" +echo " run service httpd2 condreload to fully disable." diff --git httpd/support/a2disport.in httpd/support/a2disport.in new file mode 100644 index 000000000..599277b63 --- /dev/null +++ httpd/support/a2disport.in @@ -0,0 +1,23 @@ +#!/bin/sh -e + +SYSCONFDIR='@exp_sysconfdir@' + +if [ -z "$1" ]; then + echo "Which port config would you like to disable?" + echo -n "Your choices are: " + ls $SYSCONFDIR/ports-enabled/*.conf | \ + sed -e "s,$SYSCONFDIR/ports-enabled/\(.*\).conf,\1,g" | xargs echo + echo -n "Port config name? " + read CONFNAME +else + CONFNAME=$1 +fi + +if ! [ -e "$SYSCONFDIR/ports-enabled/$CONFNAME.conf" ]; then + echo "Port config $CONFNAME.conf is already disabled, or does not exist!" + exit 1 +fi + +rm "$SYSCONFDIR/ports-enabled/$CONFNAME.conf" 2>/dev/null +echo "Port config $CONFNAME disabled;" +echo " run service httpd2 condreload to fully disable." diff --git httpd/support/a2dissite.in httpd/support/a2dissite.in new file mode 100644 index 000000000..c5a8fc1c7 --- /dev/null +++ httpd/support/a2dissite.in @@ -0,0 +1,30 @@ +#!/bin/sh -e + +SYSCONFDIR='@exp_sysconfdir@' + +if [ -z "$1" ]; then + echo "Which site would you like to disable?" + echo -n "Your choices are: " + ls $SYSCONFDIR/sites-enabled/*.conf | \ + sed -e "s,$SYSCONFDIR/sites-enabled/\(.*\).conf,\1,g" | xargs echo + echo -n "Site name? " + read SITENAME +else + SITENAME=$1 +fi + +if [ ${SITENAME:0:7} = "default" ]; then + PRIORITY="000" +fi + +if ! [ -e "$SYSCONFDIR/sites-enabled/$SITENAME.conf" -o \ + -e "$SYSCONFDIR/sites-enabled/$PRIORITY-$SITENAME.conf" ]; then + echo "Site config $CONFNAME.conf is already disabled, or does not exist!" + exit 1 +fi + +if ! rm "$SYSCONFDIR/sites-enabled/$SITENAME.conf" 2>/dev/null; then + rm -f "$SYSCONFDIR/sites-enabled/$PRIORITY-$SITENAME.conf" +fi +echo "Site $SITENAME disabled;" +echo " run service httpd2 condreload to fully disable." diff --git httpd/support/a2enextra.in httpd/support/a2enextra.in new file mode 100644 index 000000000..9211d5e1b --- /dev/null +++ httpd/support/a2enextra.in @@ -0,0 +1,31 @@ +#!/bin/sh -e + +SYSCONFDIR='@exp_sysconfdir@' + +if [ -z "$1" ]; then + echo "Which extra config would you like to enable?" + echo -n "Your choices are: " + ls $SYSCONFDIR/extra-available/*.conf | \ + sed -e "s,$SYSCONFDIR/extra-available/\(.*\).conf,\1,g" | xargs echo + echo -n "Extra config name? " + read CONFNAME +else + CONFNAME=$1 +fi + +if [ -e "$SYSCONFDIR/extra-enabled/$CONFNAME.conf" -o \ + -e "$SYSCONFDIR/extra-enabled/$PRIORITY-$CONFNAME.conf" ]; then + echo "Extra config $CONFNAME.conf is already enabled!" + exit 0 +fi + +if ! [ -e "$SYSCONFDIR/extra-available/$CONFNAME.conf" ]; then + echo "Extra config $CONFNAME.conf does not exist!" + exit 1 +fi + +ln -sf ../extra-available/$CONFNAME.conf \ + "$SYSCONFDIR/extra-enabled/$CONFNAME.conf" + +echo "Extra config $CONFNAME installed;" +echo " run service httpd2 condreload to fully enable." diff --git httpd/support/a2enmod.in httpd/support/a2enmod.in new file mode 100644 index 000000000..efc353416 --- /dev/null +++ httpd/support/a2enmod.in @@ -0,0 +1,45 @@ +#!/bin/sh -e + +SYSCONFDIR='@exp_sysconfdir@' + +if [ -z "$1" ]; then + echo "Which module would you like to enable?" + echo -n "Your choices are: " + ls $SYSCONFDIR/mods-available/*.load | \ + sed -e "s,$SYSCONFDIR/mods-available/,,g" | sed -e 's/\.load$//g;' | xargs echo + echo -n "Module name? " + read MODNAME +else + MODNAME=$1 +fi + +if ! [ -e "$SYSCONFDIR/mods-available/$MODNAME.load" ]; then + echo "File $MODNAME.load does not exist!" + exit 1 +fi + +# Set depends +DEPENDS=`grep "# Depends:" $SYSCONFDIR/mods-available/$MODNAME.load|cut -f2 -d:` +if [ ! -z "$DEPENDS" ]; then + for i in $DEPENDS; do + echo "Enabling $i as a dependency" + /usr/sbin/a2enmod "$i"; + done +fi + +# Set this module +if [ -e "$SYSCONFDIR/mods-enabled/$MODNAME.load" ]; then + echo "Module $MODNAME is already enabled!" +else + cd "$SYSCONFDIR/mods-enabled"; + ln -sf ../mods-available/$MODNAME.load "$MODNAME.load"; +fi + +if [ -e "$SYSCONFDIR/mods-available/$MODNAME.conf" -a ! -e "$SYSCONFDIR/mods-enabled/$MODNAME.conf" ]; then + cd "$SYSCONFDIR/mods-enabled"; + ln -sf ../mods-available/$MODNAME.conf "$MODNAME.conf"; +fi + +sed -i -e "s/^$MODNAME=no/$MODNAME=yes/" $SYSCONFDIR/mods-start.d/*.conf +echo "Module $MODNAME installed;" +echo " run service httpd2 condreload to fully enable." diff --git httpd/support/a2enport.in httpd/support/a2enport.in new file mode 100644 index 000000000..2d502eb66 --- /dev/null +++ httpd/support/a2enport.in @@ -0,0 +1,30 @@ +#!/bin/sh -e + +SYSCONFDIR='@exp_sysconfdir@' + +if [ -z "$1" ]; then + echo "Which port config would you like to enable?" + echo -n "Your choices are: " + ls $SYSCONFDIR/ports-available/*.conf | \ + sed -e "s,$SYSCONFDIR/ports-available/\(.*\).conf,\1,g" | xargs echo + echo -n "Port config name? " + read CONFNAME +else + CONFNAME=$1 +fi + +if [ -e "$SYSCONFDIR/ports-enabled/$CONFNAME.conf" ]; then + echo "Port config $CONFNAME.conf is already enabled!" + exit 0 +fi + +if ! [ -e "$SYSCONFDIR/ports-available/$CONFNAME.conf" ]; then + echo "Port config $CONFNAME.conf does not exist!" + exit 1 +fi + +ln -sf ../ports-available/$CONFNAME.conf \ + $SYSCONFDIR/ports-enabled/$CONFNAME.conf + +echo "Port config $CONFNAME installed;" +echo " run service httpd2 condreload to fully enable." diff --git httpd/support/a2ensite.in httpd/support/a2ensite.in new file mode 100644 index 000000000..6986042b3 --- /dev/null +++ httpd/support/a2ensite.in @@ -0,0 +1,40 @@ +#!/bin/sh -e + +SYSCONFDIR='@exp_sysconfdir@' + +if [ -z "$1" ]; then + echo "Which site would you like to enable?" + echo -n "Your choices are: " + ls $SYSCONFDIR/sites-available/*.conf | \ + sed -e "s,$SYSCONFDIR/sites-available/\(.*\).conf,\1,g" | xargs echo + echo -n "Site name? " + read SITENAME +else + SITENAME="$1" +fi + +if [ "${SITENAME:0:7}" = "default" ]; then + PRIORITY="000" +fi + +if [ -e "$SYSCONFDIR/sites-enabled/$SITENAME.conf" -o \ + -e "$SYSCONFDIR/sites-enabled/$PRIORITY-$SITENAME.conf" ]; then + echo "Site config $CONFNAME.confThis site is already enabled!" + exit 0 +fi + +if ! [ -e "$SYSCONFDIR/sites-available/$SITENAME.conf" ]; then + echo "Site config $CONFNAME.conf does not exist!" + exit 1 +fi + +if [ "$PRIORITY" = "000" ]; then + ln -sf ../sites-available/$SITENAME.conf \ + "$SYSCONFDIR/sites-enabled/$PRIORITY-$SITENAME.conf" +else + ln -sf ../sites-available/$SITENAME.conf \ + "$SYSCONFDIR/sites-enabled/$SITENAME.conf" +fi + +echo "Site $SITENAME installed;" +echo " run service httpd2 condreload to fully enable." diff --git httpd/support/check_forensic.in httpd/support/check_forensic.in new file mode 100644 index 000000000..3c8123fcb --- /dev/null +++ httpd/support/check_forensic.in @@ -0,0 +1,51 @@ +#!/bin/sh + +# check_forensic + +# check the forensic log for requests that did not complete +# output the request log for each one + +F=$1 + +temp_create_method=file +if test -f `which mktemp`; then + temp_create_method=mktemp +elif test -f `which tempfile`; then + temp_create_method=tempfile +fi + +create_temp() +{ + prefix=$1 + case "$temp_create_method" in + file) + name="/tmp/$1.$$" + ;; + mktemp) + name=`mktemp -t $1.XXXXXX` + ;; + tempfile) + name=`tempfile --prefix=$1` + ;; + *) + echo "$0: Cannot create temporary file" + exit 1 + ;; + esac +} + +create_temp fcall +all=$name +create_temp fcin +in=$name +create_temp fcout +out=$name +trap "rm -f -- \"$all\" \"$in\" \"$out\";" 0 1 2 3 13 15 + +cut -f 1 -d '|' $F > $all +grep + < $all | cut -c2- | sort > $in +grep -- - < $all | cut -c2- | sort > $out + +# use -i instead of -I for GNU xargs +join -v 1 $in $out | xargs -I xx egrep "^\\+xx" $F +exit 0 diff --git httpd/support/modhandler.py.in httpd/support/modhandler.py.in new file mode 100644 index 000000000..5bbd8f86a --- /dev/null +++ httpd/support/modhandler.py.in @@ -0,0 +1,190 @@ +#!/usr/bin/env python +# Copyright (C) Thom May 2002 +#All rights reserved. + +#Redistribution and use in source and binary forms, with or without +#modification, are permitted provided that the following conditions +#are met: +#1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +#2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. + +#THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +#IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +#OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +#IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +#NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +#THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +#THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#TODO: add --force option + +import shelve, textwrap + +__all__ = ["ModHandler", "ModHandlerException", "ModuleAlreadyExists", "NoSuchModule"] + +class ModHandlerException(Exception): + pass + +class ModuleAlreadyExists(ModHandlerException): + def __init__(self, name): + self.args = name + self.name = name + +class NoSuchModule(ModHandlerException): + def __init__(self, name): + self.args = name + self.name = name + +class ModHandler: + def __init__(self, db): + self.registry = shelve.open(db,"c",writeback=True) + self.revision = "$LastChangedRevision: 19 $" + + def add(self,module,sequence=99,*dependencies): + """add(module[, sequence, *dependencies]) + + Add a module into the registry ready for enabling. + module is the name of the module + sequence is the sequence number of the module. The default is 99 + any further arguments define dependencies for the module""" + + if __debug__: print "The module is", module, "and the sequence number is",sequence,"\n" + state = "disabled" + #now we create a tuple + # name, sequence, state, [dependencies] + if len(dependencies) > 0: + entry = module, sequence, state, 0, dependencies + else: + entry = module, sequence, state, 0 + + if self.registry.has_key(module): + raise ModuleAlreadyExists(module) + + self.registry[module] = entry + return 0 + + def dolist(self): + """dolist (no arguments) + lists all the current elements in the database.""" + + for key in self.registry.keys(): + print textwrap.fill("The name of the key is %s and the data in the key is: %s" % (key , self.registry[key][:3])) + if len(self.registry[key]) > 4: + print textwrap.fill("The dependencies for %s are: %s\n" % (key , self.registry[key][4])) + if self.registry[key][3] > 0: + print textwrap.fill("%s is in use %s times\n" % (key, self.registry[key][3])) + print + + def remove(self,module): + if __debug__: print "Plotting to remove",module,"\n" + try: + self.disable(module) + del self.registry[module] + if __debug__: print "Removed",module + except KeyError: + raise NoSuchModule(module) + return 0 + + def enable(self,module,isdependency=False,*dependseq): + """enable(module,[dependseq]) + + enable takes one or two arguments. in normal opperation, just the module + name is passed. When being run recursively to fix dependencies, the + dependency sequence of the depending module is also passed""" + + try: + data = self.registry[module] + except KeyError: + raise NoSuchModule(module) + + #now, we check to see if our sequence number is higher than the module that's depending on us + #if so, we bump our sequence number down to one less than the depending module + changedseqnum = True + seqnum = data[1] + if __debug__: print module+": seqnum "+str(seqnum) + if len(dependseq) > 0: + if __debug__: print module+": dependseq "+str(dependseq[0]) + if int(seqnum) > int(dependseq[0]): + oldseqnum = seqnum + seqnum = int(dependseq[0]) + seqnum = seqnum - 1 + if __debug__: + print module +": punting old seqnum:",str(oldseqnum)," to new seqnum:",str(seqnum) + print "new seqnum:",str(seqnum) + #changedseqnum = True + else: + changedseqnum = False + + #next, we need to load any dependencies. + #this is complicated by the need to get the sequence right. + if len(data) > 4: + dependencies = data[4] + if __debug__: print dependencies + for dependency in dependencies: + if __debug__: print dependency + returncode = self.enable(dependency,True,seqnum) + if __debug__: print returncode + + #now, we check whether the module is loaded already + if data[2] == "enabled" and changedseqnum == False: + #nothing more to do. + return + else: + self.switchon(module,seqnum) + + refcount = data[3] + if isdependency: + refcount += 1 + + #ok, nothing has broken. Only now do we update the module's status. + #it would be nice to provide some semblance of atomicity to the + #operation + if len(data) < 5: + newstatus = module, seqnum, "enabled", refcount + else: + newstatus = module, seqnum, "enabled", refcount, dependencies + + self.registry[module] = newstatus + + def disable(self,module): + """disable(module) marks a module as disabled""" + + #this might require some form of refcounting so we can work out if any + #unneeded dependencies can be unloaded as well, for example with mod_dav + #and its providers, such as dav_fs or dav_svn - but not till the basic + #functionality works ;-) + + + try: + data = self.registry[module] + except KeyError: + raise NoSuchModule(module) + if data[2] == "disabled": + return + + if __debug__: print "shutting",module,"down\n" + + #try: + self.switchoff(module,data[1]) + + if len(data) < 4: + newstatus = module, data[1], "disabled" + else: + newstatus = module, data[1], "disabled", data[3] + + self.registry[module] = newstatus + + def version(self, versionnum): + + print "The version of the client is",versionnum + print "The revision number of ModHandler is %s" % self.revision.strip('$').split(':')[1].strip() + + def switchon(self,module,seqnum): pass + + def switchoff(self,module): pass diff --git httpd/support/update-apache2-modules.in httpd/support/update-apache2-modules.in new file mode 100644 index 000000000..6021e38d7 --- /dev/null +++ httpd/support/update-apache2-modules.in @@ -0,0 +1,154 @@ +#!/usr/bin/env python +# Copyright (C) Thom May 2002 +#All rights reserved. + +#Redistribution and use in source and binary forms, with or without +#modification, are permitted provided that the following conditions +#are met: +#1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +#2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. + +#THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +#IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +#OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +#IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +#NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +#THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +#THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import getopt, sys, os +from modhandler import * + +versionnum = 0.8 +class A2ModHandler(ModHandler): + def switchon(self,module,seqnum): + if __debug__: print "switching on %s%s" % (seqnum,module) + availloadstring = "@rel_sysconfdir@/mods-available/"+module+".load" + enableloadstring = "@rel_sysconfdir@/mods-enabled/"+str(seqnum)+module+".load" + availconfstring = "@rel_sysconfdir@/mods-available/"+module+".conf" + enableconfstring = "@rel_sysconfdir@/mods-enabled/"+str(seqnum)+module+".conf" + if os.path.exists(availloadstring) and not os.path.exists(enableloadstring): + os.symlink(availloadstring,enableloadstring) + else: + return + + if os.path.exists(availconfstring) and not os.path.exists(enableconfstring): + os.symlink(availconfstring,enableconfstring) + else: + return + + + def switchoff(self,module,seqnum): + if __debug__: print "switching %s off" % (module,) + + enableloadstring = "@rel_sysconfdir@/mods-enabled/"+str(seqnum)+module+".load" + enableconfstring = "@rel_sysconfdir@/mods-enabled/"+str(seqnum)+module+".conf" + + if os.path.exists(enableloadstring): + os.unlink(enableloadstring) + else: + return + + if os.path.exists(enableconfstring): + os.unlink(enableconfstring) + else: + return + + +def main(): + if len(sys.argv) == 1: + usage() + sys.exit(2) + + mh = A2ModHandler("/var/lib/apache2/modules") + + name = os.path.split(sys.argv[0])[1] + if name == 'a2enmod': + mh.enable(sys.argv[1]) + if name == 'a2dismod': + mh.disable(sys.argv[1]) + + try: + opts, args = getopt.getopt(sys.argv[1:],"hlv" ,["add","disable","enable","help","list","remove","version","force"]) + except getopt.GetoptError: + usage() + sys.exit(2) + + for o,a in opts: + if o in ("-h", "--help"): + usage() + sys.exit() + if o in ("-v", "--version"): + mh.version(versionnum) + sys.exit() + if o == "--add": + try: + mh.add(*args) + except ModuleAlreadyExists: + print "Module has already been registered" + sys.exit(1) + except (IndexError, TypeError): + usage() + sys.exit(2) + if o == "--remove": + try: + mh.remove(args[0]) + except NoSuchModule: + print "No such module" + sys.exit(1) + except IndexError: + usage() + sys.exit(2) + if o == "--enable": + try: + mh.enable(args[0]) + except NoSuchModule: + print "No Such Module" + sys.exit(1) + except IndexError: + usage() + sys.exit(2) + if o == "--disable": + try: + mh.disable(args[0]) + except NoSuchModule: + print "No Such Module" + sys.exit(1) + except IndexError: + usage() + sys.exit(2) + if o in ("-l","--list"): + mh.dolist() + +def usage(): + """Print the usage statement + + Prints the correct list of arguments, and then exits. + """ + print "Debian update-apache2-modules", versionnum + print "Copyright (C) 2002 Thom May, under the BSD license." + msg = """ + +usage: update-apache2-modules --add [ ] + update-apache2-modules --remove + update-apache2-modules --enable + update-apache2-modules --disable + update-apache2-modules --list + + is the name of the module + is used to decide the order the modules are loaded in. + The default if no sequence number is specified is 99 + signifies any dependencies the module might have +""" + sys.stderr.write(msg) + return(0) + + +if __name__ == '__main__': + main()