Bug #1040
closed
Investigate alternatives to Monkey as a web server
Added by Hammel about 1 year ago.
Updated about 1 year ago.
Description
Monkey doesn't build with the latest toolchain and it's website doesn't show much activity in awhile. It would be better to use one of the web servers that Buildroot supports.
It needs to be able to handle the following.
- Server side PHP cgi
- Serve up javascript files (should be transparent)
- Support external Basic Auth username/password file
See
- Category set to Web Server
- Assignee set to Hammel
- Priority changed from Normal to Immediate
- Target version set to 3.0 - Corrino
- Severity changed from 03 - Medium to 02 - High
- Description updated (diff)
- Subject changed from Investigate Mongoose as a replacement to Monkey to Investigate alternatives to Monkey as a web server
- Description updated (diff)
Mongoose¶
References
Pros¶
- Embeddable in C applications
Cons¶
- Not part of Buildroot
- Can be proprietary but has open source version
Busybox HTTPD¶
References
Pros¶
- Very small binary/runtime
- Supports Basic Auth
- Supports CGI via php-cgi
Cons¶
- No default conf file.
- Must read source to understand server configuration
- Requires an init script to be written for it.
- Must pass port number on command line or at compile time (re: not a configurable item)
- Not much recent activity
- Doesn't support external basic auth file - changes to authentication must be stored in the httpd.conf file with the rest of the configuration.
- Related to Feature #1013: Configure Busybox httpd for use with piboxwww added
lighttpd - WINNER¶
References
Pros¶
- actively developed
- Buildroot installation has sample conf files.
- Includes default init script
- Server port is runtime configuration option
- Server user/group is runtime configuration option
- Can disable logging in conf file
Cons¶
- Configuration is more complex than Monkey.
- Multiple conf files
- Multiple modules for features
Summary¶
I was able to bring this one up very quickly and it was serving my PHP and JS files. Because it uses a slightly different config for htdigest I need to update both it's config and the code for piboxwww to allow authentication to work properly. But this is all very doable. I can also remove the monkey opkg dependency on piboxwww since lighttpd will be included in the dev system now.
So lighttpd will be the replacement for monkey.
hiawatha¶
References
Pros¶
- Has some recent activity
- Per-directory authentication files
Cons¶
- Big jump between latest release and recent releases in same release cycle (11.x)
- Configuration is more complex than Monkey, but not as bad as lighttpd.
- Description updated (diff)
thttpd¶
References
Pros¶
- External auth files per directory, might not support site wide auth file.
Cons¶
- Not actively maintained
- Configuration is compile time, via a header file.
- Description updated (diff)
- Related to Feature #1014: Configure lighttpd for use with piboxwww added
lighttpd seems the best choice so far. I've modified the default config script to disable logging and various other things, set the port to 2001 and manually installed the piboxwww files because the opkg install depends on the Monkey opkg. That will have to be fixed if we go this route.
After all that, I have the front page attempted to be displayed, but the action icons are missing. So I need to enable error and debug logging to see if that tells me anything.
- Status changed from New to In Progress
- % Done changed from 0 to 40
- Status changed from In Progress to Closed
- % Done changed from 40 to 100
Also available in: Atom
PDF