mini_httpd with Haserl

From Alpine Linux

mini_httpd is a small HTTP server. Its performance is not great, but for low or medium traffic sites it's quite adequate. It implements all the basic features of an HTTP server.

Haserl is a small program that uses shell or Lua script to create cgi web scripts. It is intended for environments where PHP or ruby are too big.

mini_httpd setup

For setting up mini_httpd please see article mini_httpd

Haserl setup

Haserl package is available in the Alpine Linux repositories. To install it run:

apk add haserl

You need to modify mini_httpd.conf (to add cgipat)

Contents of /etc/mini_httpd/mini_httpd.conf

## do not leave empty lines in here! #host=www.example.org port=80 user=minihttpd dir=/www cgipat=**.sh

mini_httpd service should be restarted because we have changed it's configuration

rc-service mini_httpd restart

Creating sample bash script

Contents of /www/test.sh

#!/usr/bin/haserl content-type: text/plain <%# This is a sample "env" script %> <% env %>

Setting execution permission

chmod +x /www/*.sh

Troubleshooting

For troubleshooting you can try running commands:

/www/test.sh

/usr/bin/haserl /www/test.sh

su - minihttpd /usr/bin/haserl /www/test.sh

apk add curl curl http://localhost/test.sh

mini_httpd with Haserl and Lua

Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.

For setting up mini_httpd with Haserl and Lua, please, see arcticle mini_httpd with Haserl and Lua