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.


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.

Another warning to read all the readme and installation help files for Ringlink and other files needed for it to run. It turns out that the LWP and Compress::Zlib modules have ther own prerequisite and ancillary files that need to be installed.

This is the order I downloaded and installed the files:

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

The LWP and Compress files from CPAN are downloaded as tar.gz files. To unpack the files in Windows 10 use the command:

tar -xvzf [path]\[input-file].tar.gz -C [path]\[output-directory]

For example:

tar -xvzf \downloads\libwww-perl-6.77.tar.gz -C \downloads\libwww-perl-6-77

The output directory must be created before running the command as it has no capability of doing it for you.

In Windows 11, just right click on the .tar.gz file and choose "Extract All.." from the menu.

Once the folder has been created, the makefile.pl file in it can be run and then the make command run to test and install the module. To do this, open a command prompt and cd into the newly created folder. The run the commands:

perl makefile.pl
make
make test
make install

If any of the dependencies are missing, the output from make test will contain a lot of errors, similar to this:

Files=93, Tests=718, 13 wallclock secs ( 0.39 usr + 0.17 sys = 0.56 CPU)
Result: FAIL
Failed 77/93 test programs. 404/718 subtests failed.
make: *** [makefile:925: test_dynamic] Error 255

For more information see Radiator and PerlDocs.


Install Ringlink

Ringlink 3.4 is downloaded as a tar.gz file. This is unpacked as the Perl modules detailed above.

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.

Find the main configuation file, rlconfig.pm file in the serve'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.

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.

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. You will get the error message:

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

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. The index.html file will need to be rewritten to suit your purposes anyway.


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