Installing Ringlink

Introduction

I write a bit about webrings and what prompted me to investigate Ringlink again was the collapse of Neorings. Neorings was created in November 2023, people created 20+ webrings with it and then the site suddenly disappeared with no warning in June 2024.

RingLink here and here (both links to the Internet Archive) was writtten as a Common Gateway Interface (CGI) program in Perl by Gunnar Hjalmarsson in 2000. The last version, 3.4, was written in 2017 (SourceForge) and it is that version used here.

The last official installation guide on the Ringlink site was for version 3.3, but it appears to be the same that is included in the version 3.4 files from SourceForge. I run Apache Haus Apache 2.4.54 on Windows 10 with Strawberry Perl v5.38 already installed and this is my slightly expanded version of the Ringlink installation guide.

The main advice I can give is read the guides carefully! That includes the installation files for the needed Perl modules.


Install Perl

The main Windows Perl installations are Strawberry and Active State. I chose Strawberry and so far, it has given no problems.

Apache has to be configured to use Perl as a Common Gateway Interface (CGI). It is not difficult to do.

Once Perl has been installed, and Apache configured, the installation can be tested using the simple programs at Perl Maven and Perl.com

There are arguements against using Perl as a CGI program, but I really do want to get Ringlink running.


Install Ringlink

Ringlink 3.4 is downloaded as a tar.gz file. My server is on a Windows 10 machine, to unpack the Ringlink tar.gz archive open a command prompt, use the CD sommand to navigate to the downloads folder and then use:

tar -xvzf ringlink-3.4.tar.gz -C ringlink-3.4

In Windows 11, you can simply right-click on the file and choose "Extract All.." from the menu that appears.

Once unpacked, read the license.txt file which explains the GNU General Public License the software has. Also read the readme.html file.

Copy the files inside the cgi-bin folder to the server's cgi-bin folder.

Copy the index.html, the two gif files, and example.css file inside the ringlink folder to a new public folder on the server.


Ringlink Dependencies

Ringlink depends on a couple of Perl modules, LWP for the link checker to work, and Compress::Zlib and the Zlib compression library installed for creating and extracting zip files. The Perl modules should be included in Strawberry Perl install.

If the modules need to be installed, then read the Perl insructions for installing them and use cpan or cpanm or cpanp rather than manually installing them. Be careful, you could end up with multiple versions of the modules!

LWP and Compress::Zlib modules have ther own prerequisite and ancillary files that need to be installed. Here is a suggested order of doing that if required.

Zlib - Compression library. Has it's own installer
LWP libwww-perl - Module for www requests
LWP::Protocol::https - Module to help LWP with HTTPS requests
Compress::Raw::Zlib - A prerequisite file for Compress::Zlib !O Compress. This file provides the low-level interface to Zlib
Compress::Raw::Bzip2 - A prerequisite file for Compress::Zlib !O Compress. This file provides the low-level interface to the bzip2 compression library
Compress::Zlib IO Compress - The interface to zlib compression library

For more information about installing modules manually using MAKE, see Radiator and PerlDocs.


Basic Configuration

Ringlink is not ready to run as soon as the files have been put in their proper places. Running the Perl files as soon as the files are installed will give an Internal Server Error message.

Go to server's cgi-bin/ringlink folder and using a text or code editor open each of hte Perl .pl files and change the chebang (the first line that contains the path to your installation of Perl. In my case this was #!c:/Strawberry/perl/bin/perl -T. The -T switch makes Ringlink run under "taint mode", which means that Perl carries out certain security checks.

Open Ringlink's main configuation file, rlconfig.pm file in the server's cgi-bin/ringlink/lib folder and open it with a text or code editor. Read each section and change the variables to suit your installation. This is not a complicated file to understand and edit, just be careful.

You might see the error message:

Error!
Problem with the $rlmain::sitecountpath variable in rlconfig.pm:
/www/htdocs/username/ringlink/sitecount does not exist.

A hint: The path to the document root is: C:/Apache24/htdocs/brisray.

