Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Yaws webserver
Erlang Shell C JavaScript HTML Makefile Other

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
applications
c_src
contrib
doc
ebin
examples
include
m4
man
munin
priv
rel
scripts
src
ssl
test
win32
www
.gitignore
ChangeLog
LICENSE
Makefile.am
README
README.cygwin
README.osx
README.pkg-config
_build.cfg
configure.ac
erlang_deps.mk
include.mk
known_dialyzer_warnings
rebar.config
rebar.config.script
two-mode-mode.el
vsn.mk
yaws.pc.in

README

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


To build and install


1. Prepare build

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

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

        $> autoconf

  Install build-deps. On Ubuntu/debian this is pretty much equal to

        $> apt-get build-dep yaws

2. Build

  You can build using rebar:

        $> rebar get-deps compile

  or via autotools:

        $> ./configure --prefix=/usr/local

  If using rebar, you'll get a "local installation" with Yaws script in ./bin
  and the Yaws configuration file in ./etc/yaws.

  If using autotools, the build will be configured by default for installation
  under /usr/local. For more information about installation directories and
  other supported options, see the configure help. Useful options are:

    --with-defaultcharset=CHARSET specify default charset, i.e UTF-8
    --with-extrainclude=DIR       dir to include if e.g. pam is installed in some odd place
    --with-erlang=PREFIX          prefix where Erlang is installed (optional)


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

        $> ./configure --prefix=/usr; make

  we can subsequently do:

        $> make install DESTDIR=/foo/bar

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

  Main make targets:

    * all           : compile Yaws
    * debug         : compile Yaws with debug flags
    * clean         : remove files produced by all or debug target
    * install       : do a proper install of Yaws
    * doc or docs   : build the documentation
    * check or test : launch tests
    * cleantest     : remove files produced by check target
    * dialyzer      : run dialyzer on Yaws
    * mkinstaller   : build an installer for windows
    * cleaninstaller: remove files produced by mkinstaller target
    * apps          : compile Yaws applications (chat,mail,wiki,yapp)
    * cleanapps     : remove files produced by apps target
    * installapps   : install Yaws applications
    * fullinstall   : install + installapps
    * fullclean     : clean + cleantest + cleanapps + cleaninstaller

3. Test your build

  With autotools, to test the build, you should install it somewhere:

        $> ./configure --prefix=$PWD/_inst && make install
        $> $PWD/_inst/bin/yaws -i

  If you used rebar to compile Yaws, you can alternatively start Yaws with

        $> ./bin/yaws -i

  Either approach will start a webserver at http://0.0.0.0:8000
  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 supported.

4. Install and run

  NOTE: following commands may require root privileges, depending of the
  installation prefix.

  just run

        $> make install

  Then, to run Yaws, you should use its script:

        $> ${bindir}/yaws -i

  This starts an interactive system.

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


  You can adapt Yaws configuration by editing '${sysconfig}/yaws/yaws.conf'.

5. Daemonize Yaws

  Start it using '--daemon' and '--heart' options

        $> ${bindir}/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 ${sysconfdir}/init.d

  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



Something went wrong with that request. Please try again.