starting http server

Torbjorn Tornkvist tobbe@REDACTED
Mon Jun 21 02:34:36 CEST 1999


> I'm trying to start the http server from the inets distribution, but
> haven't been successful.

I got it to work (almost) right away. 
Here are a couple of things you could try.

1. In the inets.config file. Make syre you insert
   a newline after:

     [{inets,
       [{services,[{httpd,"/tmp/erlang-http/conf/httpd.conf"}]}]}].

   The Erlang parser is a bit picky....

2. I had to create a 'logs' directory under my ServerRoot dir.

3. I also removed some of the modules. I include my
   inets.config file and conf/httpd.conf file below.

4. Copy a HTML page from somewhere else to <ServerRoot>/htdocs/index.html
   (So that you can test if you get something back)

5. To get some more info printed at start up. Start Erlang like this:

     erl -boot start_sasl -config ./inets

6. When you point your browser towards your Web server,
   don't forget to specify the port number you have specified, e.g:

      http://10.0.0.1:8888

7. Watch if you get something in the logs/access_log file, e.g:

      tail -f logs/access_log


Cheers /Tobbe

---------------- <ServerRoot>/inets.config ----------------
[{inets,
  [{services,
    [{httpd,"/usr/home/tobbe/test/conf/httpd.conf"}]}]}].
-----------------------------------------------------------

-------------- <ServerRoot>/conf/httpd.conf ---------------

# Port: The port the standalone listens to. For ports < 1023, you will
# need httpd to be run as root initially.

Port 8888

# ServerName allows you to set a host name which is sent back to clients for
# your server if it's different than the one the program would get (i.e. use
# "www" instead of the host's real name).
#
# Note: You cannot just invent host names and hope they work. The name you 
# define here must be a valid DNS name for your host. If you don't understand
# this, ask your network administrator.

ServerName campari.serc.rmit.edu.au

# SocketType is either ip_comm, sockets or ssl.

SocketType ip_comm

# Modules: Server run-time plug-in modules written using the Erlang
# Web Server API (EWSAPI). The server API make it easy to add functionality
# to the server. Read more about EWSAPI in the Reference Manual.
# WARNING! Do not tamper with this directive unless you are familiar with
# EWSAPI.

Modules mod_alias mod_auth mod_esi mod_actions mod_dir mod_get mod_head mod_log mod_disk_log

# ServerAdmin: Your address, where problems with the server should be
# e-mailed.

ServerAdmin tobbe@REDACTED

# ServerRoot: The directory the server's config, error, and log files
# are kept in

ServerRoot /usr/home/tobbe/test

# ErrorLog: The location of the error log file. If this does not start
# with /, ServerRoot is prepended to it.

ErrorLog logs/error_log

# TransferLog: The location of the transfer log file. If this does not
# start with /, ServerRoot is prepended to it.

TransferLog logs/access_log

# SecurityLog: The location of the security log file (mod_security required)
#
SecurityLog logs/security_log

# ErrorDiskLog: The location of the error log file. If this does not
# start with /, ServerRoot is prepended to it. This log file is managed
# with the disk_log module [See disk_log(3)]. The ErrorDiskLogSize directive
# takes two argument, i.e. MaxBytes and MaxFiles. The wrap log writes at most
# MaxBytes bytes on each file, and it uses MaxFiles files before it wraps, and
# truncates the first file.

ErrorDiskLog logs/error_disk_log
ErrorDiskLogSize 200000 10

# TransferDiskLog: The location of the transfer log file. If this does not
# start with /, ServerRoot is prepended to it. This log file is managed
# with the disk_log module [See disk_log(3)]. The TransferDiskLogSize directive
# takes two argument, i.e. MaxBytes and MaxFiles. The wrap log writes at most
# MaxBytes bytes on each file, and it uses MaxFiles files before it wraps, and
# truncates the first file.

TransferDiskLog logs/access_disk_log
TransferDiskLogSize 200000 10

# SecurityDiskLog: The location of the security log file. If this does not
# start with /, ServerRoot is prepended to it. This log file is managed
# with the disk_log module [See disk_log(3)]. The SecurityDiskLogSize directive
# takes two argument, i.e. MaxBytes and MaxFiles. The wrap log writes at most
# MaxBytes bytes on each file, and it uses MaxFiles files before it wraps, and
# truncates the first file.

SecurityDiskLog logs/security_disk_log
SecurityDiskLogSize 200000 10

# Limit on total number of servers running, i.e., limit on the number
# of clients who can simultaneously connect --- if this limit is ever
# reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.
# It is intended mainly as a brake to keep a runaway server from taking
# the server with it as it spirals down...

MaxClients 50

# KeepAlive sets the maximum number of requests per connection. KeepAlive requests
# are used to lower network latency for HTTP. Please note that the implementation
# in the INETS webserver is experimental, and does not yet function correctly.
#KeepAlive 5

# KeepAliveTimeout sets the number of seconds before an open KeepAlive connection
# times out and closes.
#KeepAliveTimeout 10

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.

DocumentRoot /usr/home/tobbe/test/htdocs

# DirectoryIndex: Name of the file or files to use as a pre-written HTML
# directory index.  Separate multiple entries with spaces.

DirectoryIndex index.html welcome.html

# DefaultType is the default MIME type for documents which the server
# cannot find the type of from filename extensions.

DefaultType text/plain

# Aliases: Add here as many aliases as you need (with no limit). The format is 
# Alias fakename realname

Alias /icons/ /usr/home/tobbe/testicons/
Alias /pics/ /usr/home/tobbe/test/icons/

# ScriptAlias: This controls which directories contain server scripts.
# Format: ScriptAlias fakename realname

ScriptAlias /cgi-bin/ /usr/home/tobbe/test/cgi-bin/
ScriptAlias /htbin/ /usr/home/tobbe/test/cgi-bin/

# This directive adds an action, which will activate cgi-script when a
# file is requested using the method of method, which can be one of
# GET, POST and HEAD. It sends the URL and file path of the requested
# document using the standard CGI PATH_INFO and PATH_TRANSLATED
# environment variables.

#Script HEAD /cgi-bin/printenv.sh

# This directive adds an action, which will activate cgi-script when a
# file of content type mime-type is requested. It sends the URL and
# file path of the requested document using the standard CGI PATH_INFO
# and PATH_TRANSLATED environment variables.

#Action image/gif /cgi-bin/printenv.sh

# ErlScriptAlias: This specifies how "Erl" server scripts are called.
# Format: ErlScriptAlias fakename realname allowed_modules

ErlScriptAlias /down/erl httpd_example io

# EvalScriptAlias: This specifies how "Eval" server scripts are called.
# Format: EvalScriptAlias fakename realname allowed_modules

EvalScriptAlias /eval httpd_example io

# Point SSLCertificateFile at a PEM encoded certificate.

#SSLCertificateFile /var/tmp/server_root/ssl/ssl_server.pem

# If the key is not combined with the certificate, use this directive to
# point at the key file.

#SSLCertificateKeyFile /var/tmp/server_root/ssl/ssl_server.pem

# Set SSLVerifyClient to:
# 0 if no certicate is required
# 1 if the client may present a valid certificate
# 2 if the client must present a valid certificate
# 3 if the client may present a valid certificate but it is not required to
#   have a valid CA

#SSLVerifyClient 0

# Each directory to which INETS has access, can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories). 
---------------------------------------------------------------------




More information about the erlang-questions mailing list