Jmeter is basically used for load testing of web applications.

JMeter is to first download the latest production release and install it. The release contains all of the files you need to build and run most types of tests, e.g. Web (HTTP/HTTPS), FTP, JDBC, LDAP, Java, and JUnit.

If you want to perform JDBC testing, then you will, of course, need the appropriate JDBC driver from your vendor. JMeter does not come with any JDBC drivers.

If you want to install the jmeter on your linux box you need to follow my steps

1) Goto http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi
2) Download Binary 2.3.4.zip . The zip file name will be “jakarta-jmeter-2.3.4″
3) Paste it in /var/www/html/
4) Unzip “jakarta-jmeter-2.3.4″
5) New folder with name “jakarta-jmeter-2.3.4″ will be created
6) Go to command prompt
7) go to “jakarta-jmeter-2.3.4″ folder (cd /var/www/html/jakarta-jmeter-2.3.4)
8) go to “bin” folder (cd bin)
9) Now you are in bin folder (i.e /var/www/html/jakarta-jmeter-2.3.4/bin/)
10) type the command “sh jmeter”
11) After a short pause, the JMeter GUI should appear.

After this you can use following commands for load testing.

For non-interactive testing, you may choose to run JMeter without the GUI. To do so, use the following command options

-n This specifies JMeter is to run in non-gui mode

-t [name of JMX file that contains the Test Plan].

-l [name of JTL file to log sample results to].

-r Run the test in the servers specified by the JMeter property “remote_hosts”

-R [list of remote servers] Run the test in the specified remote servers

The script also lets you specify the optional firewall/proxy server information:

-H [proxy server hostname or ip address]
-P [proxy server port]

Example : jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000


ABOUT SIEGE
Siege is an http load testing and benchmarking utility. It was designed to let web developers measure their code under duress, to see how it will stand up to load on the internet. Siege supports basic authentication, cookies, HTTP and HTTPS protocols. It lets its user hit a web server with a configurable number of simulated web browsers. Those browsers place the server “under siege.”

PLATFORM SUPPORT
Siege was written on GNU/Linux and has been successfully ported to AIX, BSD, HP-UX and Solaris. It should compile on most System V UNIX variants and on most newer BSD systems. Because Siege relies on POSIX.1b features not supported by Microsoft, it will not run on Windows. Of course you can use Siege to test a Windows HTTP server.

Download siege from following URL or Using following command
[kapil@kapil-pc ~]$ wget ftp://ftp.joedog.org/pub/siege/siege-latest.tar.gz
[kapil@kapil-pc ~]$ tar xzf siege-latest.tar.gz
[kapil@kapil-pc ~]$ mv siege-2.69 siege
[kapil@kapil-pc ~]$ cd siege
[kapil@kapil-pc siege ~]$ su
[root@kapil-pc siege ~]$ ROOT_PASSWORD

[root@kapil-pc siege ~]$ ./configure
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for gawk… gawk
checking for gcc… no
checking for cc… no
checking for cc… no
checking for cl… no
configure: error: no acceptable cc found in $PATH

If you got above error Please Use following command.

[root@kapil-pc siege ~]$ yum install gcc*

Than run following command again

