<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
font-family:"Calibri","sans-serif";}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hello all,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We have had some partial success in getting ArchivesSpace services setup as named virtual hosts<o:p></o:p></p>
<p class="MsoNormal">under Apache. But we have some problems that we need help with.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Our goals:<o:p></o:p></p>
<p class="MsoNormal"> - Provide separate URLS for staff login vs public interface;<o:p></o:p></p>
<p class="MsoNormal"> - Secure login to staff interface from off-campus;<o:p></o:p></p>
<p class="MsoNormal"> - Acceptance of production server to our enterprise security group, for visibility on the public internet;<o:p></o:p></p>
<p class="MsoNormal"> - Publish a URL for search interface that does not use port numbers.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Our setup: <o:p></o:p></p>
<p class="MsoNormal"> - Our demo guest is meant to be a model for our production guest.
<o:p></o:p></p>
<p class="MsoNormal"> - Our ArchivesSpace 1.1.2 demo guest runs under CentOS 7.
<o:p></o:p></p>
<p class="MsoNormal"> - On the same guest we have httpd 2.4 running, listening on ports 80 and 443.<o:p></o:p></p>
<p class="MsoNormal"> - AS brings its services up on localhost 8080, 8081, 8089, 8090, and 8091.
<o:p></o:p></p>
<p class="MsoNormal"> - On our demo AS guest, we are using a self-signed SSL certificate to simulate an
<o:p></o:p></p>
<p class="MsoNormal"> eventual real SSL on our production guest. This creates a security exception that<o:p></o:p></p>
<p class="MsoNormal"> we can bypass at the browser. We’re trying to exercise the SSL Engine options in<o:p></o:p></p>
<p class="MsoNormal"> httpd.<o:p></o:p></p>
<p class="MsoNormal"> - Guest firewall ports set as: 80 and 443 open to campus network, AS application ports<o:p></o:p></p>
<p class="MsoNormal"> only available to localhost (the AS demo guest).<o:p></o:p></p>
<p class="MsoNormal"> - Guest IP address is 136.165.112.26. We have asked our campus network services
<o:p></o:p></p>
<p class="MsoNormal"> to make this a permanent IP address for this guest; the guest gets it IP address via<o:p></o:p></p>
<p class="MsoNormal"> DHCP client<o:p></o:p></p>
<p class="MsoNormal"> - IP names assigned:<o:p></o:p></p>
<p class="MsoNormal"> aspdemo.library.louisville.edu (A-record, canonical, base name) to represent the guest itself<o:p></o:p></p>
<p class="MsoNormal"> aspdemo-staff.library.louisville.edu (C-name alias) to represent port 8080 application services
<o:p></o:p></p>
<p class="MsoNormal"> aspdemo-public.library.louisville.edu (C-name alias) to represent port 8081 application services<o:p></o:p></p>
<p class="MsoNormal"> - httpd and config.rb configuration files appended below.<o:p></o:p></p>
<p class="MsoNormal"> - Demo instance of AS is using the supplied SOLR database engine.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Here’s what we are seeing:<o:p></o:p></p>
<p class="MsoNormal"> - Browse to <a href="http://aspdemo.library.louisville.edu">
http://aspdemo.library.louisville.edu</a> causes redirect to aspdemo-public, as expected.<o:p></o:p></p>
<p class="MsoNormal"> - Browse to <a href="http://aspdemo-public.library.louisville.edu">
http://aspdemo-public.library.louisville.edu</a> shows AS application public page, as expected.<o:p></o:p></p>
<p class="MsoNormal"> - Browse to <a href="https://aspdemo-staff.library.louisville.edu">
https://aspdemo-staff.library.louisville.edu</a> shows security exception (1st time),
<o:p></o:p></p>
<p class="MsoNormal"> then AS application frontend page, as expected.<o:p></o:p></p>
<p class="MsoNormal"> - Searches work OK on the public page.<o:p></o:p></p>
<p class="MsoNormal"> - Authentic users can login on aspdemo-staff page.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> - Our archives librarian see problems with imports. AS told her the import number<o:p></o:p></p>
<p class="MsoNormal"> was not found. She also reports problems in creating accession records; the system<o:p></o:p></p>
<p class="MsoNormal"> told her “The requested URL /accessions/72/edit was not found on this server.”
<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"> - She also reports problems with editing existing records, creating new records one at a time
<o:p></o:p></p>
<p class="MsoNormal"> from the accessions interface – anything that has to do with editing the contents of the
<o:p></o:p></p>
<p class="MsoNormal"> database, basically everything we do except search and browse.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Can anyone please give us some advice on these issues? We feel like we’re close to a vhost solution,
<o:p></o:p></p>
<p class="MsoNormal">but we are having problems getting AS settled into the scheme.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">-- Calvin Miracle, University of Louisville Libraries<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">httpd.conf<o:p></o:p></p>
<p class="MsoNormal">-------------------------------------------------------------------------------------------------------------------------------<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># This is the main Apache HTTP server configuration file. It contains the<o:p></o:p></p>
<p class="MsoNormal"># configuration directives that give the server its instructions.<o:p></o:p></p>
<p class="MsoNormal"># See <<a href="URL:http://httpd.apache.org/docs/2.4/">URL:http://httpd.apache.org/docs/2.4/</a>> for detailed information.<o:p></o:p></p>
<p class="MsoNormal"># In particular, see <o:p></o:p></p>
<p class="MsoNormal"># <<a href="URL:http://httpd.apache.org/docs/2.4/mod/directives.html">URL:http://httpd.apache.org/docs/2.4/mod/directives.html</a>><o:p></o:p></p>
<p class="MsoNormal"># for a discussion of each configuration directive.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Do NOT simply read the instructions in here without understanding<o:p></o:p></p>
<p class="MsoNormal"># what they do. They're here only as hints or reminders. If you are unsure<o:p></o:p></p>
<p class="MsoNormal"># consult the online docs. You have been warned. <o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Configuration and logfile names: If the filenames you specify for many<o:p></o:p></p>
<p class="MsoNormal"># of the server's control files begin with "/" (or "drive:/" for Win32), the<o:p></o:p></p>
<p class="MsoNormal"># server will use that explicit path. If the filenames do *not* begin<o:p></o:p></p>
<p class="MsoNormal"># with "/", the value of ServerRoot is prepended -- so 'log/access_log'<o:p></o:p></p>
<p class="MsoNormal"># with ServerRoot set to '/www' will be interpreted by the<o:p></o:p></p>
<p class="MsoNormal"># server as '/www/log/access_log', where as '/log/access_log' will be<o:p></o:p></p>
<p class="MsoNormal"># interpreted as '/log/access_log'.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># ServerRoot: The top of the directory tree under which the server's<o:p></o:p></p>
<p class="MsoNormal"># configuration, error, and log files are kept.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Do not add a slash at the end of the directory path. If you point<o:p></o:p></p>
<p class="MsoNormal"># ServerRoot at a non-local disk, be sure to specify a local disk on the<o:p></o:p></p>
<p class="MsoNormal"># Mutex directive, if file-based mutexes are used. If you wish to share the<o:p></o:p></p>
<p class="MsoNormal"># same ServerRoot for multiple httpd daemons, you will need to change at<o:p></o:p></p>
<p class="MsoNormal"># least PidFile.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">ServerRoot "/etc/httpd"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Listen: Allows you to bind Apache to specific IP addresses and/or<o:p></o:p></p>
<p class="MsoNormal"># ports, instead of the default. See also the <VirtualHost><o:p></o:p></p>
<p class="MsoNormal"># directive.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Change this to Listen on specific IP addresses as shown below to
<o:p></o:p></p>
<p class="MsoNormal"># prevent Apache from glomming onto all bound IP addresses.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#Listen 12.34.56.78:80<o:p></o:p></p>
<p class="MsoNormal">Listen 80<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Dynamic Shared Object (DSO) Support<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># To be able to use the functionality of a module which was built as a DSO you<o:p></o:p></p>
<p class="MsoNormal"># have to place corresponding `LoadModule' lines at this location so the<o:p></o:p></p>
<p class="MsoNormal"># directives contained in it are actually available _before_ they are used.<o:p></o:p></p>
<p class="MsoNormal"># Statically compiled modules (those listed by `httpd -l') do not need<o:p></o:p></p>
<p class="MsoNormal"># to be loaded here.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Example:<o:p></o:p></p>
<p class="MsoNormal"># LoadModule foo_module modules/mod_foo.so<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">Include conf.modules.d/*.conf<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># If you wish httpd to run as a different user or group, you must run<o:p></o:p></p>
<p class="MsoNormal"># httpd as root initially and it will switch. <o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># User/Group: The name (or #number) of the user/group to run httpd as.<o:p></o:p></p>
<p class="MsoNormal"># It is usually good practice to create a dedicated user and group for<o:p></o:p></p>
<p class="MsoNormal"># running httpd, as with most system services.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">User apache<o:p></o:p></p>
<p class="MsoNormal">Group apache<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># 'Main' server configuration<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># The directives in this section set up the values used by the 'main'<o:p></o:p></p>
<p class="MsoNormal"># server, which responds to any requests that aren't handled by a<o:p></o:p></p>
<p class="MsoNormal"># <VirtualHost> definition. These values also provide defaults for<o:p></o:p></p>
<p class="MsoNormal"># any <VirtualHost> containers you may define later in the file.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># All of these directives may appear inside <VirtualHost> containers,<o:p></o:p></p>
<p class="MsoNormal"># in which case these default settings will be overridden for the<o:p></o:p></p>
<p class="MsoNormal"># virtual host being defined.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># ServerAdmin: Your address, where problems with the server should be<o:p></o:p></p>
<p class="MsoNormal"># e-mailed. This address appears on some server-generated pages, such<o:p></o:p></p>
<p class="MsoNormal"># as error documents. e.g. <a href="mailto:admin@your-domain.com">
admin@your-domain.com</a><o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">ServerAdmin root@localhost<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># ServerName gives the name and port that the server uses to identify itself.<o:p></o:p></p>
<p class="MsoNormal"># This can often be determined automatically, but we recommend you specify<o:p></o:p></p>
<p class="MsoNormal"># it explicitly to prevent problems during startup.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># If your host doesn't have a registered DNS name, enter its IP address here.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#ServerName <a href="http://www.example.com:80">www.example.com:80</a><o:p></o:p></p>
<p class="MsoNormal">ServerName aspdemo.library.louisville.edu:80<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Deny access to the entirety of your server's filesystem. You must<o:p></o:p></p>
<p class="MsoNormal"># explicitly permit access to web content directories in other
<o:p></o:p></p>
<p class="MsoNormal"># <Directory> blocks below.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"><Directory /><o:p></o:p></p>
<p class="MsoNormal"> AllowOverride none<o:p></o:p></p>
<p class="MsoNormal"> Require all denied<o:p></o:p></p>
<p class="MsoNormal"></Directory><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Note that from this point forward you must specifically allow<o:p></o:p></p>
<p class="MsoNormal"># particular features to be enabled - so if something's not working as<o:p></o:p></p>
<p class="MsoNormal"># you might expect, make sure that you have specifically enabled it<o:p></o:p></p>
<p class="MsoNormal"># below.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># DocumentRoot: The directory out of which you will serve your<o:p></o:p></p>
<p class="MsoNormal"># documents. By default, all requests are taken from this directory, but<o:p></o:p></p>
<p class="MsoNormal"># symbolic links and aliases may be used to point to other locations.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">DocumentRoot "/var/www/html"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Relax access to content within /var/www.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"><Directory "/var/www"><o:p></o:p></p>
<p class="MsoNormal"> AllowOverride None<o:p></o:p></p>
<p class="MsoNormal"> # Allow open access:<o:p></o:p></p>
<p class="MsoNormal"> Require all granted<o:p></o:p></p>
<p class="MsoNormal"></Directory><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Further relax access to the default document root:<o:p></o:p></p>
<p class="MsoNormal">#<Directory "/var/www/html"><o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # Possible values for the Options directive are "None", "All",<o:p></o:p></p>
<p class="MsoNormal"> # or any combination of:<o:p></o:p></p>
<p class="MsoNormal"> # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # Note that "MultiViews" must be named *explicitly* --- "Options All"<o:p></o:p></p>
<p class="MsoNormal"> # doesn't give it to you.<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # The Options directive is both complicated and important. Please see<o:p></o:p></p>
<p class="MsoNormal"> # <a href="http://httpd.apache.org/docs/2.4/mod/core.html#options">
http://httpd.apache.org/docs/2.4/mod/core.html#options</a><o:p></o:p></p>
<p class="MsoNormal"> # for more information.<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"># Options Indexes FollowSymLinks<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # AllowOverride controls what directives may be placed in .htaccess files.<o:p></o:p></p>
<p class="MsoNormal"> # It can be "All", "None", or any combination of the keywords:<o:p></o:p></p>
<p class="MsoNormal"> # Options FileInfo AuthConfig Limit<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"># AllowOverride All<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # Controls who can get stuff from this server.<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"># Require all denied<o:p></o:p></p>
<p class="MsoNormal">#</Directory><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># DirectoryIndex: sets the file that Apache will serve if a directory<o:p></o:p></p>
<p class="MsoNormal"># is requested.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"><IfModule dir_module><o:p></o:p></p>
<p class="MsoNormal"> DirectoryIndex index.html<o:p></o:p></p>
<p class="MsoNormal"></IfModule><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># cbm, June 2015: named virtual hosts added<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># NameVirtualHost *:443 this keyword will be deprecated<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><VirtualHost *:80><o:p></o:p></p>
<p class="MsoNormal"> ServerName aspdemo.library.louisville.edu<o:p></o:p></p>
<p class="MsoNormal"> DocumentRoot /var/www/html<o:p></o:p></p>
<p class="MsoNormal"> Options Indexes FollowSymLinks<o:p></o:p></p>
<p class="MsoNormal"></VirtualHost><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><VirtualHost *:443><o:p></o:p></p>
<p class="MsoNormal"> ServerName aspdemo-staff.library.louisville.edu<o:p></o:p></p>
<p class="MsoNormal"> SSLEngine On<o:p></o:p></p>
<p class="MsoNormal"> SSLCertificateFile "/etc/ssl/certs/self_signed/ASdemo_selfsigned.crt"<o:p></o:p></p>
<p class="MsoNormal"> SSLCertificateKeyFile "/etc/ssl/certs/self_signed/ASdemo_selfsigned.key"<o:p></o:p></p>
<p class="MsoNormal"> ProxyPreserveHost On<o:p></o:p></p>
<p class="MsoNormal"> ProxyPass / <a href="http://localhost:8080/">http://localhost:8080/</a><o:p></o:p></p>
<p class="MsoNormal"> ProxyPassReverse / <a href="http://localhost:8080/">http://localhost:8080/</a><o:p></o:p></p>
<p class="MsoNormal"></VirtualHost><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><VirtualHost *:80><o:p></o:p></p>
<p class="MsoNormal"> ServerName aspdemo-public.library.louisville.edu<o:p></o:p></p>
<p class="MsoNormal"> ProxyPreserveHost Off<o:p></o:p></p>
<p class="MsoNormal"> ProxyPass / <a href="http://localhost:8081/">http://localhost:8081/</a><o:p></o:p></p>
<p class="MsoNormal"> ProxyPassReverse / <a href="http://localhost:8081/">http://localhost:8081/</a><o:p></o:p></p>
<p class="MsoNormal"></VirtualHost><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># The following lines prevent .htaccess and .htpasswd files from being
<o:p></o:p></p>
<p class="MsoNormal"># viewed by Web clients. <o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"><Files ".ht*"><o:p></o:p></p>
<p class="MsoNormal"> Require all denied<o:p></o:p></p>
<p class="MsoNormal"></Files><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># ErrorLog: The location of the error log file.<o:p></o:p></p>
<p class="MsoNormal"># If you do not specify an ErrorLog directive within a <VirtualHost><o:p></o:p></p>
<p class="MsoNormal"># container, error messages relating to that virtual host will be<o:p></o:p></p>
<p class="MsoNormal"># logged here. If you *do* define an error logfile for a <VirtualHost><o:p></o:p></p>
<p class="MsoNormal"># container, that host's errors will be logged there and not here.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">ErrorLog "logs/error_log"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># LogLevel: Control the number of messages logged to the error_log.<o:p></o:p></p>
<p class="MsoNormal"># Possible values include: debug, info, notice, warn, error, crit,<o:p></o:p></p>
<p class="MsoNormal"># alert, emerg.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">LogLevel warn<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><IfModule log_config_module><o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # The following directives define some format nicknames for use with<o:p></o:p></p>
<p class="MsoNormal"> # a CustomLog directive (see below).<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined<o:p></o:p></p>
<p class="MsoNormal"> LogFormat "%h %l %u %t \"%r\" %>s %b" common<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> <IfModule logio_module><o:p></o:p></p>
<p class="MsoNormal"> # You need to enable mod_logio.c to use %I and %O<o:p></o:p></p>
<p class="MsoNormal"> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio<o:p></o:p></p>
<p class="MsoNormal"> </IfModule><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # The location and format of the access logfile (Common Logfile Format).<o:p></o:p></p>
<p class="MsoNormal"> # If you do not define any access logfiles within a <VirtualHost><o:p></o:p></p>
<p class="MsoNormal"> # container, they will be logged here. Contrariwise, if you *do*<o:p></o:p></p>
<p class="MsoNormal"> # define per-<VirtualHost> access logfiles, transactions will be<o:p></o:p></p>
<p class="MsoNormal"> # logged therein and *not* in this file.<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> #CustomLog "logs/access_log" common<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # If you prefer a logfile with access, agent, and referer information<o:p></o:p></p>
<p class="MsoNormal"> # (Combined Logfile Format) you can use the following directive.<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> CustomLog "logs/access_log" combined<o:p></o:p></p>
<p class="MsoNormal"></IfModule><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><IfModule alias_module><o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # Redirect: Allows you to tell clients about documents that used to
<o:p></o:p></p>
<p class="MsoNormal"> # exist in your server's namespace, but do not anymore. The client
<o:p></o:p></p>
<p class="MsoNormal"> # will make a new request for the document at its new location.<o:p></o:p></p>
<p class="MsoNormal"> # Example:<o:p></o:p></p>
<p class="MsoNormal"> # Redirect permanent /foo <a href="http://www.example.com/bar">
http://www.example.com/bar</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # Alias: Maps web paths into filesystem paths and is used to<o:p></o:p></p>
<p class="MsoNormal"> # access content that does not live under the DocumentRoot.<o:p></o:p></p>
<p class="MsoNormal"> # Example:<o:p></o:p></p>
<p class="MsoNormal"> # Alias /webpath /full/filesystem/path<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # If you include a trailing / on /webpath then the server will<o:p></o:p></p>
<p class="MsoNormal"> # require it to be present in the URL. You will also likely<o:p></o:p></p>
<p class="MsoNormal"> # need to provide a <Directory> section to allow access to<o:p></o:p></p>
<p class="MsoNormal"> # the filesystem path.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # ScriptAlias: This controls which directories contain server scripts.
<o:p></o:p></p>
<p class="MsoNormal"> # ScriptAliases are essentially the same as Aliases, except that<o:p></o:p></p>
<p class="MsoNormal"> # documents in the target directory are treated as applications and<o:p></o:p></p>
<p class="MsoNormal"> # run by the server when requested rather than as documents sent to the<o:p></o:p></p>
<p class="MsoNormal"> # client. The same rules about trailing "/" apply to ScriptAlias<o:p></o:p></p>
<p class="MsoNormal"> # directives as to Alias.<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"></IfModule><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># "/var/www/cgi-bin" should be changed to whatever your ScriptAliased<o:p></o:p></p>
<p class="MsoNormal"># CGI directory exists, if you have that configured.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"><Directory "/var/www/cgi-bin"><o:p></o:p></p>
<p class="MsoNormal"> AllowOverride None<o:p></o:p></p>
<p class="MsoNormal"> Options None<o:p></o:p></p>
<p class="MsoNormal"> Require all granted<o:p></o:p></p>
<p class="MsoNormal"></Directory><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><IfModule mime_module><o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # TypesConfig points to the file containing the list of mappings from<o:p></o:p></p>
<p class="MsoNormal"> # filename extension to MIME-type.<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> TypesConfig /etc/mime.types<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # AddType allows you to add to or override the MIME configuration<o:p></o:p></p>
<p class="MsoNormal"> # file specified in TypesConfig for specific file types.<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> #AddType application/x-gzip .tgz<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # AddEncoding allows you to have certain browsers uncompress<o:p></o:p></p>
<p class="MsoNormal"> # information on the fly. Note: Not all browsers support this.<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> #AddEncoding x-compress .Z<o:p></o:p></p>
<p class="MsoNormal"> #AddEncoding x-gzip .gz .tgz<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # If the AddEncoding directives above are commented-out, then you<o:p></o:p></p>
<p class="MsoNormal"> # probably should define those extensions to indicate media types:<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> AddType application/x-compress .Z<o:p></o:p></p>
<p class="MsoNormal"> AddType application/x-gzip .gz .tgz<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # AddHandler allows you to map certain file extensions to "handlers":<o:p></o:p></p>
<p class="MsoNormal"> # actions unrelated to filetype. These can be either built into the server<o:p></o:p></p>
<p class="MsoNormal"> # or added with the Action directive (see below)<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # To use CGI scripts outside of ScriptAliased directories:<o:p></o:p></p>
<p class="MsoNormal"> # (You will also need to add "ExecCGI" to the "Options" directive.)<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> #AddHandler cgi-script .cgi<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> # For type maps (negotiated resources):<o:p></o:p></p>
<p class="MsoNormal"> #AddHandler type-map var<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # Filters allow you to process content before it is sent to the client.<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # To parse .shtml files for server-side includes (SSI):<o:p></o:p></p>
<p class="MsoNormal"> # (You will also need to add "Includes" to the "Options" directive.)<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> AddType text/html .shtml<o:p></o:p></p>
<p class="MsoNormal"> AddOutputFilter INCLUDES .shtml<o:p></o:p></p>
<p class="MsoNormal"></IfModule><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Specify a default charset for all content served; this enables<o:p></o:p></p>
<p class="MsoNormal"># interpretation of all content as UTF-8 by default. To use the
<o:p></o:p></p>
<p class="MsoNormal"># default browser choice (ISO-8859-1), or to allow the META tags<o:p></o:p></p>
<p class="MsoNormal"># in HTML content to override this choice, comment out this<o:p></o:p></p>
<p class="MsoNormal"># directive:<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">AddDefaultCharset UTF-8<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><IfModule mime_magic_module><o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> # The mod_mime_magic module allows the server to use various hints from the<o:p></o:p></p>
<p class="MsoNormal"> # contents of the file itself to determine its type. The MIMEMagicFile<o:p></o:p></p>
<p class="MsoNormal"> # directive tells the module where the hint definitions are located.<o:p></o:p></p>
<p class="MsoNormal"> #<o:p></o:p></p>
<p class="MsoNormal"> MIMEMagicFile conf/magic<o:p></o:p></p>
<p class="MsoNormal"></IfModule><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Customizable error responses come in three flavors:<o:p></o:p></p>
<p class="MsoNormal"># 1) plain text 2) local redirects 3) external redirects<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Some examples:<o:p></o:p></p>
<p class="MsoNormal">#ErrorDocument 500 "The server made a boo boo."<o:p></o:p></p>
<p class="MsoNormal">#ErrorDocument 404 /missing.html<o:p></o:p></p>
<p class="MsoNormal">#ErrorDocument 404 "/cgi-bin/missing_handler.pl"<o:p></o:p></p>
<p class="MsoNormal">#ErrorDocument 402 <a href="http://www.example.com/subscription_info.html">
http://www.example.com/subscription_info.html</a><o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># EnableMMAP and EnableSendfile: On systems that support it,
<o:p></o:p></p>
<p class="MsoNormal"># memory-mapping or the sendfile syscall may be used to deliver<o:p></o:p></p>
<p class="MsoNormal"># files. This usually improves server performance, but must<o:p></o:p></p>
<p class="MsoNormal"># be turned off when serving from networked-mounted <o:p></o:p></p>
<p class="MsoNormal"># filesystems or if support for these functions is otherwise<o:p></o:p></p>
<p class="MsoNormal"># broken on your system.<o:p></o:p></p>
<p class="MsoNormal"># Defaults if commented: EnableMMAP On, EnableSendfile Off<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#EnableMMAP off<o:p></o:p></p>
<p class="MsoNormal">EnableSendfile on<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Supplemental configuration<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Load config files in the "/etc/httpd/conf.d" directory, if any.<o:p></o:p></p>
<p class="MsoNormal">IncludeOptional conf.d/*.conf<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">config.rb<o:p></o:p></p>
<p class="MsoNormal">-------------------------------------------------------------------------------------------------------------------------------<o:p></o:p></p>
<p class="MsoNormal"># Configuration defaults are shown below<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#AppConfig[:default_admin_password] = "admin"<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:data_directory] = File.join(Dir.home, "ArchivesSpace")<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:backup_directory] = proc { File.join(AppConfig[:data_directory], "demo_db_backups") }<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:solr_index_directory] = proc { File.join(AppConfig[:data_directory], "solr_index") }<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:solr_home_directory] = proc { File.join(AppConfig[:data_directory], "solr_home") }<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:solr_indexing_frequency_seconds] = 30<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:default_page_size] = 10<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:max_page_size] = 250<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## Log level for the backend, values: (everything) debug, info, warn, error, fatal (severe only)<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:backend_log_level] = "debug"<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## A prefix added to cookies used by the application.<o:p></o:p></p>
<p class="MsoNormal">##<o:p></o:p></p>
<p class="MsoNormal">## Change this if you're running more than one instance of ArchivesSpace on the<o:p></o:p></p>
<p class="MsoNormal">## same hostname (i.e. multiple instances on different ports)<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:cookie_prefix] = "archivesspace"<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## The periodic indexer can run using multiple threads to take advantage of<o:p></o:p></p>
<p class="MsoNormal">## multiple CPU cores.<o:p></o:p></p>
<p class="MsoNormal">##<o:p></o:p></p>
<p class="MsoNormal">## By setting the next two options, you can control how many CPU cores are used,<o:p></o:p></p>
<p class="MsoNormal">## and the amount of memory that will be consumed by the indexing process (more<o:p></o:p></p>
<p class="MsoNormal">## cores and/or more records per thread means more memory used).<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:indexer_records_per_thread] = 25<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:indexer_thread_count] = 4<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:allow_other_unmapped] = false<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:db_url] = proc { AppConfig.demo_db_url }<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:db_max_connections] = 10<o:p></o:p></p>
<p class="MsoNormal">## Set to true if you have enabled MySQL binary logging<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:mysql_binlog] = false<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:allow_unsupported_database] = false<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:allow_non_utf8_mysql_database] = false<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:demo_db_backup_schedule] = "0 4 * * *"<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:demo_db_backup_number_to_keep] = 7<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:solr_backup_directory] = proc { File.join(AppConfig[:data_directory], "solr_backups") }<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:solr_backup_schedule] = "0 * * * *"<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:solr_backup_number_to_keep] = 1<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:backend_url] = "<a href="http://localhost:8089">http://localhost:8089</a>"<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:frontend_url] = "<a href="http://localhost:8080">http://localhost:8080</a>"<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:frontend_prefix] = proc { "#{URI(AppConfig[:frontend_url]).path}/".gsub(%r{/+$}, "/") }<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:solr_url] = "<a href="http://localhost:8090">http://localhost:8090</a>"<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:indexer_url] = "<a href="http://localhost:8091">http://localhost:8091</a>"<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:public_url] = "<a href="http://localhost:8081">http://localhost:8081</a>"<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:public_prefix] = proc { "#{URI(AppConfig[:public_url]).path}/".gsub(%r{/+$}, "/") }<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># cbm, 2014.01.26: Trying to correct the "View Published button" issue<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:frontend_url] = "<a href="https://aspdemo-staff.library.louisville.edu">https://aspdemo-staff.library.louisville.edu</a>"<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:public_url] = "<a href="http://aspdemo-public.library.louisville.edu">http://aspdemo-public.library.louisville.edu</a>"<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## Setting any of the four keys below to false will prevent the associated<o:p></o:p></p>
<p class="MsoNormal">## applications from starting. Temporarily disabling the frontend and public<o:p></o:p></p>
<p class="MsoNormal">## UIs and/or the indexer may help users who are running into memory-related<o:p></o:p></p>
<p class="MsoNormal">## issues during migration.<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:enable_backend] = true<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:enable_frontend] = true<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:enable_public] = true<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:enable_solr] = true<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:enable_indexer] = true<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## Some use cases want the ability to shutdown the Jetty service using Jetty's
<o:p></o:p></p>
<p class="MsoNormal">## ShutdownHandler, which allows a POST request to a specific URI to signal<o:p></o:p></p>
<p class="MsoNormal">## server shutdown. The prefix for this URI path is set to /xkcd to reduce the<o:p></o:p></p>
<p class="MsoNormal">## possibility of a collision in the path configuration. So, full path would be<o:p></o:p></p>
<p class="MsoNormal">## /xkcd/shutdown?token={randomly generated password} <o:p></o:p></p>
<p class="MsoNormal">## The launcher creates a password to use this, which is stored
<o:p></o:p></p>
<p class="MsoNormal">## in the data directory. This is not turned on by default.<o:p></o:p></p>
<p class="MsoNormal">##<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:use_jetty_shutdown_handler] = false<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:jetty_shutdown_path] = "/xkcd"<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## If you have multiple instances of the backend running behind a load<o:p></o:p></p>
<p class="MsoNormal">## balancer, list the URL of each backend instance here. This is used by the<o:p></o:p></p>
<p class="MsoNormal">## real-time indexing, which needs to connect directly to each running<o:p></o:p></p>
<p class="MsoNormal">## instance.<o:p></o:p></p>
<p class="MsoNormal">##<o:p></o:p></p>
<p class="MsoNormal">## By default we assume you're not using a load balancer, so we just connect<o:p></o:p></p>
<p class="MsoNormal">## to the regular backend URL.<o:p></o:p></p>
<p class="MsoNormal">##<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:backend_instance_urls] = proc { [AppConfig[:backend_url]] }<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:frontend_theme] = "default"<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:public_theme] = "default"<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:session_expire_after_seconds] = 3600<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:search_username] = "search_indexer"<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:public_username] = "public_anonymous"<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:staff_username] = "staff_system"<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:authentication_sources] = []<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:realtime_index_backlog_ms] = 60000<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:notifications_backlog_ms] = 60000<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:notifications_poll_frequency_ms] = 1000<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:max_usernames_per_source] = 50<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:demodb_snapshot_flag] = proc { File.join(AppConfig[:data_directory], "create_demodb_snapshot.txt") }<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:locale] = :en<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## Report Configuration<o:p></o:p></p>
<p class="MsoNormal">## :report_page_layout uses valid values for the CSS3 @page directive's<o:p></o:p></p>
<p class="MsoNormal">## size property: <a href="http://www.w3.org/TR/css3-page/#page-size-prop">
http://www.w3.org/TR/css3-page/#page-size-prop</a><o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:report_page_layout] = "letter landscape"<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:report_pdf_font_paths] = proc { ["#{AppConfig[:backend_url]}/reports/static/fonts/dejavu/DejaVuSans.ttf"] }<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:report_pdf_font_family] = "\"DejaVu Sans\", sans-serif"<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## Plug-ins to load. They will load in the order specified<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:plugins] = ['local', 'aspace_feedback', 'aspace-public-formats']<o:p></o:p></p>
<p class="MsoNormal">AppConfig[:plugins] = ['local']<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># <o:p></o:p></p>
<p class="MsoNormal">## The following are used by the aspace-public-formats plugin<o:p></o:p></p>
<p class="MsoNormal">## <a href="https://github.com/archivesspace/aspace-public-formats">
https://github.com/archivesspace/aspace-public-formats</a><o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:public_formats_resource_links] = []<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:public_formats_digital_object_links] = []<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:xsltproc_path] = nil<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:xslt_path] = nil<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## Allow an unauthenticated user to create an account<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:allow_user_registration] = true<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## Help Configuration<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:help_enabled] = true<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:help_url] = "<a href="http://docs.archivesspace.org">http://docs.archivesspace.org</a>"<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:help_topic_prefix] = "/Default_CSH.htm#"<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## Proxy URLs <o:p></o:p></p>
<p class="MsoNormal">## If you are serving user-facing applications via proxy<o:p></o:p></p>
<p class="MsoNormal">## (i.e., another domain or port, or via https) it is <o:p></o:p></p>
<p class="MsoNormal">## recommended that you record those URLs in your configuration<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:frontend_proxy_url] = proc { AppConfig[:frontend_url] }<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:public_proxy_url] = proc { AppConfig[:public_url] }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:shared_storage] = proc { File.join(AppConfig[:data_directory], "shared") }<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:import_job_path] = proc { File.join(AppConfig[:shared_storage], "import_jobs") }<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:import_poll_seconds] = 5<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:import_timeout_seconds] = 300<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## By default, only allow jobs to be cancelled if we're running against MySQL (since we can rollback)<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:import_jobs_cancelable] = proc { (AppConfig[:db_url] != AppConfig.demo_db_url).to_s }<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:max_location_range] = 1000<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## Jasper Reports<o:p></o:p></p>
<p class="MsoNormal">## (<a href="https://community.jaspersoft.com/project/jasperreports-library">https://community.jaspersoft.com/project/jasperreports-library</a>)
<o:p></o:p></p>
<p class="MsoNormal">## require compilation. This can be done at startup. Please note, if you are<o:p></o:p></p>
<p class="MsoNormal">## using Java 8 and you want to compile at startup, keep this setting at false,<o:p></o:p></p>
<p class="MsoNormal">## but be sure to use the JDK version.<o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:enable_jasper] = true <o:p></o:p></p>
<p class="MsoNormal">#AppConfig[:compile_jasper] = false<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal">## There are some conditions that has caused tree nodes ( ArchivalObjects, DO<o:p></o:p></p>
<p class="MsoNormal">## Components, and ClassificationTerms) to lose their Sequence pointers. This<o:p></o:p></p>
<p class="MsoNormal">## will resequence these tree nodes on startup. <o:p></o:p></p>
<p class="MsoNormal"># AppConfig[:resequence_on_startup] = true<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>