Some years ago, I set up a couple of web servers using Hiawatha (thanks!) in an installation of Puppy 4.3.1-small on an IGEL thin client:
# hiawatha -v
Hiawatha v6.16, cache, IPv6, SSL, URL toolkit, XSLT
# inxi -b
System: Host: puppypc Kernel: 18.104.22.168 i586 bits: 32 Console: tty 0 Distro: Puppy Linux
Machine: Type: Unknown Mobo: N/A model: GXm-Cx5530A serial: N/A BIOS: Award v: 4.51 PG
CPU: Single Core: Geode Integrated by National Semi type: UP speed: 301 MHz
Graphics: Message: No PCI card data found.
Display Server: X.org 1.3.0 driver: tty: 97x25
Message: Unable to show advanced data. Required tool glxinfo missing.
Network: Message: No PCI card data found.
Drives: HDD Total Size: 3.73 GiB used: 988.6 MiB (25.9%)
# inxi -m
Memory: RAM: total: 244.5 MiB used: 43.6 MiB (17.8%)
Array-1: capacity: 256 MiB note: est slots: 4 EC: None
Device-1: A0 size: N/A speed:
Device-2: A1 size: 256 MiB speed:
Device-3: A2 size: N/A speed:
Device-4: A3 size: N/A speed:
total used free shared buffers
Mem: 250352 238484 11868 0 17376
Swap: 523256 0 523256
Total: 773608 238484 535124
At first, I floundered around to get a working setup, so I might have borked something that's biting me, now, but it's been stable and reliable, afaict, for years. Namecheap registers mywebsite.biz and gfwebsite.com and, along the way, I added virtualhost statements to make the www.website variants resolve to our pages. I use the NameCheap dynamic dns service in my router running OpenWrt to keep our low-traffic sites live over the dynamic IP from my isp. With very few glitches, it's been set and forget.
Lately, I've noticed an increasing focus on https and tried to join the 20th century. First, I tried letsencrypt but it seems the script requires some newer software than I have on the puppypc and upgrading bits is a bit daunting, after all these years and changing of the Puppy guard. I did manage to generate a self-signed cert, configure it in hiawatha.conf, and view the https site after adding the exclusion in browsers, which is made increasingly hard to do and negates any benefit of making https available to visitors.
I broke down and paid namecheap a nominal amount for a couple of COMODO SSL certs that are supposed to cover both website and www.website addresses. In reading docs and howtos, I'm finding differences in syntax between my version of Hiawatha and what is readily available through google search. For example, what I have for the Bind statement, which works, as I described:
BindingID = main-https *
Port = 443
SSLcertFile = /etc/hiawatha/tls/newkey-selfcert.pem
*BindingID is something I added today, trying to get my virtualhost statements to pass a hiawatha start. It doesn't throw a syntax error, at least. I've found I need to use SSLcertFile instead of TLScertFile and assume this difference would apply for every such statement, albeit I've tried TLScertFile and, even ServerKey, which is used in the default hiawatha.conf that came with my installation.
Hostname = website.biz
RequiredBinding = main-http, main-https *
WebsiteRoot = /root/httpd/hiawatha/website.biz/jobs_page
StartFile = index.html
AccessLogfile = /var/log/hiawatha/wsbizaccess.log
ErrorLogfile = /var/log/hiawatha/wsbizerror.log
UseFastCGI = PHP5
UseXSLT = yes
# SSLcertFile = /etc/hiawatha/tls/website.pem
# HostnameAlias = *.website.biz
I also added RequiredBinding just today and it doesn't trigger an error at start. With the SSLcertFile statement uncommented, whether I use TLScertFile or ServerKey or relative path tls/website.pem that I saw in a newer post, today, or just website.pem that I've seen in an older howto, the error is
# /usr/sbin/hiawatha.run restart
Stopping webserver: Hiawatha
Starting webserver: Syntax error in hiawatha.conf on line 129.
Looking at files on my desktop, I think I followed a howto by Growler on the Puppy forum just a little over 5 years ago, installing LHMP-8.0-5.3.4-5.3.10.pet on my puppypc to get this show rolling. Whether upgrading Hiawatha could be helpful or possible is interesting but I don't know a clear path to do that and migrate my sites.
Addendum: After writing this, I looked into the Puppy Package Manager and see that hiawatha-6.17.1-1-p4 is available, there, in case that would make a difference.
Also, I noticed building the latest Hiawatha on my machine would require a newer cmake, so I got 3.11.1 gave it a whirl.
Pretty early on, `bootstrap` complained "Cannot find a C++ compiler supporting C++11 on this system" so I think I'll back-burner that strategy.