Web Server Installation Instructions

Before you start
  • On-site installations of CDWS have a very limited set of services available, namely /text and, if the optional Solr index is installed, /search. Citation and family services may be accessed as described in the blog Leveraging On-Site Citation and Family Functionality. All other service interfaces must be called remotely to https://cdws21.ificlaims.com.
  • Ensure that your machine meets the hardware requirements listed on the Web Server page. It is also recommended to review the configuration requirements and parameters discussed there.
  • All commands, unless otherwise noted, must be run as root.
  • Check for user database connectivity.
  • Review the information on CLAIMS Direct Web Services. Complete the pre-install worksheet below. This is used to manage all connectivity between the web server, Solr, and the database:







  • It is only necessary to configure the parameter used with your subscription level

Interface into the main Alexandria XML data warehouse


host (IP or domain name)

port (DB port)






Interface into the users database supporting the authentication plugin


host (IP or domain name)

port (DB port)






Main interfaces into the Solr index

host (IP or domain name)

port (Solr port)

Note: It is recommended to copy and paste the code provided in these instructions.

1. Test the data warehouse (DWH) database connectivity and responsiveness. This will make setup and troubleshooting much easier. Depending on your base OS configuration, you may or may not have psql installed. For this test, we will assume psql is NOT installed. From the pre-install worksheet, obtain the username, host, and dbname from row 1.

yum -y install postgresql
echo 'select ucid from xml.t_patent_document_values limit 5;' | psql -U<user> -h<host> <dbname>

Results should be similar to what is shown below:


(5 rows)

2. Test Solr for connectivity and responsiveness. This will also make things easier during the installation process. From the pre-install worksheet, obtain the host and port information from row 3.

wget -O- -q 'http://<host>:<port>/alexandria-v2.1/alexandria/select?q=*:*&rows=0'

Results should be similar to what is shown below:


3. Install the appropriate repository for your operating system using the command listed in the Repository column below. If necessary, adjust the code to reflect the version you are using.

4. Install CDWS and CDWI. Both packages will be installed in /usr/share/perl5/vendor_perl. The Alexandria library will also be installed as part of these packages.

yum -y install perl-Alexandria-CDWS perl-Alexandria-CDWI

5. In order to run CDWS/CDWI as an Apache VHOST, copy the following template configuration files.


cp /usr/share/perl5/vendor_perl/Alexandria/CDWS/etc/claims-direct/alexandria-cdws-apache.conf.template \


cp /usr/share/perl5/vendor_perl/Alexandria/CDWI/etc/claims-direct/alexandria-cdwi-apache.conf.template \

6. Ensure that the application configuration files are globally accessible.


cp /usr/share/perl5/vendor_perl/Alexandria/CDWS/etc/claims-direct/alexandria-cdws.conf.template \


cp /usr/share/perl5/vendor_perl/Alexandria/CDWI/etc/claims-direct/alexandria-cdwi.conf.template \

7. Change to the apache directory.

cd /etc/httpd/conf.d

8. Using a text editor, set the ServerName in the alexandria-cdw(s|i)-apache.conf files. This should be a fully qualified domain name, not an IP address. Make sure that the VirtualHost parameter is set to reflect port 80. See below: 

In alexandria-cdws-apache.conf: ServerName cdws.yourdomain.com
                                                    <VirtualHost *:80>

In alexandria-cdwi-apache.conf: ServerName cdwi.yourdomain.com
                                                    <VirtualHost *:80>

9. In the /etc directory, edit the alexandria-cdws.conf file. Using a text editor, find the parameter tags referenced in the pre-install worksheet. Make all necessary changes to the file using the information previously collected. For example:

  dsn dbi:Pg:dbname=users;host=xxx.xxx.xxx.xx;port=xxxx
  user USER
  username USERNAME
  password PASSWORD

10. In order for the applications to function properly, credentials need to be stored where the application can retrieve them. CLAIMS Direct uses a simple "users" database preconfigured with an admin user (user: admin, password: PASSWORD). This database needs to be created either in a separate PostgreSQL instance, or together with the alexandria database. The following will create the user database on a PostgreSQL server:

cat /usr/share/perl5/vendor_perl/Alexandria/CDWS/etc/claims-direct/users.sql \
    | psql -Ualexandria -h<IP-ADDRESS-OF-POSTGRESQL> postgres

11. Change the directory.

cd /etc/httpd/conf

12. Depending on distribution, you may also need to adjust the permissions to the root Directory in httpd.conf. Using a text editor, edit the main directory config as follows:

<Directory />
    AllowOverride none
    Require all granted

13. Enable and restart httpd.

systemctl enable httpd.service; systemctl restart httpd.service

Note: If you have trouble accessing your local instance of CDWI, try the following:

1. In order to use CDWI, you must assign an alias to the server’s IP address. For example, if the server is running on IP, you cannot access CDWI through http://cdwi. You must make a name assignment like this: cdws.mydomain.com cdwi.mydomain.com

mydomain.com” must match the domain name used in step 8 above. It should be a domain name you have permission to use. If you are only using the service internally, then this name could be anything, but if you are exposing it externally, it should be a registered name. For testing, you can make the name assignment on a local hosts file. You should be able to reach CDWI from any machine on your network where the name assignment has been made. If you make a name assignment on the enterprise name server, then anyone in the organization should be able to access CDWI at http://cdwi.mydomain.com

2. After updating the hosts file on a local machine, you need to open a new browser session. In the new browser, you should be able to access CDWI. If you open a new tab in an old browser session, you may find that CDWI is not accessible.