1
2          INSTALLATION PROCEDURE & PLATFORM INFORMATION
3
4
5Siege was originally built and tested on GNU/Linux. It has been ported
6to other platforms. See the MACHINES document for more details.
7
8This program was built using the GNU autoconf mechanism.  If you are
9familiar with GNU applications, then siege should present few problems
10especially on the above mentioned platforms. For best results, use gcc.
11
12IMPORTANT: If you are upgrading from an earlier version, you MUST delete
13the older version before installing this one. The simplest way to remove
14the older version to run "make uninstall" in the old source directory.
15If you no longer have the old source, you can configure the new version
16to be installed in the same place as the old version.  Then BEFORE you
17run "make install", run "make uninstall" first.
18
19"Hey! I'm impatient, I only read these things when things go wrong!"
20If that is the case, then follow the steps in item #1 below...
21
22   XXX: If you pulled this code from github.com then you won't have a
23   configure script. You'll need to build one. How do you do that? In
24   the top level source directory run this:
25   $ utils/bootstrap
26
27   NOTE: the bootstrap requires GNU autotools in order to run. You'll
28   need autoconf, automake and libtool installed on your computer
29
301. In a nutshell, to install the application in the default directory,
31   ( /usr/local ), run the following commands:
32   $ ./configure (IMPORTANT: see step 2 for enabling https support)
33   $ make
34   $ make uninstall (if you have an older version installed in PREFIX)
35   $ make install
36
37   This will install the application ( siege ) in the default directory
38   /usr/local/bin.  If that directory is in your PATH, then to run siege
39   and view the online help type:
40   $ siege --help
41
42   To learn more about siege, make sure /usr/local/man is in your
43   MANPATH and type:
44   $ man siege
45
46   For more detailed information about running siege and stress testing
47   HTTP servers, type:
48   $ man layingsiege
49
50   For more details, read on. Especially if you want to install siege
51   in a directory other that /usr/local/bin
52
532. Configuration
54   The configure script attempts to guess the values which are set
55   on your platform.  If all goes well, you should only have to run it
56   with some preferred arguments.  The more notable ones are listed
57   below:
58   --help                 prints the configure script's help section
59   --prefix=/some/dir     installs the files in /some/dir
60   --bindir=/some/bin     installs the executable in /some/bin
61   --mandir=/some/man     installs the man page in /some/man
62   --with-ssl=/some/dir   where dir is where you installed ssl, this
63                          flag is used to enable https protocol.
64
65
66   Since siege is a pretty esoteric program, I prefer to install it in
67   my home directory.  For this reason, I run configure with my home
68   directory as the prefix.
69
70   $ ./configure --prefix=/export/home/jdfulmer
71
72   If you don't already, make sure $HOME/bin and $HOME/man are set
73   appropriately in your .profile.  In my case, I set them like this:
74
75   # jdfulmer's profile
76   PATH=/export/home/jdfulmer/bin:$PATH
77   MANPATH=/export/home/jdfulmer/man:$MANPATH
78
79   export PATH MANPATH
80   ~
81   ~
82
83   To reload your profile without logging out, do this:
84
85   $ . .profile
86
87   If it runs successfully, the configure script creates the Makefiles
88   which lets you build the program.  After you configure your
89   environment, the next step is to build siege. If that step fails, you
90   may have to return to this step.  Reasons for reconfiguring are
91   mentioned below.  If configure failed to create Makefiles, then you
92   have problems which may be beyond the scope of this document, such as
93   no compiler ( you'll have to get one ), no libraries (again, an
94   acquisition on your part).
95
96   HTTPS support
97   To enable https, you must have ssl installed on your system.  Get the
98   latest version from http://www.openssl.org. AFTER ssl is installed,
99   then you have to configure siege to use it:
100   $ ./configure --prefix=/some/dir --with-ssl=/ssl/install/dir
101
102   The openssl default installation is /usr/local/ssl. If you installed
103   openssl in that directory, then you would configure siege like this:
104   $ ./configure --prefix=/some/dir --with-ssl=/usr/local/ssl
105   $ make
106   $ make uninstall (if you have a previous version already installed)
107   $ make install
108
1093. Compilation
110   To compile the program, execute the second step of the nutshell
111   version mentioned in item #1: type "make" and hope for the best.
112   If your environment was configured without errors, then configure
113   should have generated the Makefiles that will enable this step to
114   work.
115
116   The make command will invoke your compiler and build siege.  If you
117   are using gcc on any of the platforms mentioned above, then you
118   should not have problems.  In general, any ANSI C compiler should
119   work.
120
121   Some systems may require options that were not set by the configure
122   script. You can set them using the configure step mentioned above:
123   $ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
124
125   You can also set them by editing the Makefiles that were created as
126   a result of running configure, but this is not preferred.
127
1284. Installation
129   If the program compiled successfully, follow the third nutshell step
130   and type "make install"  This will install the package in the
131   directories that you've selected in the configuration step.  If they
132   are not already, make sure PREFIX/bin and PREFIX/man are in your PATH
133   and MANPATH respectively. This process is described in detail above.
134
135   Files installed:
136   siege          -->    SIEGE_HOME/bin/siege
137   bombardment    -->    SIEGE_HOME/bin/bombardment
138   siege2csv      -->    SIEGE_HOME/bin/siege2csv
139   siege.config   -->    $HOME/.siege/siege.config
140   cookies.txt    -->    $HOME/.siege/cookies.txt
141   siege.1        -->    SIEGE_HOME/man/man1/siege.1
142   bombardment.1  -->    SIEGE_HOME/man/man1/bombardment.1
143   siege2csv.1    -->    SIEGE_HOME/man/man1/siege2csv.1
144
1455. Uninstall
146   To remove the package, type "make uninstall"  To make the source
147   directory completely clean, type "make distclean".  There are
148   differences of opinion regarding this option.  Some people claim that
149   it should not be available as it depends the original Makefiles from
150   the source directory. Since I tend to hoard all source code, I like
151   this feature.
152
153   The point is, if you've installed one version of siege in /usr/local
154   and another version in $HOME, then make uninstall is obviously not
155   going to work in both locations.  The safest thing to do is manually
156   remove the files which were installed by make install. The files and
157   their locations are described in item #4.
158
1596. Read the documentation
160   The online help is pretty straight forward ( siege --help ):
161   Usage: siege [options]
162   Options:
163    -V, --version             VERSION, prints the version number.
164    -h, --help                HELP, prints this section.
165    -C, --config              CONFIGURATION, show the current config.
166    -v, --verbose             VERBOSE, prints notification to screen.
167    -q, --quiet               QUIET turns verbose off and suppresses output.
168    -g, --get                 GET, pull down HTTP headers and display the
169                              transaction. Great for application debugging.
170    -c, --concurrent=NUM      CONCURRENT users, default is 10
171    -r, --reps=NUM            REPS, number of times to run the test.
172    -t, --time=NUMm           TIMED testing where "m" is modifier S, M, or H
173                              ex: --time=1H, one hour test.
174    -d, --delay=NUM           Time DELAY, random delay before each request
175    -b, --benchmark           BENCHMARK: no delays between requests.
176    -i, --internet            INTERNET user simulation, hits URLs randomly.
177    -f, --file=FILE           FILE, select a specific URLS FILE.
178    -R, --rc=FILE             RC, specify an siegerc file
179    -l, --log[=FILE]          LOG to FILE. If FILE is not specified, the
180                              default is used: PREFIX/var/siege.log
181    -m, --mark="text"         MARK, mark the log file with a string.
182                              between .001 and NUM. (NOT COUNTED IN STATS)
183    -H, --header="text"       Add a header to request (can be many)
184    -A, --user-agent="text"   Sets User-Agent in request
185    -T, --content-type="text" Sets Content-Type in request
186
187   For more detailed information, consult the man pages:
188   $ man siege
189   $ man siege.config
190
191   All the siege man pages are also available online:
192   http://www.joedog.org/siege/
193
194   OR, read the manual online:
195   http://www.joedog.org/siege/manual.html
196
1977. Edit the .siege/siege.config file in your home directory.  This file
198   contains runtime directives for siege.  Each directive is well
199   documented with comments.  Some directives exist ONLY in this file;
200   they don't have a command line option.  If you are upgrading from an
201   earlier version, your original version is kept and a new resource
202   file is installed as .siegerc.new.  In order to take advantage of any
203   new directives, you might want to use this new file instead.
204
205--
206
207Please consult the file, COPYING for complete license information.
208
209Copyright (C)2000-2016 Jeffrey Fulmer <jeff@joedog.org>, et al.
210
211Permission is granted to anyone to make or distribute verbatim
212copies of this document as received, in any medium, provided that
213the copyright notice and this permission notice are preserved, thus
214giving the recipient permission to redistribute in turn.
215
216Permission is granted to distribute modified versions of this
217document, or of portions of it, under the above conditions,
218provided also that they carry prominent notices stating who last
219changed them.
220
221
222