Go back into rlconfig.pm and check the sitecount line. This expects a filesystem path, not a web URL.

You might see the error message:

Can't open C:/Apache24/cgi-bin/ringlink/lang/mo
No such file or directory at lib/rlmain.pm line 296.

Go to server's cgi-bin/ringlink folder and run langinstall.pl. This creates the language file databases. If this step is missed then none of the Perl files will run properly.

The forms appear, but clicking on some of the buttons you might see the error message:

Missing file: 'statsupdate.txt'
Create it by running the "Reset stats" routine from admin.pl

Open a web browser navigate to where you put the .pl files in the cgi-bin and open admin.pl. Click on "Reset stats" and the error should go awy.

Next, run each of the Perl files in turn and take care of any file/folder write permissions, error messages and so on.

In a browser, open Ringlink's index.html file and ensure all the links to the Perl programs work properly. The page also contains links to the now defunct ringlink.org website. These links can be changed to the appropriate place on the archived site in the Internet Archive, or to suit your setup. The index.html file will need to be rewritten to suit your purposes anyway.

Ringlink's main admin page

Ringlink's main admin page


Customization

Ringlink is written in Perl using plain text script files. and several features can be edited to suit your needs. Be careful when changing these files, and make backups of them before changing them. A mistake can have unwanted consequences.

Email List

Some Ringlink ring forms give a list of people to be emailed. The list can then be copied into an email program and sent. The standard choices in the program are comma separated, space separated and newline which means each email address appears on a new line.

Ringlink's default email separators

Ringlink's default email separators

The problem is that I use Outlook and that expects a semicolon separated list of addresses.

To add a semicolon separated list to those already in Ringlink involveds editing two files, admin.pl and ring.pm. Open both files and search for the word "white", this is to find the lines that refer to the whitespace separated list. Copy the lines, and change references to white or whitespace to semicolon. Ensure that ' ' is replaced by '; ' where necessary. Be sure to copy the entire section in the elseif statements. Save the files.

There should be 9 instances of "white" on 5 lines, 6 if you the include the elseif statement,to change in both admin.pl and ring.pm.

Ringlink's email separators after editing

Ringlink's email separators after editing

It isn't much, but it seves me editing the list to send using Outlook. Of course I could have used Outlook's Options menu, opened the Mail section snd scrolled down to the Send Messages section and clicked on "Commas can be used to separate multiple message recipients" checkbox.

Outlook's mail options

Outlook's mail options


Sources and Resources

Apart from Ringlink and other sites by Gunnar Hjalmarsson, this section includes other webring systems based on Ringlink. These are useful to show design styles used for the pages and webring links.

The Ringlink CGI Perl prgrams were rarely moved or renamed when Ringlink was installed by other people and organizations, it is worth trying to run these programs to see what they did to the design of them.

Alt-Webring (Internet Archive) - A webring system that used Ringlink
Anvilfire - A specialized webring system that used Ringlink
CrickRock (Internet Archive) - A webring system that used Ringlink
GeoSciences e-Journals - A specialized webring system that used Ringlink
The Legacy Precepts Ring - A specialized webring system that used Ringlink
Lord of the Rings (Internet Archive) - A webring system that used Ringlink
Page-Ring (Internet Archive) - A webring system that used Ringlink
Ringlink (Internet Archive) - The last of Ringlink main pages. The site contains a lot of information and advice
Ringlink (SourceForge) - Ringlink code from version 2.4 to version 3.4
Ringlink Demo (Internet Archive) - Ringlink demonstation pages, shows what to expect when installing Ringlink
Ringlink Links (1) (Internet Archive) - Links to other sites that ran Ringlink
Ringlink Links (2) (Internet Archive) - Links to other sites that ran Ringlink
Stardust (Internet Archive) - A webring system that used Ringlink
Web Ring World - News about Ringlink and other webring sytems. It contains a istory of webrings. One of Gunnar's sites
World of Webrings (Internet Archive) - News about Ringlink and other webring sytems. One of Gunnar's sites