MTU ISO - Troubleshooting

  • If you are using the GNU compiler (gcc) you should be at version 3.3.2 or greater.

  • Are you using Solaris and GCC? You're probably getting weird errors when you try and 'make'. That's because the configure script, currently, doesn't check for the compiler type. On Solaris it assumes Sun's C compiler. All you should have to do is edit the Makefile and change all the "-R" flags to "-Wl,-rpath," flags and change "-KPIC" to "-fpic".

  • One of the best ways to troubleshoot the Apache module is to watch the web server's error_log. If you really want to see everything that the module is doing edit your httpd.conf file and change "LogLevel" to "debug". Then restart the web server.

  • It is important that the time on your web server closely matches that of time.mtu.edu.

  • Cookies are hostname based. As a result you can not test an application running on an unresolvable host. The web server must be running on a machine whose name ends in ".mtu.edu".

  • One of the most common problems comes from OpenSSL errors. Please check here to translate any OpenSSL error codes you may be seeing. These codes are returned by the authentication routines. NOTE: if you constantly get error codes about expiration or not yet valid then you should make sure the time on your machine is correct. MTU does maintain an NTP and RDATE server for use at time.mtu.edu. To help debug issues with time in regard to OpenSSL please check out this list of useful OpenSSL commands.

  • Having trouble with getting the module to link correctly? Wondering where the mod_authnz_mtuiso.so went? Me too! I believe this is a bug in the libtool distributed with Apache 2.0.53 and 2.0.54. They seem to agree. Check out:

    http://issues.apache.org/bugzilla/show_bug.cgi?id=33540

    The module still builds. It can be found in the .libs subdirectory of the source tree. However, if you perform an ldd .libs/mod_authnz_mtuiso.so you will probably notice the following at the top: "libmtuiso.so => (file not found)". One solution is to set your LD_LIBRARY_PATH environment variable so Apache can find libmtuiso.so when it starts. Another solution is a tad more complicated, but keeps you from having to set your LD_LIBRARY_PATH for Apache. Instructions/Clues on the complicated solution are below.

    1. Build the module as normal.

    2. Find the last line from the 'make' command. It should look something like this:

      <apache_install_dir>/build/libtool --silent --mode=link /usr/local/bin/gcc -o mod_authnz_mtuiso.la -rpath,/dcs/local/mtuiso/mtuiso-1.6.0/lib -rpath,/dcs/local/web/test.dcs.it.mtu.edu/httpd-2.0.53.prefork/lib -L/dcs/local/mtuiso/mtuiso-1.6.0/lib -L/dcs/local/web/test.dcs.it.mtu.edu/httpd-2.0.53.prefork/lib -lmtuiso -lapr-0 -laprutil-0 -rpath /dcs/local/web/test.dcs.it.mtu.edu/httpd-2.0.53.prefork/modules -module -avoid-version mod_authnz_mtuiso.lo

    3. Copy this, but remove the --silent part.

    4. Run the command without the --silent part.

    5. The last line from this command should look like this:

      Solaris Example
      <compiler_command> -shared -Wl,-h -Wl,mod_authnz_mtuiso.so -o .libs/mod_authnz_mtuiso.so .libs/mod_authnz_mtuiso.o -R/dcs/local/web/test.dcs.it.mtu.edu/httpd-2.0.53.prefork/lib -R/dcs/local/web/test.dcs.it.mtu.edu/httpd-2.0.53.prefork/lib -L/dcs/local/mtuiso/mtuiso-1.6.0/lib -L/dcs/local/web/test.dcs.it.mtu.edu/httpd-2.0.53.prefork/lib -lmtuiso /dcs/local/web/test.dcs.it.mtu.edu/httpd-2.0.53.prefork/lib/libapr-0.so /dcs/local/web/test.dcs.it.mtu.edu/httpd-2.0.53.prefork/lib/libaprutil-0.so -lc

      Linux Example
      <compiler_command> -shared .libs/mod_authnz_mtuiso.o -Wl,--rpath -Wl,/services/linux/web/www.login.mtu.edu/httpd-2.0.54.prefork_ldapssl_AS3/lib -Wl,--rpath -Wl,/services/linux/web/www.login.mtu.edu/httpd-2.0.54.prefork_ldapssl_AS3/lib -L/services/linux/web/www.login.mtu.edu/db-4.1.25.NC_AS3/lib -L/services/linux/web/www.login.mtu.edu/openldap-2.1.22_AS3/lib -L/services/linux/web/www.login.mtu.edu/openssl-0.9.7g_AS3/lib -L/services/linux/web/www.login.mtu.edu/mtuiso-1.6.0_AS3/lib -L/services/linux/web/www.login.mtu.edu/httpd-2.0.54.prefork_ldapssl_AS3/lib -lmtuiso /services/linux/web/www.login.mtu.edu/httpd-2.0.54.prefork_ldapssl_AS3/lib/libapr-0.so /services/linux/web/www.login.mtu.edu/httpd-2.0.54.prefork_ldapssl_AS3/lib/libaprutil-0.so -Wl,-soname -Wl,mod_authnz_mtuiso.so -o .libs/mod_authnz_mtuiso.so

    6. Solaris
      If you notice, there is no -R<path to libmtuiso>. Add a -R<path to libmtuiso> if you don't have one. If you do just keep reading.

      Linux
      Remove the "-Wl,--rpath" flags. Change the "-Wl,<path>" flags to "-Wl,-rpath,<path>". Again, if you don't have a "-Wl,-rpath,<path to libmtuiso>" add one.

    7. Run the edited command.

    8. Now when you ldd .libs/mod_authnz_mtuiso.so the module should know where libmtuiso.so is.