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
At this time, only Apache installations in detectable locations that the configure script can locate automatically are usable. In practice this means that the "right" Apache apxs script needs to be in the system path when the port is configured. Either upon release or shortly after, a port variant will be added to specify use of the MacPort-provided Apache package.
Installing MacPorts
You can find disk images with an installer at http://www.macports.org/ 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
- 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 theUseCanonicalName
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.
Restart Apache.
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
By default, the Shibboleth module is configured to log information to the local syslog, with a subset also to the Apache error log.
- 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.
Upgrades
In order to upgrade the installation, run the commands below.
sudo -s port sync port upgrade outdated