Yaws webserver
Erlang Shell C JavaScript D Emacs Lisp
Pull request Compare This branch is 663 commits behind klacke:master.
Latest commit 942e307 Oct 23, 2011 @vinoski vinoski ensure .yaws id dir is created in embedded mode (#66)
Fix #66 by making sure the .yaws directory corresponding to the yaws
ID is created for embedded applications using
Failed to load latest commit information.
applications FreeBSD patch by Jimmy Olgeni, add quotes around vsn number in .app file May 25, 2011
c_src epam: removed unused variable May 7, 2011
debian debian patch from David Welton applied May 24, 2004
doc remove obsolete username config from yaws.tex Oct 1, 2011
examples release work Feb 9, 2010
include add config setting for acceptor pool size Sep 26, 2011
man add config setting for acceptor pool size Sep 26, 2011
munin README.munin Jun 12, 2009
priv empty dir Feb 23, 2009
src ensure .yaws id dir is created in embedded mode (#66) Oct 23, 2011
ssl mkcert Oct 18, 2009
test ensure .yaws id dir is created in embedded mode (#66) Oct 23, 2011
win32 1.89 rel work Sep 25, 2010
www prepare for 1.91 Aug 2, 2011
.gitignore add yapp.app to .gitignore Jul 17, 2011
ChangeLog prepare 1.68 Feb 8, 2007
LICENSE changed licens to proper BSD Apr 5, 2006
Makefile delete chatty messages, make yaws_server upgrade-friendly (Klarna) Sep 23, 2011
README add rebar support (Tuncer Ayaz and Steve Vinoski) May 7, 2011
README.pkg-config add pkg-config support contributed by Olivier Girondel Jan 29, 2009
README.win32-cygwin readme docs Aug 3, 2009
_build.cfg Adding files for Erlware. A very rough packaging of 1.76 has been rel… May 15, 2008
config.guess "" Mar 13, 2004
config.sub "" Mar 13, 2004
configure.in changes for OS X Lion for build and test Sep 23, 2011
include.mk.in rebar: fix loading of version string from vsn.mk Oct 20, 2011
install-sh added ability to run as different user than root Nov 27, 2002
rebar.config more build avoidance for rebar build May 8, 2011
yaws.pc.in add pkg-config support contributed by Olivier Girondel Jan 29, 2009
yaws.rel.src yaws.rel.src was missing and better error printuts when yaws.conf is … Sep 1, 2008


This is yaws, a webserver for dynamic content written in Erlang.

To build and install

0. Get and install an Erlang system (http://www.erlang.org)

1. If you've cloned the source from github and you want to build using
   configure and make, note there is no ./configure script in the
   source, so create one:

# autoconf

1.b Install build-deps. On Ubuntu/debian this is pretty much equal to
# apt-get build-dep yaws

2. You can build using rebar:

# rebar compile

  or via configure and make:

# ./configure --prefix=/usr/local

  If using rebar, you'll get a local installation with yaws in
  $HOME/bin and the yaws configuration file in $HOME/yaws.conf. If
  using configuration and make, the build will be configured by
  default for installation under /usr/local including var files in
  /usr/local/var/run/yaws and etc files in /usr/local/etc/yaws.

  NOTE: With configure, you can also change the target directory for
  etc and var directories by using:

  --localstatedir=DIR     for files that should go in /var
  --sysconfdir=DIR        for files that should go in /etc
  --disable-pam           If we for some reason do not want pam support
  --with-extrainclude=DIR Will add DIR to the include path
                          May be useful if e.g. pam is installed
		          somewhere where its usually not found
  --with-defaultcharset=String  Will set the default charset used
                        in generated page headers. Usually never needed.

  This way you can precisely control where you install Yaws (This is
  useful for computers where you do not have right access to the
  standard systemdirs).

  For example:

    ./configure --prefix=/home/install/yaws --localstatedir=/home/install/yaws/var --sysconfdir=/home/install/etc

2b. Note to packagers (rpm, deb ...) All install targets support the
    DESTDIR variable. Thus, if we do

    ./configure --prefix=/usr; make

    we can subsequently do:

    DESTDIR=/foo/bar make install

    All yaws files will be installed under DESTDIR, but all
    code will assume yaws should be installed under /usr.

3. make

    This will build the system.

   make docs

    (Optional) You can issue this command if you want to build Yaws

   make local_install

    This will create an executable script in the $HOME/bin directory
    and a config file in $HOME/yaws.conf. This is for developers
    only. This is the only type of installation "rebar compile"

4. To test the build, start it as

   ./bin/yaws -i

   If you used rebar to compile yaws, you can alternatively start yaws

   $HOME/bin/yaws -i

   Either approach will start a webserver at .
   Terminate through ^C, or ^G followed by q, or

   > init:stop()

   NOTE: If you've used rebar to build the system, none of the
   following directions apply. With rebar only local installations are

5. as root make install

6. as root start as

   /usr/local/bin/yaws -i

   This starts an interactive system.

7. With the default yaws.conf file, this will create a webserver at
   http://${host} and one at https://${host}

8. as root edit /usr/local/etc/yaws/yaws.conf

9. Create content in /usr/local/var/yaws/www

10a. Start as /usr/local/bin/yaws --daemon --heart
     This will start a daemon (--daemon) which will be autorestarted when/if
     it crashes or hangs (--heart)
     Also, for most unices, we create proper start scripts in
     /etc/init.d (sysconfdir)

10b. Or start interactive system as /usr/local/bin/yaws -i

11.  Example: Here is how I compile/start the yaws system that runs
     at http://yaws.hyber.org (Ubuntu server system)

     # autoconf
     # ./configure --sysconfdir=/etc
     # make && make install
     # /etc/init.d/yaws start