[root@kapil-pc siege ~]$ ./configure
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for gawk… gawk
checking whether make sets $(MAKE)… yes
checking build system type… i686-pc-linux-gnu
checking host system type… i686-pc-linux-gnu
checking for style of include used by make… GNU
checking for gcc… gcc
checking for C compiler default output file name… a.out
checking whether the C compiler works… yes
checking whether we are cross compiling… no
checking for suffix of executables…
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ANSI C… none needed
checking dependency style of gcc… none
checking how to run the C preprocessor… gcc -E
checking for egrep… grep -E
checking for AIX… no
checking for gcc… (cached) gcc
checking whether we are using the GNU C compiler… (cached) yes
checking whether gcc accepts -g… (cached) yes
checking for gcc option to accept ANSI C… (cached) none needed
checking dependency style of gcc… (cached) none
checking for a sed that does not truncate output… /bin/sed
checking for ld used by gcc… /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld… yes
checking for /usr/bin/ld option to reload object files… -r
checking for BSD-compatible nm… /usr/bin/nm -B
checking whether ln -s works… yes
checking how to recognise dependent libraries… pass_all
checking for ANSI C header files… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
checking dlfcn.h usability… yes
checking dlfcn.h presence… yes
checking for dlfcn.h… yes
checking for g++… g++
checking whether we are using the GNU C++ compiler… yes
checking whether g++ accepts -g… yes
checking dependency style of g++… none
checking how to run the C++ preprocessor… g++ -E
checking for g77… no
checking for f77… no
checking for xlf… no
checking for frt… no
checking for pgf77… no
checking for fort77… no
checking for fl32… no
checking for af77… no
checking for f90… no
checking for xlf90… no
checking for pgf90… no
checking for epcf90… no
checking for f95… f95
checking whether we are using the GNU Fortran 77 compiler… yes
checking whether f95 accepts -g… yes
checking the maximum length of command line arguments… 32768
checking command to parse /usr/bin/nm -B output from gcc object… ok
checking for objdir… .libs
checking for ar… ar
checking for ranlib… ranlib
checking for strip… strip
checking if gcc supports -fno-rtti -fno-exceptions… no
checking for gcc option to produce PIC… -fPIC
checking if gcc PIC flag -fPIC works… yes
checking if gcc static flag -static works… yes
checking if gcc supports -c -o file.o… yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries… yes
checking whether -lc should be explicitly linked in… no
checking dynamic linker characteristics… GNU/Linux ld.so
checking how to hardcode library paths into programs… immediate
checking whether stripping libraries is possible… yes
checking if libtool supports shared libraries… yes
checking whether to build shared libraries… yes
checking whether to build static libraries… yes
configure: creating libtool
appending configuration tag “CXX” to libtool
checking for ld used by g++… /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld… yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries… yes
checking for g++ option to produce PIC… -fPIC
checking if g++ PIC flag -fPIC works… yes
checking if g++ static flag -static works… yes
checking if g++ supports -c -o file.o… yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries… yes
checking dynamic linker characteristics… GNU/Linux ld.so
checking how to hardcode library paths into programs… immediate
appending configuration tag “F77″ to libtool
checking if libtool supports shared libraries… yes
checking whether to build shared libraries… yes
checking whether to build static libraries… yes
checking for f95 option to produce PIC… -fPIC
checking if f95 PIC flag -fPIC works… yes
checking if f95 static flag -static works… yes
checking if f95 supports -c -o file.o… yes
checking whether the f95 linker (/usr/bin/ld) supports shared libraries… yes
checking dynamic linker characteristics… GNU/Linux ld.so
checking how to hardcode library paths into programs… immediate
checking for perl… /usr/bin/perl
checking for a POSIX-compliant shell… /bin/sh
checking whether make sets $(MAKE)… (cached) yes
checking for a BSD-compatible install… /usr/bin/install -c
checking for buggy pthread mutex initializers… no
checking for dlopen() in -ldld… no
checking for dlopen() in -ldl… yes
checking for ssl support… yes
checking off/include/openssl/opensslv.h usability… no
checking off/include/openssl/opensslv.h presence… no
checking for off/include/openssl/opensslv.h… no
checking /usr/include/openssl/opensslv.h usability… yes
checking /usr/include/openssl/opensslv.h presence… yes
checking for /usr/include/openssl/opensslv.h… yes
checking for OpenSSL version… >= 0.9.8 (appropriate flag set)
checking for ANSI C header files… (cached) yes
checking for sys/wait.h that is POSIX.1 compatible… yes
checking fcntl.h usability… yes
checking fcntl.h presence… yes
checking for fcntl.h… yes
checking for unistd.h… (cached) yes
checking signal.h usability… yes
checking signal.h presence… yes
checking for signal.h… yes
checking sys/socket.h usability… yes
checking sys/socket.h presence… yes
checking for sys/socket.h… yes
checking sys/select.h usability… yes
checking sys/select.h presence… yes
checking for sys/select.h… yes
checking sys/time.h usability… yes
checking sys/time.h presence… yes
checking for sys/time.h… yes
checking sys/times.h usability… yes
checking sys/times.h presence… yes
checking for sys/times.h… yes
checking sys/resource.h usability… yes
checking sys/resource.h presence… yes
checking for sys/resource.h… yes
checking errno.h usability… yes
checking errno.h presence… yes
checking for errno.h… yes
checking arpa/inet.h usability… yes
checking arpa/inet.h presence… yes
checking for arpa/inet.h… yes
checking netinet/in.h usability… yes
checking netinet/in.h presence… yes
checking for netinet/in.h… yes
checking netdb.h usability… yes
checking netdb.h presence… yes
checking for netdb.h… yes
checking pthread.h usability… yes
checking pthread.h presence… yes
checking for pthread.h… yes
checking for string.h… (cached) yes
checking for strings.h… (cached) yes
checking sched.h usability… yes
checking sched.h presence… yes
checking for sched.h… yes
checking openssl/e_os.h usability… no
checking openssl/e_os.h presence… no
checking for openssl/e_os.h… no
checking openssl/e_os2.h usability… yes
checking openssl/e_os2.h presence… yes
checking for openssl/e_os2.h… yes
checking for an ANSI C-conforming const… yes
checking for size_t… yes
checking whether time.h and sys/time.h may both be included… yes
checking return type of signal handlers… void
checking for working alloca.h… yes
checking for alloca… yes
checking for strchr… yes
checking for memcpy… yes
checking for strncpy… yes
checking for strstr… yes
checking for strlen… yes
checking for strncasecmp… yes
checking for strncmp… yes
checking for socket… yes
checking for gethostbyname… yes
checking for snprintf… yes
checking for strdup… yes
checking for rand_r… yes
checking for localtime_r… yes
checking for getipnodebyname… no
checking for freehostent… no
checking for getopt_long… yes
checking for socket in -lsocket… no
checking for pthread_attr_init in -lpthread… yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating doc/Makefile
config.status: creating html/Makefile
config.status: creating lib/Makefile
config.status: creating lib/joedog/Makefile
config.status: creating include/Makefile
config.status: creating include/joedog/Makefile
config.status: creating utils/Makefile
config.status: creating include/config.h
config.status: executing depfiles commands
config.status: executing default-1 commands
config.status: executing default-2 commands
config.status: executing default-3 commands
config.status: executing default-4 commands
config.status: executing default-5 commands
config.status: executing default-6 commands

