This section covers common issues and problems with the Islandora installation process, and community experiences that may shed light on the installation experience. This page is a work in progress and will develop as more cases are added.

Unable to connect to Fedora server

There are a number of potential causes for this error. Some possibilities include:

Certificate Validation

What to try: Disable certificate validation in the Islandora module:

nano -w sites/all/modules/islandora/islandora/libraries/tuque/HttpConnection.php

  /** * FALSE to stop cURL from verifying the peer's certificate. (Default: TRUE) * @var type boolean */
  public $verifyPeer = FALSE;

Drupal servlet filter

What to try:  

  1. Make sure mysql settings are correct in server/config/filter-drupal.xml 
    1. Open a mysql command line client using the credential from filter-drupal.xml
    2. Run an sql query using a valid username and password from your Islandora site. If this fails, and <param name="ENFORCE-MODE" value="permit-all-requests"/> is uncommented in your fedora.fcfg there is an issue with the settings in filter-drupal.xml.

  2. If you have curl installed at the command line:
    1. Try interacting with the Fedora REST API directly with this command:

      curl -u fedoraAdmin:fedoraAdmin -X POST http://localhost:8080/fedora/objects/new\?namespace\=test

      This makes a POST request as the user "fedoraAdmin" identified by the password "fedoraAdmin". This should create a new object in the repository with the namespace "test". For example,  "test:1"

Firewall

What to try: Take down the firewall temporarily to see if the error resolves. If so, an exception is needed.

SELinux

SELinux (Security-Enabled Linux) is included in some linux distributions.  It creates policies for every process and object in the system and then enforces rules designed to limit access between those processes and system objects. This is intended to confine the damage that can be caused by compromised applications. However, these policies can also block the Islandora module's access to Fedora's REST apis running on port 8080.

What to try:

  1. First, see if SELinux is installed and enabled. Type the sestatus command.  If enabled, you will see output similar to this:SELinux status: enabled

    SELinuxfs mount:                /selinux
    Current mode:                   enforcing
    Mode from config file:          enforcing
    Policy version:                 24
    Policy from config file:        targeted
  2. To very quickly check whether SELinux is causing the connection error, you can temporarily switch its mode from "enforcing" to "permissive" (do this as root):

    setenforce Permissive

    Now test the Islandora module's connection to Fedora again. If that fixes the problem, you can then make a more permanent adjustment to SELinux to allow the connection to the Fedora server.

  3. You could completely disable SELinux, by changing its configuration in /etc/selinux/config but it's not necessary (and most often not recommended!).  The specific SELinux policy that is blocking access is likely httpd_can_network_connectFirst, change the mode back to "Enforcing", then switch on the policy http_can_network_connect.  Again, as root:

    setenforce Enforcing
    setsebool -P httpd_can_network_connect on

    Test the Islandora module's connection to Fedora once more.  If it works, you have adjusted the SELinux configuration to permit the needed connection without disabling it entirely.

With thank to the Islandora Community and the user and developer listervs for contributing issues, tests, and solutions.