9 Replies Latest reply: Feb 11, 2008 7:46 AM by Ben Rogers
Evan Moore Level 1 Level 1 (5 points)
We currently don't have a cgi-bin on our production servers and this is required for the itunesU.java and class files to execute for authentication. Are there any steps to have a cgi-bin created for me to drop the classes in so it will executve the java classes? We're using windows NT servers.

Thanks for your help!

MacBook Pro, Mac OS X (10.4.6)
  • richwolf Level 3 Level 3 (725 points)
    Hi Evan,

    The Java scripts do not require that you have a cgi-bin directory per se -- this is just the case for web servers like Apache. IIS (which is likely what you have running on your NT/2000/2003 servers) can run CGI. This TechNet doc from Microsoft explains how to setup CGI in IIS:

    http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/bc0c4 729-e892-4871-b8f3-fcbf489f2f09.mspx?mfr=true
  • Evan Moore Level 1 Level 1 (5 points)
    Hi Rich,

    Although I mentioned "java" in my previous message, I believe Perl is the direction we would want to go in.

    I saw in the link that you provided on microsoft.com that it says, "If your CGI program is written as a script, for example a Perl script, then you can give the directory either Execute permissions or Script permissions. To use Script permissions, the script interpreter must be marked as a script engine."

    So, my question is the ITunesU.pl script just going to work if I drop it in the cgi-bin? I understand the script needs to contain our updated credentials for authention purposes.

    Also, it notes in the same message that the "script interpreter must be marked as a script engine" so is this something I need to do since this is code already created by Apple?

    Thanks again for your help!
  • Tony Wilsman Level 1 Level 1 (15 points)
    Evan, we are also running a Perl script on IIS6. This is what I did to get things running:

    1. Install ActivePerl. You can get it here- www.activestate.com

    2. Once it's been installed, open IIS and connect to your webserver.

    3. Under you server should be a folder named "Web Service Extensions". Just to be sure mark "Perl CGI Extension", "Perl ISAPI Extension", and "PerlEx ISAPI Extension" as "Allowed".

    4. On your Webserver, create a folder called "cgi-bin". For security's sake, this should be outside of your "wwwroot" folder.

    5. Back in IIS, right-click on your website, and select New->Virtual Directory.

    6. When the wizard starts, click "next" then enter "cgi-bin" in the "alias" field. next

    7. Enter the path to the "cgi-bin" folder you created in step 4. next

    8. Check "Execute (such as ISAPI applications or CGI)" next, finish.

    9. Now you can place the iTunesU.pl file in the folder you created in step 4, and access it at "http://www.website.edu/cgi-bin/iTunesU.pl"


    You'll need to install 2 Perl modules to run the Perl script.

    1. Click Start -> Run, and type "cmd". This should open your command prompt.

    2. at the command prompt type "ppm install Digest-SHA". This will update your Perl install with the hmacsha256hex algorithm you'll need.

    3. at the command prompt type "ppm install http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd". This will install the SSLeay module you'll need.

    That should get you up and running. I just went through all of this yesterday, so hopefully it'll work well for you too.

  • Evan Moore Level 1 Level 1 (5 points)
    Tony >> Thank you for the detailed instructions to configure IIS for CGI, ActivePearl and the modules. We were able to test everything you provided and it worked perfectly. I'm certain your instructions will be very benefitial to others who have the same questions!

    Rich >> Thank you for responding when you did. Your response pointed me in the right direction to want to have perl instead of java on IIS. Thanks again.

  • Tony Wilsman Level 1 Level 1 (15 points)

    I ran into another problem this morning. Whenever a non-admin user (As in, they are not an administrator on the webserver) tried to access the transfer script they would get the error:

    "LWP will support https URLs if the Crypt::SSLeay module is installed. More information at ."

    I had to go into the c:\perl\bin folder and give Everyone read/execute access on the ssleay32.dll and libeay32.dll files.

    It might save you a headache in the future.

    Mac Mini   Mac OS X (10.4.9)   Dual Boot w/XP
  • Evan Moore Level 1 Level 1 (5 points)
    Thanks Tony. Things have been going so well that I didn't have to come back to see if there were any follow up emails. Thank you for the follow up. I'll keep note of that in my documentation.

  • fabiani Level 1 Level 1 (0 points)
    Hi Tony-

    I tried following your steps below and, when I browse to:
    http://myintranet.lasalle.edu/cgi-bin/ITunesU.pl (accessible to anyone for now) I am seeing this error:

    CGI Error
    The specified CGI application misbehaved by not returning a complete set of HTTP headers.

    Any clue what might be causing that?


  • fabiani Level 1 Level 1 (0 points)
    Found it... for those using the latest .pl and the Perl software described above, you need to add a "\" (backslash) before the "@urn" on line 99 of the .pl script.
  • Ben Rogers Level 1 Level 1 (40 points)
    I was going back and doing this again on a new computer and I used the uwinnipeg hack just like other folks have written here. This time, I couldn't get their repo to work correctly. I dug into the specification and found that they reference the repo http://www.bribes.org/perl/ppm/. I added that to my ppm repos and installed the Crypt-SSLeay lib from there. Hope this saves someone some time.