——————————————————–
Configuration is complete

Run the following commands to complete the installation:
make
make install

To upgrade an old siegerc file (optional):
mv ~/.siegerc.new ~/.siegerc

For complete documentation: http://www.joedog.org
——————————————————–

Than Use following command

[root@kapil-pc siege ~]# make
Making all in .
make[1]: Entering directory `/home/kapil/testing/siege’
make[1]: Nothing to be done for `all-am’.
make[1]: Leaving directory `/home/kapil/testing/siege’
Making all in include
make[1]: Entering directory `/home/kapil/testing/siege/include’
make all-recursive
make[2]: Entering directory `/home/kapil/testing/siege/include’
Making all in joedog
make[3]: Entering directory `/home/kapil/testing/siege/include/joedog’
make[3]: Nothing to be done for `all’.
make[3]: Leaving directory `/home/kapil/testing/siege/include/joedog’
make[3]: Entering directory `/home/kapil/testing/siege/include’
make[3]: Nothing to be done for `all-am’.
make[3]: Leaving directory `/home/kapil/testing/siege/include’
make[2]: Leaving directory `/home/kapil/testing/siege/include’
make[1]: Leaving directory `/home/kapil/testing/siege/include’
Making all in lib
make[1]: Entering directory `/home/kapil/testing/siege/lib’
Making all in joedog
make[2]: Entering directory `/home/kapil/testing/siege/lib/joedog’
/bin/sh ../../libtool –tag=CC –mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c -o memory.lo memory.c
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c memory.c -fPIC -DPIC -o .libs/memory.o
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c memory.c -o memory.o >/dev/null 2>&1
/bin/sh ../../libtool –tag=CC –mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c -o notify.lo notify.c
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c notify.c -fPIC -DPIC -o .libs/notify.o
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c notify.c -o notify.o >/dev/null 2>&1
/bin/sh ../../libtool –tag=CC –mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c -o perl.lo perl.c
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c perl.c -fPIC -DPIC -o .libs/perl.o
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c perl.c -o perl.o >/dev/null 2>&1
/bin/sh ../../libtool –tag=CC –mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c -o util.lo util.c
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c util.c -fPIC -DPIC -o .libs/util.o
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c util.c -o util.o >/dev/null 2>&1
/bin/sh ../../libtool –tag=CC –mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c -o snprintf.lo snprintf.c
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c snprintf.c -fPIC -DPIC -o .libs/snprintf.o
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c snprintf.c -o snprintf.o >/dev/null 2>&1
/bin/sh ../../libtool –tag=CC –mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c -o stralloc.lo stralloc.c
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c stralloc.c -fPIC -DPIC -o .libs/stralloc.o
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/include/openssl -I/usr/include -W -Wall -g -O2 -c stralloc.c -o stralloc.o >/dev/null 2>&1
/bin/sh ../../libtool –tag=CC –mode=link gcc -W -Wall -g -O2 -o libjoedog.la -version-info 1:0:1 memory.lo notify.lo perl.lo util.lo snprintf.lo stralloc.lo
libtool: link: warning: `-version-info/-version-number’ is ignored for convenience libraries
ar cru .libs/libjoedog.a .libs/memory.o .libs/notify.o .libs/perl.o .libs/util.o .libs/snprintf.o .libs/stralloc.o
ranlib .libs/libjoedog.a
creating libjoedog.la
(cd .libs && rm -f libjoedog.la && ln -s ../libjoedog.la libjoedog.la)
make[2]: Leaving directory `/home/kapil/testing/siege/lib/joedog’
make[2]: Entering directory `/home/kapil/testing/siege/lib’
make[2]: Nothing to be done for `all-am’.
make[2]: Leaving directory `/home/kapil/testing/siege/lib’
make[1]: Leaving directory `/home/kapil/testing/siege/lib’
Making all in src
make[1]: Entering directory `/home/kapil/testing/siege/src’
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c auth.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c base64.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c client.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c cookie.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c cfg.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c crew.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c data.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c date.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c eval.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c getopt.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c getopt1.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c handler.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c hash.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c http.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c init.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c load.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c log.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c main.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c md5.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c sock.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c ssl.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c timer.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c url.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c util.c
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/include/openssl -I/usr/include -I/usr/include/openssl -I/usr/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -c version.c
/bin/sh ../libtool –tag=CC –mode=link gcc -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -L/usr/lib -lpthread -o siege auth.o base64.o client.o cookie.o cfg.o crew.o data.o date.o eval.o getopt.o getopt1.o handler.o hash.o http.o init.o load.o log.o main.o md5.o sock.o ssl.o timer.o url.o util.o version.o ../lib/joedog/libjoedog.la -ldl -lssl -lcrypto
mkdir .libs
gcc -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -DOPENSSL_NO_KRB5 -g -O2 -o siege auth.o base64.o client.o cookie.o cfg.o crew.o data.o date.o eval.o getopt.o getopt1.o handler.o hash.o http.o init.o load.o log.o main.o md5.o sock.o ssl.o timer.o url.o util.o version.o -L/usr/lib -lpthread ../lib/joedog/.libs/libjoedog.a -ldl -lssl -lcrypto
make[1]: Leaving directory `/home/kapil/testing/siege/src’
Making all in utils
make[1]: Entering directory `/home/kapil/testing/siege/utils’
make[1]: Nothing to be done for `all’.
make[1]: Leaving directory `/home/kapil/testing/siege/utils’
Making all in doc
make[1]: Entering directory `/home/kapil/testing/siege/doc’
make[1]: Nothing to be done for `all’.
make[1]: Leaving directory `/home/kapil/testing/siege/doc’
Making all in html
make[1]: Entering directory `/home/kapil/testing/siege/html’
make[1]: Nothing to be done for `all’.
make[1]: Leaving directory `/home/kapil/testing/siege/html’

