I wrote this early in 2001 so I could manage my personal library. That was BEFORE I went to library school. There were a couple of programs out there for managing personal libraries, but none suited my needs, so I wrote this. I had never taken a cataloguing course, knew nothing about MARC records, and wasn't a very good programmer. (The first two changed, the third is still true.)
If I were doing this again I'd do it very differently, or I might not do it at all. I might use LibraryThing to manage my collection. If I wrote something for myself I'd use Python or Ruby with a good web framework. But I did this in 2001, before any of that, and I've used it ever since, and it does its job: I know what I have and where it is.
I don't expect any interest in this, but I'm putting it on GitHub to make my life easier, and because there's no reason to keep it private.
Warning: This is not good Perl.
Since I don't expect anyone to actually run this these instructions are not overly helpful.
Set up the hostname 'library' in your DNS. I use /etc/hosts and have it at the same IP number as my local machine. Because Apache will be configured to look for a virtual host with that name, this will work:
<VirtualHost *:80> ServerName library ServerAdmin webmaster@localhost
DocumentRoot /var/www/library/
<Directory /var/www/library/>
AddHandler cgi-script .cgi
Options ExecCGI FollowSymLinks MultiViews
DirectoryIndex index.cgi
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ /var/www/library/cgi-bin/
<Directory "/var/www/library/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/library-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/library-access.log combined
Put all of the Mrs. Abbott files into /var/www/library, set up Apache, run 'apache2ctl restart', and everything will probably be OK. If not then a bit of fiddling will do it if you keep at it, I'm sure.
In Ubuntu 17.04 Apache stopped seeing the MrsAbbott module in the =cgi-bin= directory, so I brute forced it:
sudo cp -r ~/src/mrsabbott/cgi-bin/MrsAbbott* /etc/perl/
Of course you'll also need to set up the database before you can actually add or view any books. First, create the database in MySQL:
create user 'marion'@'localhost' identified by 'XXXXXX'; create database library; grant all privileges on library.* to marion; quit;
Now create the tables and initial data.
TODO: [Put the default insert script here]