The following procedure will install the SP and all its dependencies. Completion of the instructions will result in a functional and loaded but unconfigured SP installed under the /opt/local file system tree maintained by the MacPorts system.

Apache Versions

Apple has deprecated the Apache server included with macOS and no longer provides the necessary apxs script to allow the SP to build against it. Therefore, the port will now shift to depending on, and building against, the Apache 2.4 port available from macports. If your current SP installation is based on the Apple-provided Apache, you will need to migrate to the macport Apache as part of upgrading the SP.

Installing MacPorts

You can find disk images with an installer at or you can download and build the port software manually from their tarball. After installing it, particularly if you do so from source, you may need to add /opt/local/bin to your shell path.

Once installed, the port software is self updating using the port selfupdate command.

Installing Shibboleth

Normally, it's possible to just install the primary port ("shibboleth") and let it automatically handle dependencies. This won't work in this case because one of the dependencies (curl) has to be installed with a port "variant" to enable SSL support. Ports cannot indicate that a variant of a dependency is required, so you have to install curl yourself first.

All port installations MUST be done as root.

$ sudo -s # port install curl +ssl # port install shibboleth

You should see a number of packages downloaded and installed for you. Other port commands and options include -v for a verbose trace of the process, the upgrade command to get new versions, and uninstall to remove things.

If you want to build universal binaries (typically meaning both i386 and x86_64 architecture), you can add +universal to the port installation command.

If you want to use the ODBC storage plugin, you can add +odbc to the command line and it will ensure that the unixODBC port is installed and build the plugin for you.

Basic Configuration

  1. In httpd.conf:

    • Shibboleth includes sample snippets in /opt/local/etc/shibboleth for each version of Apache. Do not include these files directly but copy the relevant portions to your own Apache configuration files/strategy.

    • Use of the <RequestMap> feature is not needed for use with Apache, but if you must, its use absolutely requires that the UseCanonicalName Apache directive be set.

    • Ensure that the ServerName directive in each virtual host is properly set, including overriding the scheme or port as required by any load balancing, proxying, or offloading you may be doing.

  2. Restart Apache.

  3. The port install process generates and installs a launchd descriptor to use in starting and monitoring shibd. You can manually start and stop it yourself, or you can use launchctl like so:

    launchctl load -F /Library/LaunchDaemons/org.macports.shibd.plist launchctl unload -F /Library/LaunchDaemons/org.macports.shibd.plist

    If you want shibd to start upon boot, run:

    launchctl load -Fw /Library/LaunchDaemons/org.macports.shibd.plist

  4. By default, the Shibboleth module is configured to log information to the local syslog, with a subset also to the Apache error log.

  5. The shibd service creates its own separate logs in /opt/local/var/log/shibboleth. This is the most important log used for debugging anything regarding the SP and most problems manifest here rather than on the web server side.


In order to upgrade the installation, run the commands below.