Now you can use following command.

[root@kapil-pc siege ~]# make install
Making install in .
make[1]: Entering directory `/home/kapil/testing/siege’
make[2]: Entering directory `/home/kapil/testing/siege’
make[2]: Nothing to be done for `install-exec-am’.
make[2]: Nothing to be done for `install-data-am’.
make[2]: Leaving directory `/home/kapil/testing/siege’
make[1]: Leaving directory `/home/kapil/testing/siege’
Making install in include
make[1]: Entering directory `/home/kapil/testing/siege/include’
Making install in joedog
make[2]: Entering directory `/home/kapil/testing/siege/include/joedog’
make[3]: Entering directory `/home/kapil/testing/siege/include/joedog’
make[3]: Nothing to be done for `install-exec-am’.
make[3]: Nothing to be done for `install-data-am’.
make[3]: Leaving directory `/home/kapil/testing/siege/include/joedog’
make[2]: Leaving directory `/home/kapil/testing/siege/include/joedog’
make[2]: Entering directory `/home/kapil/testing/siege/include’
make[3]: Entering directory `/home/kapil/testing/siege/include’
make[3]: Nothing to be done for `install-exec-am’.
make[3]: Nothing to be done for `install-data-am’.
make[3]: Leaving directory `/home/kapil/testing/siege/include’
make[2]: Leaving directory `/home/kapil/testing/siege/include’
make[1]: Leaving directory `/home/kapil/testing/siege/include’
Making install in lib
make[1]: Entering directory `/home/kapil/testing/siege/lib’
Making install in joedog
make[2]: Entering directory `/home/kapil/testing/siege/lib/joedog’
make[3]: Entering directory `/home/kapil/testing/siege/lib/joedog’
make[3]: Nothing to be done for `install-exec-am’.
make[3]: Nothing to be done for `install-data-am’.
make[3]: Leaving directory `/home/kapil/testing/siege/lib/joedog’
make[2]: Leaving directory `/home/kapil/testing/siege/lib/joedog’
make[2]: Entering directory `/home/kapil/testing/siege/lib’
make[3]: Entering directory `/home/kapil/testing/siege/lib’
make[3]: Nothing to be done for `install-exec-am’.
make[3]: Nothing to be done for `install-data-am’.
make[3]: Leaving directory `/home/kapil/testing/siege/lib’
make[2]: Leaving directory `/home/kapil/testing/siege/lib’
make[1]: Leaving directory `/home/kapil/testing/siege/lib’
Making install in src
make[1]: Entering directory `/home/kapil/testing/siege/src’
make[2]: Entering directory `/home/kapil/testing/siege/src’
test -z “/usr/local/bin” || mkdir -p — “/usr/local/bin”
/bin/sh ../libtool –mode=install /usr/bin/install -c ‘siege’ ‘/usr/local/bin/siege’
/usr/bin/install -c siege /usr/local/bin/siege
make[2]: Nothing to be done for `install-data-am’.
make[2]: Leaving directory `/home/kapil/testing/siege/src’
make[1]: Leaving directory `/home/kapil/testing/siege/src’
Making install in utils
make[1]: Entering directory `/home/kapil/testing/siege/utils’
make[2]: Entering directory `/home/kapil/testing/siege/utils’
make install-exec-hook
make[3]: Entering directory `/home/kapil/testing/siege/utils’
/bin/sh ../utils/mkinstalldirs /usr/local/bin
/bin/sh ../libtool –mode=install /usr/bin/install -c bombardment /usr/local/bin/bombardment
/usr/bin/install -c bombardment /usr/local/bin/bombardment
/bin/sh ../libtool –mode=install /usr/bin/install -c siege2csv.pl /usr/local/bin/siege2csv.pl
/usr/bin/install -c siege2csv.pl /usr/local/bin/siege2csv.pl
/bin/sh ../libtool –mode=install /usr/bin/install -c siege.config /usr/local/bin/siege.config
/usr/bin/install -c siege.config /usr/local/bin/siege.config
make[3]: Leaving directory `/home/kapil/testing/siege/utils’
make[2]: Nothing to be done for `install-data-am’.
make[2]: Leaving directory `/home/kapil/testing/siege/utils’
make[1]: Leaving directory `/home/kapil/testing/siege/utils’
Making install in doc
make[1]: Entering directory `/home/kapil/testing/siege/doc’
make[2]: Entering directory `/home/kapil/testing/siege/doc’
make install-exec-hook
make[3]: Entering directory `/home/kapil/testing/siege/doc’
make[3]: Leaving directory `/home/kapil/testing/siege/doc’
test -z “/usr/local/man/man1″ || mkdir -p — “/usr/local/man/man1″
/usr/bin/install -c -m 644 ‘./siege.1′ ‘/usr/local/man/man1/siege.1′
/usr/bin/install -c -m 644 ‘./siege.config.1′ ‘/usr/local/man/man1/siege.config.1′
/usr/bin/install -c -m 644 ‘./bombardment.1′ ‘/usr/local/man/man1/bombardment.1′
/usr/bin/install -c -m 644 ‘./siege2csv.1′ ‘/usr/local/man/man1/siege2csv.1′
test -z “/usr/local/man/man5″ || mkdir -p — “/usr/local/man/man5″
/usr/bin/install -c -m 644 ‘./urls_txt.5′ ‘/usr/local/man/man5/urls_txt.5′
test -z “/usr/local/man/man7″ || mkdir -p — “/usr/local/man/man7″
/usr/bin/install -c -m 644 ‘./layingsiege.7′ ‘/usr/local/man/man7/layingsiege.7′
make[2]: Leaving directory `/home/kapil/testing/siege/doc’
make[1]: Leaving directory `/home/kapil/testing/siege/doc’
Making install in html
make[1]: Entering directory `/home/kapil/testing/siege/html’
make[2]: Entering directory `/home/kapil/testing/siege/html’
make install-exec-hook
make[3]: Entering directory `/home/kapil/testing/siege/html’
HTML pages not installed
make[3]: Leaving directory `/home/kapil/testing/siege/html’
make[2]: Nothing to be done for `install-data-am’.
make[2]: Leaving directory `/home/kapil/testing/siege/html’
make[1]: Leaving directory `/home/kapil/testing/siege/html’

Now siege installation is done. Than Use following command for using the siege for testing.

[root@kapil-pc siege ~]# siege
SIEGE 2.69
Usage: siege [options]
siege [options] URL
siege -g URL
Options:
-V, –version VERSION, prints version number to screen.
-h, –help HELP, prints this section.
-C, –config CONFIGURATION, show the current configuration.
-v, –verbose VERBOSE, prints notification to screen.
-g, –get GET, pull down headers from the server and display HTTP
transaction. Great for web application debugging.
-c, –concurrent=NUM CONCURRENT users, default is 10
-u, –url=”URL” Deprecated. Set URL as the last argument.
-i, –internet INTERNET user simulation, hits the URLs randomly.
-b, –benchmark BENCHMARK, signifies no delay for time testing.
-t, –time=NUMm TIME based testing where “m” is the modifier S, M, or H
no space between NUM and “m”, ex: –time=1H, one hour test.
-r, –reps=NUM REPS, number of times to run the test, default is 25
-f, –file=FILE FILE, change the configuration file to file.
-R, –rc=FILE RC, change the siegerc file to file. Overrides
the SIEGERC environmental variable.
-l, –log LOG, logs the transaction to PREFIX/var/siege.log
-m, –mark=”text” MARK, mark the log file with a string separator.
-d, –delay=NUM Time DELAY, random delay between 1 and num designed
to simulate human activity. Default value is 3
-H, –header=”text” Add a header to request (can be many)
-A, –user-agent=”text” Sets User-Agent in request
[root@kapil-pc siege ~]#

If you try to install memcached with Linux server then use following commands

# yum install libevent
# yum install libmemcached libmemcached-devel
# yum install memcached

For Starting the memcached server
# memcached -d -m 512 -l 127.0.0.1 -p 11211 -u nobody

11211 port is default port for memcached server.

For using the memecached with php client you need to install following package

# pecl install memcache

After installing all packages restart the apache server.

# /etc/sbin/service httpd restart

<?php
/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$memcache_obj->set('any_key', 'some value', MEMCACHE_COMPRESSED, 50);
echo $memcache_obj->get('any_key');
?>

Important Note: Memcached key has limitations of 250 charactors, So key value should be with in 250 charactors.

For this example I used the RHEL 5.3 edition. If server is new then use follwoing commands to keep server up to date.
When I tried to install php-pear lib in server I am not able to install all the pear libs. Then I Used following commands for installing the php-pear fully.

# yum update
# up2date -u
# yum install lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql php-shout php-snmp php-soap php-tidy php-pear php-devel httpd-devel mysql-server mysql-devel

The 2 RPMs which we need are:
epel-release and remi-release

# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
# rpm -Uvh epel-release-5-3.noarch.rpm

# wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
# rpm -Uvh remi-release-5.rpm

# yum install php-pear*

# /sbin/service httpd start
# /sbin/service mysqld start

# php -v

Nginx web server is becoming most popular in last year. Best server response time and minimum execution time is the advantages of Nginx server.

Many people want to remove the www from URL. I will tell you the tip how to remove the www from URL with nginx server.

Open your Ngnix configuration file (nginx.conf). Just use following code in server block.

if ($host ~* ^www\.(.*)) {
    set $remove_www $1;
    rewrite ^(.*)$ http://$remove_www$1 permanent;
}

This code will remove the www from the URL.

Now these days keeping www in URL is becoming old fashion. How can check many websites for that and the current example is twitter.com

I specially dont like to put www in URL so we can easily remove the www from URL.

Open your apache configuration file. If you are using Linux then open file from following location

# vim /etc/httpd/conf/httpd.conf

put following lines in your virtual directory section.


# remove www from url
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^.*$ http://example.com%{REQUEST_URI} [R=301,L]

We can use this rewrite rule in .htaccess file also. But make sure .htaccess is enable through apache server.


# remove the www from URL.
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^.*$ http://example.com%{REQUEST_URI} [R=301s,L]

For WordPress websites for seo purpose putting above lines in .htaccess file is really best. That will gives you the really great result in future.

Many times we need to run the linux commands using PHP language. This is my favorite question about PHP when I take interview of new PHP developer.

In this article I will show you how to execute the linux command using PHP language syntax or script.

You can execute linux commands within a php script – all you have to do is put the command line in backticks (”) ,exec() , and shell_exec().

$command = exec('linux command');
echo $command;
echo shell_exec('ll');

Many times this issue is happened with me I tried the kill command to stop the process.
But that is really not responding. For Example, following command executed but not worked

[siwan@siwank-pc ~]$ ps -ef|grep skype
siwan     3140     1  1 09:50 ?        00:04:46 skype
siwan    13857 13818  0 17:24 pts/1    00:00:00 grep skype
[siwan@siwank-pc ~]$ kill 3140

There are really very nice unix commands present in Linux like:

[siwan@siwank-pc ~]$ killall firefox

[siwan@siwank-pc ~]$ ps -ef|grep skype
siwan     3140     1  1 09:50 ?        00:04:46 skype
siwan    13857 13818  0 17:24 pts/1    00:00:00 grep skype

[siwan@siwank-pc ~]$ kill -9 3140

I specially like the kill -9 processid command. Using kill -9 on a process is like just hitting the power button on your running PC. You already know that powering off a running PC can damage your filesystem because of run-time inconsistent data, why would you do the same thing to your applications? You risk the _exact same_ data corruption.

How to setup Firefox Profile Manager on Fedora or Linux

Firefox has new functionality called Profile manager which will allow you to switch with multiple Users.
You can create many user profiles in Firefox and save that as per your choice.

Many times on same Firefox some user don’t want some addons or theme. That time we got some difficulties.
For avoiding this issue we can create the firefox profile in firefox.

In windows creating Firefox profile is very easy. Just open windows run window and type “firefox -P”. That sit!

You will see following screens.

Using this you can create the firefox profiles.

Now I am going to show you how to create the firefox profile in Fedora.

Open terminal and just type following command

[siwan@siwank-pc ~]$ /usr/lib/firefox-3.5.6/firefox -ProfileManager
[siwan@siwank-pc ~]$

See following screens.
Note: when you got “choose user profile” window. Don’t forget to uncheck the “Don’t ask startup” checkbox.

Note:  I am using the Fedora 11 here for this example.

In now day many times we heard about cloud hosting and cloud computing. Recently we heard from Matt (WordPress founder) also. Many web designers are not aware with cloud hosting.

In this article I am going to write about in detail about cloud hosting. We are heard about messaging servers and big web services.

Twitter is the biggest mirco blogging website in the world and they are running like more then 100 mongrel server instances on Nginx server for handling the twitter. But still they are facing lot of traffic issue. May be there are multiple reasons. But still one of that is Rails. How much requests single mongrel instance can handle and if they got billions of hits in single second. What will happen we never no.

Who are in server administration they will defiantly have good idea about these issues.

What is cloud hosting?

Cloud hosting is nothing but multiple virtual machines which are basically does load balancing.

Generally, website hosted on a cloud hosting operates on a clustered servers where online operations are not limited to a single server. By handling security, load balance and hardware resources virtually, the website has access to the processing power of a number of servers that are distributed in real time.

Cloud computing is a way of computing, via the Internet, that broadly shares computer resources instead of having a local personal computer handle specific applications.

I can say Cloud hosting is solution for multiple dedicated servers. Handling multiple dedicated server is really pain. So for high traffic websites choosing the cloud hosting is the best option.

Google, Yahoo, MSN, Facebook many companies are already using the cloud hosting for better performance.

For choosing the cloud hosting there are few good options present in market. Some of few as follows:

1. Amazon

2. gogrid

Related Posts with Thumbnails
Wordpressapi is developer code book.
wordpressapi on Facebook

Who am I?

Sony Kumari founded Wordpressapi in Feb 2010. She started writing since Aug 2006 in wordpress blog. Later on She moved her blog to wordpressapi.com.

Sony Kumari is dubble gradute and earned M.C.A. in Computers. Sony Kumari handled the so many projects in many different technology. She worked on Java, PHP, Ruby on Rails, Javascript, Web services, Social applications, Ad campaigns.

Mahesh is the Author of Wordpressapi, as well as a serial web entrepreneur, sci-fi author, and aspiring world changer. He has been writing for Wordpressapi since Dec 2009. His previous experience includes Photoshop Design, CSS design, Web design and wordpress themes development.

Mahesh is a graduate and earned a B.E. in Electronics. He is having three years of experience in Web design and Wordpress application development.

Rahul is the Author of Wordpressapi, as well as a web designer and photoshop artist. His previous experience includes Photoshop Design, CSS design, Web design and wordpress themes development.

Rahul is a graduate and earned a B.A. in History. He is having Five years of experience in Web design and Wordpress application development.

© 2010 Wordpressapi. All Rights Reserved. Reproduction without explicit permission is prohibited.