Erlang Mailing Lists

Author Message

<  Erlang questions mailing list  ~  starting http server

lyn at healthquiz.com
Posted: Sat Jun 19, 1999 10:34 pm Reply with quote
Guest
hi,

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

any help would be most appreciated. I swear I'll learn how to use
the debugger soon Wink

-Lyn


here is what happens when I try to start it:

> erl -config inets
Erlang (JAM) emulator version 47.4.1

Eshell V47.4.1 (abort with ^G)
1> application:start(inets).
{error,{shutdown,{inets_sup,start,[normal,[]]}}}

=INFO REPORT==== 19-Jun-1999::17:30:04 ===
application: inets
exited: {shutdown,{inets_sup,start,[normal,[]]}}
type: temporary
2>


this is inets.config:

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

and this is /tmp/erlang-http/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 your.server.net

# 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_auth_mnesia mod_esi mod_actions mod_cgi mod_include mod_dir mod_get mod_head mod_log mod_disk_log

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

ServerAdmin jocke_at_erix.ericsson.se

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

ServerRoot /tmp/erlang-http

# 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 /tmp/erlang-http/htdoc

# 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/ /var/tmp/server_root/icons/
#Alias /pics/ /var/tmp/server_root/icons/


Post generated using Mail2Forum (http://m2f.sourceforge.net)
tobbe at serc.rmit.edu.au
Posted: Sun Jun 20, 1999 2:35 pm Reply with quote
Guest
> 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_at_serc.rmit.edu.au

# 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).
---------------------------------------------------------------------



Post generated using Mail2Forum (http://m2f.sourceforge.net)

Display posts from previous:  

All times are GMT
Page 1 of 1
This forum is locked: you cannot post, reply to, or edit topics.

Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum