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:
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:
- Make sure mysql settings are correct in server/config/filter-drupal.xml
- Open a mysql command line client using the credential from filter-drupal.xml
- 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.
- If you have curl installed at the command line:
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"
What to try: Take down the firewall temporarily to see if the error resolves. If so, an exception is needed.
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:
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
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):
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.
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_connect. First, change the mode back to "Enforcing", then switch on the policy
http_can_network_connect. Again, as root:
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.