mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-12 16:50:21 +00:00
Updated manual
This commit is contained in:
1 parent
63e8052e4b
commit
7a52bd643c
1 file changed
+98
-9
+98
-9
@@ -43,6 +43,19 @@ document root, because command line options take priority over
|
|||||||
configuration file. Configuration options section below provide a good
|
configuration file. Configuration options section below provide a good
|
||||||
overview of Mongoose features.
|
overview of Mongoose features.
|
||||||
|
|
||||||
|
Note that configuration options on the command line must start with `-`,
|
||||||
|
but their names are the same as in the config file. All option names are
|
||||||
|
listed in the next section. Thus, the following two setups are equivalent:
|
||||||
|
|
||||||
|
# Using command line arguments
|
||||||
|
$ mongoose -listening_ports 1234 -document_root /var/www
|
||||||
|
|
||||||
|
# Using config file
|
||||||
|
$ cat mongoose.conf
|
||||||
|
listening_ports 1234
|
||||||
|
document_root /var/www
|
||||||
|
$ mongoose
|
||||||
|
|
||||||
Mongoose can also be used to modify `.htpasswd` passwords file:
|
Mongoose can also be used to modify `.htpasswd` passwords file:
|
||||||
|
|
||||||
mongoose -A <htpasswd_file> <realm> <user> <passwd>
|
mongoose -A <htpasswd_file> <realm> <user> <passwd>
|
||||||
@@ -114,15 +127,34 @@ Authorization realm used in `.htpasswd` authorization.
|
|||||||
|
|
||||||
### ssi_pattern `**.shtml$|**.shtm$`
|
### ssi_pattern `**.shtml$|**.shtm$`
|
||||||
All files that match `ssi_pattern` are treated as SSI.
|
All files that match `ssi_pattern` are treated as SSI.
|
||||||
Unknown SSI directives are silently ignored. Currently, two SSI
|
|
||||||
|
Server Side Includes (SSI) is a simple interpreted server-side scripting
|
||||||
|
language which is most commonly used to include the contents of a file into
|
||||||
|
a web page. It can be useful when it is desirable to include a common piece
|
||||||
|
of code throughout a website, for example, headers and footers.
|
||||||
|
|
||||||
|
In order for a webpage to recognize an SSI-enabled HTML file, the filename
|
||||||
|
should end with a special extension, by default the extension should be
|
||||||
|
either `.shtml` or `.shtm`.
|
||||||
|
|
||||||
|
Unknown SSI directives are silently ignored by mongoose. Currently, two SSI
|
||||||
directives are supported, `<!--#include ...>` and
|
directives are supported, `<!--#include ...>` and
|
||||||
`<!--#exec command>`. Note that `<!--#include ...>` directive supports
|
`<!--#exec "command">`. Note that `<!--#include ...>` directive supports
|
||||||
three path specifications:
|
three path specifications:
|
||||||
|
|
||||||
<!--#include virtual="path"> Path is relative to web server root
|
<!--#include virtual="path"> Path is relative to web server root
|
||||||
<!--#include file="path"> Path is relative to web server working dir
|
<!--#include file="path"> Path is relative to web server working dir
|
||||||
<!--#include "path"> Path is relative to current document
|
<!--#include "path"> Path is relative to current document
|
||||||
|
|
||||||
|
The `include` directive may be used to include the contents of a file or the
|
||||||
|
result of running a CGI script. The `exec` directive is used to execute a
|
||||||
|
command on a server, and show command's output. Example:
|
||||||
|
|
||||||
|
<!--#exec "ls -l" -->
|
||||||
|
|
||||||
|
For more information on Server Side Includes, take a look at the Wikipedia:
|
||||||
|
[Server Side Includes](http://en.wikipedia.org/wiki/Server_Side_Includes)
|
||||||
|
|
||||||
### throttle
|
### throttle
|
||||||
Limit download speed for clients. `throttle` is a comma-separated
|
Limit download speed for clients. `throttle` is a comma-separated
|
||||||
list of key=value pairs, where key could be:
|
list of key=value pairs, where key could be:
|
||||||
@@ -164,15 +196,22 @@ Comma-separated list of files to be treated as directory index
|
|||||||
files.
|
files.
|
||||||
|
|
||||||
### access\_control\_list
|
### access\_control\_list
|
||||||
Access Control List (ACL) is a comma separated list
|
An Access Control List (ACL) allows restrictions to be put on the list of IP
|
||||||
of IP subnets, each subnet is prepended by `-` or `+` sign. Plus
|
addresses which have access to the web server. In the case of the Mongoose
|
||||||
means allow, minus means deny. If subnet mask is omitted, like
|
web server, the ACL is a comma separated list of IP subnets, where each
|
||||||
`-1.2.3.4`, then it means a single IP address. Mask may vary from 0
|
subnet is prepended by either a `-` or a `+` sign. A plus sign means allow,
|
||||||
to 32 inclusive. On each request, full list is traversed, and
|
where a minus sign means deny. If a subnet mask is omitted, such as `-1.2.3.4`,
|
||||||
last match wins. Default setting is to allow all accesses. Examples:
|
this means to deny only that single IP address.
|
||||||
|
|
||||||
|
Subnet masks may vary from 0 to 32, inclusive. The default setting is to allow
|
||||||
|
all accesses. On each request the full list is traversed, and
|
||||||
|
the last match wins. Examples:
|
||||||
|
|
||||||
-0.0.0.0/0,+192.168/16 deny all acccesses, only allow 192.168/16 subnet
|
-0.0.0.0/0,+192.168/16 deny all acccesses, only allow 192.168/16 subnet
|
||||||
|
|
||||||
|
To learn more about subnet masks, see the
|
||||||
|
[Wikipedia page on Subnetwork](http://en.wikipedia.org/wiki/Subnetwork)
|
||||||
|
|
||||||
### extra\_mime\_types
|
### extra\_mime\_types
|
||||||
Extra mime types to recognize, in form `extension1=type1,exten-
|
Extra mime types to recognize, in form `extension1=type1,exten-
|
||||||
sion2=type2,...`. Extension must include dot. Example:
|
sion2=type2,...`. Extension must include dot. Example:
|
||||||
@@ -236,7 +275,9 @@ Or, to imitate user home directories support, do:
|
|||||||
### hide\_files\_patterns
|
### hide\_files\_patterns
|
||||||
A pattern for the files to hide. Files that match the pattern will not
|
A pattern for the files to hide. Files that match the pattern will not
|
||||||
show up in directory listing and return `404 Not Found` if requested. Pattern
|
show up in directory listing and return `404 Not Found` if requested. Pattern
|
||||||
must be for a file name only, not including directory name.
|
must be for a file name only, not including directory name. Example:
|
||||||
|
|
||||||
|
mongoose -hide_files_patterns secret.txt|even_more_secret.txt
|
||||||
|
|
||||||
# Common Problems
|
# Common Problems
|
||||||
- PHP doesn't work - getting empty page, or 'File not found' error. The
|
- PHP doesn't work - getting empty page, or 'File not found' error. The
|
||||||
@@ -245,6 +286,13 @@ must be for a file name only, not including directory name.
|
|||||||
full path to the PHP interpreter, e.g.:
|
full path to the PHP interpreter, e.g.:
|
||||||
`mongoose -cgi_interpreter /full/path/to/php-cgi`
|
`mongoose -cgi_interpreter /full/path/to/php-cgi`
|
||||||
|
|
||||||
|
- Mongoose fails to start. If Mongoose exits immediately when run, this
|
||||||
|
usually indicates a syntax error in the configuration file
|
||||||
|
(named `mongoose.conf` by default) or the command-line arguments.
|
||||||
|
Syntax checking is omitted from Mongoose to keep its size low. However,
|
||||||
|
the Manual should be of help. Note: the syntax changes from time to time,
|
||||||
|
so updating the config file might be necessary after executable update.
|
||||||
|
|
||||||
# Embedding
|
# Embedding
|
||||||
Embedding Mongoose is easy. Somewhere in the application code, `mg_start()`
|
Embedding Mongoose is easy. Somewhere in the application code, `mg_start()`
|
||||||
function must be called. That starts the web server in a separate thread.
|
function must be called. That starts the web server in a separate thread.
|
||||||
@@ -261,6 +309,47 @@ that shows how to easily any data can be embedded
|
|||||||
directly into the executable. If such data needs to be encrypted, then
|
directly into the executable. If such data needs to be encrypted, then
|
||||||
encrypted database or encryption dongles would be a better choice.
|
encrypted database or encryption dongles would be a better choice.
|
||||||
|
|
||||||
|
# Build on Android
|
||||||
|
|
||||||
|
This is a small guide to help you run mongoose on Android. Currently it is
|
||||||
|
tested on the HTC Wildfire. If you have managed to run it on other devices
|
||||||
|
as well, please comment or drop an email in the mailing list.
|
||||||
|
Note : You dont need root access to run mongoose on Android.
|
||||||
|
|
||||||
|
- Download the source from the Downloads page.
|
||||||
|
- Download the Android NDK from here
|
||||||
|
- Make a folder (e.g. mongoose) and inside that make a folder named "jni".
|
||||||
|
- Add `mongoose.h`, `mongoose.c` and `main.c` from the source to the jni folder.
|
||||||
|
- Make a new file in the jni folder named "Android.mk".
|
||||||
|
This is the make file for ndk-build.
|
||||||
|
|
||||||
|
Android.mk:
|
||||||
|
|
||||||
|
LOCAL_PATH := $(call my-dir)
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := mongoose
|
||||||
|
LOCAL_SRC_FILES := main.c mongoose.c
|
||||||
|
include $(BUILD_EXECUTABLE)
|
||||||
|
|
||||||
|
- Run `./ndk-build -C /path/to/mongoose/`.
|
||||||
|
This should generate mongoose/lib/armeabi/mongoose
|
||||||
|
- Using the adb tool, push the generated mongoose binary to `/data/local`
|
||||||
|
folder on device.
|
||||||
|
- From adb shell, navigate to `/data/local` and execute `./mongoose`.
|
||||||
|
- To test if the server is running fine, visit your web-browser and
|
||||||
|
navigate to `http://127.0.0.1:8080` You should see the `Index of /` page.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
- jni stands for Java Native Interface. Read up on Android NDK if you want
|
||||||
|
to know how to interact with the native C functions of mongoose in Android
|
||||||
|
Java applications.
|
||||||
|
- Download android-sdk for the adb tool.
|
||||||
|
- TODO: A Java application that interacts with the native binary or a
|
||||||
|
shared library.
|
||||||
|
|
||||||
|
|
||||||
# Other Resources
|
# Other Resources
|
||||||
- Presentation made by Arnout Vandecappelle at FOSDEM 2011 on 2011-02-06
|
- Presentation made by Arnout Vandecappelle at FOSDEM 2011 on 2011-02-06
|
||||||
|
|||||||
Reference in new issue
Block a user