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