You are viewing a plain text version of this content. The canonical link for it is here.
Posted to olio-commits@incubator.apache.org by sh...@apache.org on 2009/03/06 23:16:50 UTC

svn commit: r751128 - in /incubator/olio: docs/php_setup.html webapp/php/trunk/etc/config.php workload/php/trunk/bin/schema.sql

Author: shanti
Date: Fri Mar  6 23:16:49 2009
New Revision: 751128

URL: http://svn.apache.org/viewvc?rev=751128&view=rev
Log:
Fix for OLIO-33. For some reason, this commit didn't go thru yesterday. Also updated doc to reflect re-factoring, name changes and added other minor fixes.

Modified:
    incubator/olio/docs/php_setup.html
    incubator/olio/webapp/php/trunk/etc/config.php
    incubator/olio/workload/php/trunk/bin/schema.sql

Modified: incubator/olio/docs/php_setup.html
URL: http://svn.apache.org/viewvc/incubator/olio/docs/php_setup.html?rev=751128&r1=751127&r2=751128&view=diff
==============================================================================
--- incubator/olio/docs/php_setup.html (original)
+++ incubator/olio/docs/php_setup.html Fri Mar  6 23:16:49 2009
@@ -3,10 +3,11 @@
 <HEAD>
 	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
 	<TITLE>Olio/PHP Install and Setup Guide</TITLE>
-	<META NAME="GENERATOR" CONTENT="NeoOffice 2.2  (Unix)">
+	<META NAME="GENERATOR" CONTENT="StarOffice 8  (Solaris Sparc)">
 	<META NAME="AUTHOR" CONTENT="Akara Sucharitakul">
 	<META NAME="CREATED" CONTENT="20070926;10111500">
-	<META NAME="CHANGED" CONTENT="20081014;13423500">
+	<META NAME="CHANGEDBY" CONTENT="Shanti Subramanyam">
+	<META NAME="CHANGED" CONTENT="20090305;12352800">
 	<STYLE TYPE="text/css">
 	<!--
 		H1 { color: #000000 }
@@ -18,8 +19,6 @@
 <BODY LANG="en-US" TEXT="#000000" DIR="LTR">
 <H1 ALIGN=CENTER>Olio/PHP <BR>Install and Setup Guide from Source
 Tree</H1>
-<P>Note: The application currently does not use memcached. Please
-ignore the memcached related setup instructions.</P>
 <H2>Overview</H2>
 <P>Olio is a macro-level toolkit consisting of the following
 components:</P>
@@ -30,6 +29,7 @@
 	</P>
 	<LI><P STYLE="margin-bottom: 0in">Distributed storage servers
 	(MogileFS or NFS)</P>
+	<LI><P STYLE="margin-bottom: 0in">The caching server (memcached)</P>
 	<LI><P STYLE="margin-bottom: 0in">Storage metadata database (for
 	MogileFS)</P>
 	<LI><P STYLE="margin-bottom: 0in">Geocoder emulator 
@@ -53,9 +53,9 @@
 bulk of the CPU is consumed in the web application tier (apache/php).</P>
 <P STYLE="margin-bottom: 0in">In the following sections, we will go
 over the steps needed to configure each component :</P>
-<P STYLE="margin-bottom: 0in">
+<P STYLE="margin-bottom: 0in"><BR>
 </P>
-<P STYLE="margin-bottom: 0in">Downloading the source</P>
+<P><A HREF="#Downloading The Source|outline">Downloading the source</A></P>
 <P><A HREF="#setupDriver"><U>Setting up the driver</U></A></P>
 <P><A HREF="#installWebApp">Installing the Web Application</A></P>
 <P><A HREF="#setupDB">Setting up the database</A></P>
@@ -64,7 +64,8 @@
 <P><A HREF="#setupEmulator">Setting up the Geocoder Emulator</A></P>
 <P><A HREF="#testWebApp">Testing the web application</A></P>
 <P><A HREF="#startRun">Starting a performance test</A></P>
-<H2>Downloading The Source</H2>
+<H2><A NAME="Downloading The Source|outline"></A>Downloading The
+Source</H2>
 <P>The Olio source is available via SVN at
 <A HREF="https://svn.apache.org/repos/asf/incubator/olio/">https://svn.apache.org/repos/asf/incubator/olio/</A>.
 Please see the <A HREF="http://www.apache.org/dev/version-control.html#anon-svn">instructions</A>
@@ -73,17 +74,18 @@
 follows :</P>
 <UL>
 	<LI><P>The <I>webapp</I> directory contains the web application. The
-	php/trunk sub-directory contains the web application for the PHP
-	implementation. We will refer to webapp/php/trunk as $WEBAPP in this
-	document.</P>
+	<I>php/trunk</I> sub-directory contains the web application for the
+	PHP implementation. We will refer to <I>webapp/php/trunk</I> as
+	$WEBAPP in this document.</P>
 	<LI><P>The <I>workload</I> directory contains the code for the load
 	generator/driver (which we typically refer to simply as <I>driver</I>).
 	The driver is implemented using <A HREF="http://faban.sunsource.net/"><I>Faban</I></A>
-	– an open source benchmarking toolkit. The php/trunk sub-directory
-	has the faban driver code to drive the php application. In future,
-	we'd like to integrate the driver source for all implementations of
-	the application. The workload/workload/php/trunk is referred to as
-	$WORKLOAD in this document.</P>
+	– an open source benchmarking toolkit. The <I>php/trunk</I>
+	sub-directory has the faban driver code to drive the php
+	application. In future, we'd like to integrate the driver source for
+	all implementations of the application. The
+	<I>workload/workload/php/trunk</I> is referred to as $WORKLOAD in
+	this document.</P>
 </UL>
 <H2><A NAME="setupDriver"></A>Setting up the driver</H2>
 <P>Even if you don't plan to drive load against the application, this
@@ -102,7 +104,7 @@
 </OL>
 <UL>
 	<UL>
-		<LI><P ALIGN=LEFT>cd $WORKLOAD; cp build.properties.template
+		<LI><P ALIGN=LEFT>cd $WORKLOAD; cp build.properties.template 
 		build.properties</P>
 		<LI><P ALIGN=LEFT>Edit build.properties and set faban.home to
 		$FABAN_HOME, faban.url to http://<I>driver_host</I>:9980 where
@@ -112,15 +114,15 @@
 		to your JDK1.6 installation.</P>
 		<LI><P ALIGN=LEFT>Build the driver using the command: <I>ant
 		deploy.jar. </I><SPAN STYLE="font-style: normal">If successful, you
-		should see the file </SPAN><I>Web20Driver.jar</I><SPAN STYLE="font-style: normal">
-		in the </SPAN><I>build</I><SPAN STYLE="font-style: normal">
-		sub-directory.</SPAN></P>
+		should see the file </SPAN><I>Olio</I><I>Driver.jar</I> <SPAN STYLE="font-style: normal">in
+		the </SPAN><I>build</I> <SPAN STYLE="font-style: normal">sub-directory.</SPAN></P>
 	</UL>
 </UL>
 <OL START=3>
-	<LI><P ALIGN=LEFT>Copy $WORKLOAD/build/<SPAN STYLE="font-weight: medium">Web20Driver</SPAN><I><SPAN STYLE="font-weight: medium">.</SPAN></I><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: medium">jar</SPAN></SPAN>
-	to the $FABAN_HOME/benchmarks directory. 
-	</P>
+	<LI><P ALIGN=LEFT>Copy $WORKLOAD/build/Olio<SPAN STYLE="font-weight: medium">Driver</SPAN><I><SPAN STYLE="font-weight: medium">.</SPAN></I><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: medium">jar</SPAN></SPAN>
+	to the $FABAN_HOME/benchmarks directory. IAlso copy the
+	OlioDriver.jar file to the $FABAN_HOME/benchmarks directory on the
+	web server system.</P>
 	<LI><P ALIGN=LEFT>For the driver to work, you will need JDK 1.6. Set
 	JAVA_HOME to the path of the JDK in the faban user's environment.</P>
 	<LI><P ALIGN=LEFT>Start the faban master on the master driver
@@ -135,54 +137,55 @@
 <P>The web application is a PHP application. It requires the
 following components:</P>
 <OL>
-	<LI><P STYLE="margin-bottom: 0in">A web server such as Apache or
+	<LI><P STYLE="margin-bottom: 0in">A web server such as Apache2 or
 	Lighttpd</P>
-	<LI><P STYLE="margin-bottom: 0in">PHP 5 with extensions: curl.so,
-	gd.so, pdo.so, pdo_mysql.so</P>
-	<LI><P STYLE="margin-bottom: 0in">MySQL 5 
+	<LI><P STYLE="margin-bottom: 0in">PHP 5 with extensions: apc.so,
+	curl.so, gd.so, pdo_mysql.so</P>
+	<LI><P STYLE="margin-bottom: 0in">MySQL 5</P>
+	<LI><P STYLE="margin-bottom: 0in">Memcached 
 	</P>
 </OL>
 <P STYLE="margin-bottom: 0in"><BR>
 </P>
-<P>Coolstack is one pre-integrated suite of open source applications
-optimized for Solaris. If you're running on any other operating
-system, please install the above applications.<BR><BR>Once you have
-the application stack installed, follow the steps below to set up the
-application. 
+<P>All of these applications are included in OpenSolaris. If you're
+running on any other operating system, please install the above
+applications.<BR><BR>Once you have the application stack installed,
+follow the steps below to set up the application. 
 </P>
 <OL>
 	<LI><P>Decide where you want to install the web application. The
 	default for apache is the htdocs sub-directory but a common location
-	is /var/www. Create a sub-directory web20php2 where the php
+	is /var/www. Create a sub-directory <I>oliophp</I> where the php
 	application will reside. We will use $APP_DIR to refer to this
 	location.</P>
-	<LI><P>After installing all the above packages, go to
-	/opt/coolstack/apache2/conf and edit the httpd.conf. Set the <B>Listen</B>
+	<LI><P>After installing all the above packages, edit the httpd.conf
+	used by your system's apache installation. Set the <B>Listen</B>
 	parameter to the hostname or ip address and set the <B>DocumentRoot</B>
-	to $APP_DIR/public_html. An example httpd.conf is provided in
-	$APP_DIR/etc.</P>
-	<LI><P STYLE="margin-bottom: 0in">An example, tuned php.ini is
-	provided in $APP_DIR/etc/php.ini. Copy the non-installation specific
-	settings to the location where php.ini exists for your installation.
-	For Cool Stack users, you can copy this file as is to
-	/opt/coolstack/php5/lib. 
-	</P>
-	<P STYLE="margin-bottom: 0in"> 
-	</P>
+	to $APP_DIR/public_html. See the <I>httpd.conf </I> file in
+	$APP_DIR/etc for additional settings.</P>
+	<LI><P STYLE="margin-bottom: 0in">See the php.ini provided in
+	$APP_DIR/etc and copy the settings appropriately to the php.ini for
+	your installation.</P>
+</OL>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL START=4>
 	<LI><P>Go to $APP_DIR/etc. Edit the file config.php and set the
 	appropriate values for geocoderHost, localfsRoot. localfsRoot is the
 	directory where the object filestore resides (either a local
 	filesystem or nfs-mounted from a remote location – see the section
-	on <I><B>Setting up the filestore</B></I> below). The default
-	location is /filestore. The geocoderHost is usually the driver
-	system.</P>
-	<LI><P>Start apache. Check that you can connect to it from your
-	browser (http://<I>host</I>:8080), but don't try to access any of
-	the application pages yet !</P>
+	<A HREF="#Setting up the filestore|outline"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: medium">Setting
+	up the filestore</SPAN></SPAN></A>). The default location is
+	/filestore. The geocoderHost is usually the driver system – see
+	the section <A HREF="#Setting up the Geocoder Emulator|outline">Setting
+	up the Geocoder Emulator</A>.</P>
+	<LI><P></P>
 </OL>
 <P STYLE="margin-bottom: 0in"><A NAME="setupDB"></A><BR><FONT SIZE=4><B>Setting
 up the database</B></FONT> 
 </P>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
 <OL>
 	<LI><P>If you plan to run MySQL on a separate machine, install MySQL
 	on that system. We will refer to the MySQL installation directory as
@@ -201,24 +204,31 @@
 	password </FONT><FONT FACE="monospace"><I>pwd</I></FONT></P>
 	<LI><P>Create the web20 user and grant privileges:<BR><FONT FACE="monospace">$
 	./mysql -uroot -p</FONT><FONT FACE="monospace"><I>pwd</I></FONT><BR><FONT FACE="monospace">mysql&gt;
-	create user 'web20'@'%' identified by 'web20';</FONT><BR><FONT FACE="monospace">mysql&gt;
-	grant all privileges on *.* to 'web20'@'%' identified by 'web20'
-	with grant option;<BR></FONT><BR>In some cases the wildcard '%' does
-	not work reliably as a substitution for all hosts. You need to grant
-	the privileges to 'web20'@'&lt;hostname&gt;' individually, where
-	hostname are the names of the driver and apache systems.</P>
+	create user 'olio'@'%' identified by 'olio';</FONT><BR><FONT FACE="monospace">mysql&gt;
+	grant all privileges on *.* to 'olio'@'%' identified by 'olio' with
+	grant option;<BR></FONT><BR>In some cases the wildcard '%' does not
+	work reliably as a substitution for all hosts. You need to grant the
+	privileges to 'olio'@'&lt;hostname&gt;' individually, where hostname
+	are the names of the driver and apache systems.</P>
 	<LI><P STYLE="margin-bottom: 0in">Create database<BR><FONT FACE="monospace">mysql&gt;
-	create database web20load;</FONT><BR><FONT FACE="monospace">mysql&gt;
-	use web20load;</FONT> 
+	create database olio;</FONT><BR><FONT FACE="monospace">mysql&gt; use
+	olio;</FONT> 
 	</P>
-	<LI><P>Create database schema by logging in as mysql root user and
-	running the <I>schema.sql </I>script from either
-	$FABAN_HOME/benchmarks/Web20Driver/bin or $APP_DIR/etc:<BR><FONT FACE="monospace">mysql&gt;
-	\.</FONT><FONT FACE="monospace"><I>&lt;location&gt;</I></FONT><FONT FACE="monospace">/schema.sql<BR>mysql&gt;
-	exit</FONT><BR><FONT FACE="monospace">$</FONT><BR><BR>Now, if you
-	login as the user web20, you should be able to see the database
-	created by the root user.</P>
 </OL>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL START=7>
+	<LI><P>To create the database schema, you first need to copy the
+	schema script from the driver system. It is located in
+	$FABAN_HOME/benchmarks/OlioDriver/bin/schema.sql. Copy the script
+	anywhere on the database server and create the schema:</P>
+</OL>
+<P STYLE="margin-left: 0.55in"><FONT FACE="Monospace">$ mysql -uroot
+-ppwd</FONT><BR><FONT FACE="monospace">mysql&gt;
+\.</FONT><FONT FACE="monospace"><I>&lt;location&gt;</I></FONT><FONT FACE="monospace">/schema.sql<BR>mysql&gt;
+exit</FONT><BR><FONT FACE="monospace">$</FONT><BR><BR>Now, if you
+login as the user <I>olio</I>, you should be able to see the database
+created by the root user.</P>
 <H2><A NAME="loadDB"></A><FONT SIZE=4>Loading the database</FONT></H2>
 <P><FONT SIZE=3>It is best to load the database manually the first
 time so that we can test the web application. However, while doing
@@ -229,31 +239,38 @@
 	driver. Only this machine has the loader at this time.</FONT></P>
 	<LI><P STYLE="margin-bottom: 0in"><FONT SIZE=3>Go to the directory
 	containing the loader script:<BR></FONT><FONT FACE="monospace"><FONT SIZE=3>#
-	cd </FONT></FONT><FONT FACE="monospace"><I>$FABAN_HOME</I></FONT><FONT FACE="monospace">/benchmarks/Web20Driver/bin</FONT>
-		</P>
+	cd </FONT></FONT><FONT FACE="monospace"><I>$FABAN_HOME</I></FONT><FONT FACE="monospace">/benchmarks/OlioDriver/bin</FONT></P>
+</OL>
+<P STYLE="margin-bottom: 0in"> 
+</P>
+<OL START=3>
 	<LI><P STYLE="margin-bottom: 0in">Ensure the script has execute
 	permissions. Faban takes care of this for the runs, but since we
 	have not yet started the first run, we will need to change that
 	ourselves:<BR><FONT FACE="monospace"># chmod +x dbloader.sh</FONT></P>
+</OL>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL START=4>
 	<LI><P>Run the loader script:<BR><FONT FACE="monospace">#
 	./dbloader.sh </FONT><FONT FACE="monospace"><I>&lt;dbserver&gt;
 	&lt;load_scale&gt;</I></FONT><BR>You can start small with a SCALE of
 	50 for initial testing. 
 	</P>
 </OL>
-<H2><A NAME="setupFileStore"></A><FONT SIZE=4>Setting up the
-filestore</FONT></H2>
+<H2><A NAME="setupFileStore"></A><A NAME="Setting up the filestore|outline"></A>
+<FONT SIZE=4>Setting up the filestore</FONT></H2>
 <P><FONT SIZE=3>Olio can be configured to use either a local
 filesystem or MogileFS for the object data. Our initial testing with
 MogileFS found some severe performance issues, so for now we advice
-using a local filesystem or network file systems such as NFS. You
-will need about 50GB of space for the data, as the data does grow
-over runs. Using a single spindle does work but may create
-performance bottlenecks. We recommend striping the filesystem across
-at least 3 spindles to avoid such bottlenecks. A local file system
-needs to be setup on the same machine as the web application. A
-network file system can reside on a separate server but needs to be
-exported and mounted on the web application.</FONT></P>
+using a local filesystem or network file system such as NFS. You will
+need about 50GB of space for the data, as the data does grow over
+runs. Using a single spindle does work but may create performance
+bottlenecks. We recommend striping the filesystem across at least 3
+spindles to avoid such bottlenecks. A local file system needs to be
+setup on the same machine as the web application. A network file
+system can reside on a separate server but needs to be exported and
+mounted on the system running the web application.</FONT></P>
 <OL>
 	<LI><P><FONT SIZE=3>Create a directory (or mount a filesystem)
 	designated for storing the image and binary files. This directory is
@@ -261,41 +278,74 @@
 	Ensure that everyone has read and write access to it:<BR></FONT><FONT FACE="monospace"><FONT SIZE=3>#
 	mkdir -p </FONT></FONT><FONT FACE="monospace"><FONT SIZE=3><SPAN STYLE="font-style: normal">$FILESTORE</SPAN></FONT></FONT><FONT SIZE=3><BR></FONT><FONT FACE="monospace"><FONT SIZE=3>#
 	chmod a+rwx </FONT></FONT><FONT FACE="monospace"><FONT SIZE=3><SPAN STYLE="font-style: normal">$FILESTORE</SPAN></FONT></FONT></P>
-	<LI><P><FONT SIZE=3>Now load the filestore :<BR></FONT><FONT FACE="monospace"><FONT SIZE=3>#
-	cd </FONT></FONT><FONT FACE="monospace"><FONT SIZE=3><SPAN STYLE="font-style: normal">$FILESTORE</SPAN></FONT></FONT>
+	<LI><P><FONT SIZE=3>Now load the filestore. You should have the
+	$FABAN_HOME/benchmarks/OlioDriver.jar file on this system.<BR></FONT>
 	<FONT FACE="monospace"><FONT SIZE=3><BR>#
 	JAVA_HOME</FONT></FONT><FONT FACE="mon"><FONT SIZE=3><I>=</I></FONT></FONT><FONT FACE="monospace"><FONT SIZE=3><I>&lt;java_install_dir&gt;</I></FONT></FONT><FONT FACE="monospace"><FONT SIZE=3>;
-	export $JAVA_HOME</FONT></FONT><FONT SIZE=3><BR></FONT><FONT FACE="monospace"><FONT SIZE=3>#
-	$FABAN_HOME/benchmarks/web20/bin/fileloader.sh </FONT></FONT><FONT FACE="monospace"><FONT SIZE=3><I>&lt;load_scale&gt;</I></FONT></FONT>
-		</P>
+	export $JAVA_HOME</FONT></FONT></P>
+</OL>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0.04in"><FONT FACE="monospace"><FONT SIZE=3>#
+cd $FABAN_HOME/benchmarks; mkdir olio</FONT></FONT></P>
+<P STYLE="margin-left: 0.52in"><FONT FACE="monospace"><FONT SIZE=3>#
+cd olio; jar xvf ../OlioDriver.jar; chmod a+x bin/*</FONT></FONT><FONT SIZE=3><BR></FONT><FONT FACE="monospace"><FONT SIZE=3>#
+$FABAN_HOME/benchmarks/olio/bin/fileloader.sh </FONT></FONT><FONT FACE="monospace"><FONT SIZE=3><I>&lt;load_scale&gt;
+$FILESTORE</I></FONT></FONT> 
+</P>
+<OL START=2>
 	<P><FONT SIZE=3>This loads files for use for up to <FONT FACE="monospace"><I>load_scale</I></FONT>
-	number of concurrent users.</FONT></P>
+	number of active users.</FONT></P>
 	<LI><P><FONT SIZE=3>Ensure the $APP_DIR/etc/config.php parameter
-	</FONT>localfsRoot is pointing to &lt;filestore&gt;. 
+	</FONT>localfsRoot is pointing to $FILESTORE. 
 	</P>
 </OL>
-<H2><A NAME="setupEmulator"></A><FONT SIZE=4>Setting up the Geocoder
-Emulator</FONT></H2>
-<P>The Geocoder Emulator is a simple J2EE application deployed on
-Tomcat. It is typically run on a driver machine. The following steps
-describe how to install it :</P>
+<H2><A NAME="setupEmulator"></A><A NAME="Setting up the Geocoder Emulator|outline"></A>
+<FONT SIZE=4>Setting up the Geocoder Emulator</FONT></H2>
+<P>The Geocoder Emulator is a simple servlet deployed on Tomcat. It
+is typically run on a driver machine. The following steps describe
+how to install it :</P>
 <OL>
-	<LI><P>Donwload and install Tomcat (either from Cool Stack CSKtomcat
-	package for Solaris or directly from <A HREF="http://tomcat.apache.org/">http://tomcat.apache.org</A>)
+	<LI><P>Donwload and install Tomcat (from <A HREF="http://tomcat.apache.org/">http://tomcat.apache.org</A>)
 	on the driver machine. The install directory doesn't matter – we
 	will refer to it as $TOMCAT_HOME. 
 	</P>
-	<LI><P>Build the <i>geocoder.war</i> file by going to the 'geocoder' directory
-	and following the instructions in the README file.</P>
-	<LI><P>Copy the geocoder.war file from the geocoder/dist directory to
-	$TOMCAT_HOME/webapps.</P>
+	<LI><P>Build the <I>geocoder.war</I> file by going to the 'geocoder'
+	directory and following the instructions in the README file.</P>
+	<LI><P>Copy the geocoder.war file from the geocoder/dist directory
+	to $TOMCAT_HOME/webapps.</P>
 	<LI><P>Start Tomcat using $TOMCAT_HOME/bin/startup.sh.</P>
 </OL>
+<H2><FONT SIZE=4>Setting up memcached</FONT></H2>
+<P><FONT SIZE=3>The Olio application uses memcached for caching the
+home page which dramatically reduces the load on the database. If you
+are running Olio to stress MySQL, you may not want to have the
+caching tier. In this case,  set the <I>CacheSystem</I> to <I>NoCache</I>
+in $APP_DIRetc/config.php. This will eliminate the use of memcached
+and all requests will directly go to the database. However, if you do
+want to use memcached (scaling will be very difficult without it),
+you need to setup an instance of memcached. This can typically run on
+the same system as the web server. </FONT>
+</P>
+<OL>
+	<LI><P><FONT SIZE=3>Download and install memcached on the system you
+	plan to use.</FONT></P>
+	<LI><P><FONT SIZE=3>Start memcached : “memcached -u mysql &amp;”</FONT></P>
+	<LI><P><FONT SIZE=3>Edit $APP_DIR/etc/config.php and replace
+	MEMCACHED_HOST with your host name. </FONT>
+	</P>
+</OL>
 <H2><A NAME="testWebApp"></A><FONT SIZE=4>Testing the web application</FONT></H2>
 <OL>
-	<LI><P><FONT SIZE=3>Check the home page (HomePage)
-	http://&lt;web_server&gt;:8080/index.php . If there are no error
-	messages and all images get loaded, that's a great start !</FONT></P>
+	<LI><P><FONT SIZE=3>Start apache. This can be done by executing
+	“$APACHE_HOME/bin/apachectl start”. Check that you can connect
+	to it from your browser at the port apache is listening on
+	(http://<I>host</I>:80).</FONT></P>
+	<LI><P><FONT SIZE=3>Check the home page (HomePage) . If there are no
+	error messages and all images get loaded, that's a great start ! If
+	instead, the server does not display anything or the images don't
+	get loaded, check the apache error_log and double-check that the
+	application's etc/config.php file has been edited correctly.
+	Remember that you will need to re-start apache after any edits to
+	this file for them to take effect.</FONT></P>
 	<LI><P><FONT SIZE=3>Click on an event (EventDetail). Make sure the
 	whole page looks OK. </FONT>
 	</P>
@@ -332,11 +382,18 @@
 application is running and the faban harness is up, it is time to
 kick off a test. 
 </P>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
 <OL>
-	<LI><P STYLE="margin-bottom: 0in">Kill memcached. Memcached is
-	always started by the driver before the run to ensure a clean cache
-	and will cause port conflicts if it is already running. 
-	</P>
+	<LI><P STYLE="margin-bottom: 0in">Shutdown apache and kill
+	memcached. Memcached is always started by the driver before the run
+	to ensure a clean cache and will cause port conflicts if it is
+	already running. The apache server is also automatically started at
+	the start of a run and shutdown at the end of a run.</P>
+</OL>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL START=2>
 	<LI><P>Point your browser at http://<I>&lt;driver_machine&gt;</I>:9980</P>
 	<LI><P>Click on the <SPAN STYLE="font-style: normal"><B>Schedule Run</B></SPAN>
 	link.</P>
@@ -375,44 +432,65 @@
 <OL START=6>
 	<LI><P>Select the Web Server tab.</P>
 </OL>
-<P STYLE="margin-bottom: 0in">The number of Agents is best the same
-or multiple the number of driver machines – we start with 1. The
-Host:Port Pairs field takes the host port pairs where the web
-applications are running. The host and port is separated by a colon.
-Each pair is separated by space. For the Webserver type field, enter
-either &quot;apache&quot; or &quot;lighttpd&quot; dependent on which
-web server you're using, or leave the field blank if you're using
-servers other than these two. Only these two servers are supported at
-this time. Then provide the webserver's bin, log, and config
-directories, and the directory containing the php.ini file in the
-respective fields. Next, choose the server type to be PHP, if it is
-not already that way. Then, in the tools box, type the tools you want
-to run. Here are the tools we typically run : vmstat 10; mpstat 10;
-iostat -x 10</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">The number of
+Agents is best the same or multiple the number of driver machines –
+we start with 1. 
+</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">The Host:Port Pairs
+field takes the host port pairs where the web applications are
+running. The host and port is separated by a colon. 
+</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">Each pair is
+separated by space. 
+</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">For the Webserver
+type field, enter either &quot;apache&quot; or &quot;lighttpd&quot;
+depending on which web server you're using.</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">Leave the field
+blank if you're using servers other than these two. Only these two
+servers are supported at this time. 
+</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">Enter the
+webserver's bin, log, and config directories, and the directory
+containing the php.ini file in the respective fields. 
+</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">Next, choose the
+server type to be PHP. 
+</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">In the tools box,
+type the tools you want to run. Here are the tools we typically run :
+vmstat 10; mpstat 10; iostat -x 10</P>
 <P STYLE="margin-bottom: 0in"><BR>
 </P>
 <OL START=7>
 	<LI><P STYLE="margin-bottom: 0in">Select the Data Servers tab.</P>
+</OL>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL START=7>
 	<P STYLE="margin-bottom: 0in">For the database server, enter the
-	Host name. Edit the hostname part along of the JDBC Connection URL.
-	This is used by the loader program to reload the database before a
-	run. Set the 'Load for Concurrent Users' to 25 (this is the minimum
-	number of users we can load for and is good for up to 25 concurrent
-	users). You can set the loader to run a larger number so that you
-	don't have to edit this field every time. It is not absolutely
-	necessary to reload the database and files every time, but you
-	should do so for all performance runs. In that case, set the reload
-	fields to true every time. 
+	Host name. (Olio also supports multiple hostnames if MySQL
+	replication is being used). 
 	</P>
+</OL>
+<P STYLE="text-indent: 0.49in; margin-bottom: 0in">Edit the hostname
+part of the JDBC Connection URL. This is used by the loader program
+to reload the database before a run. 
+</P>
+<P STYLE="text-indent: 0.49in; margin-bottom: 0in">Set the 'Load for
+Concurrent Users' to 25 (this is the minimum number of users we can
+load for and is good for up to 25 concurrent users). 
+</P>
+<OL START=7>
 	<P STYLE="margin-bottom: 0in">Set the Data Storage server. For local
-	storage this is the same host as the web server.&nbsp;</P>
+	storage this is the same host as the web server.</P>
 	<P STYLE="margin-bottom: 0in">Set the memcached server instances to
-	the servers you've configured in config.php of the web application.
-	The driver harness will start the memcached server instances
-	accordingly. Note that the memcached server instances are given as
-	host:port pairs, separated by space. If a port is not given, the
-	default memcached port of 11211 is assumed.</P>
+	the servers you've configured in config.php of the web application. 
+	</P>
 </OL>
+<P STYLE="text-indent: 0.48in; margin-bottom: 0in">The memcached
+server instances are given as host:port pairs, separated by space. If
+a port is not given, the default port of 11211 is assumed.</P>
 <P STYLE="margin-bottom: 0in"><BR>
 </P>
 <OL START=8>
@@ -420,4 +498,4 @@
 	click on the View Results link on the left to monitor the run.</P>
 </OL>
 </BODY>
-</HTML>
+</HTML>
\ No newline at end of file

Modified: incubator/olio/webapp/php/trunk/etc/config.php
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/etc/config.php?rev=751128&r1=751127&r2=751128&view=diff
==============================================================================
--- incubator/olio/webapp/php/trunk/etc/config.php (original)
+++ incubator/olio/webapp/php/trunk/etc/config.php Fri Mar  6 23:16:49 2009
@@ -22,15 +22,15 @@
 $olioconfig['dbDriver'] = 'PDO';  // Which DB driver to use.
 // $olioconfig['dbTarget'] = 'myodbc3'; // ODBC target in odbc.ini.
 
-$olioconfig['dbTarget'] = 'mysql:host=localhost;dbname=web20load'; // PDO target.
+$olioconfig['dbTarget'] = 'mysql:host=localhost;dbname=olio'; // PDO target.
 // For master/slave clusters, specify dbTarget as an array, listing the master first.
-// $olioconfig['dbTarget'] = array('mysql:host=master;dbname=web20load',
-//                                  'mysql:host=slave1;dbname=web20load',
-//                                  'mysql:host=slave2;dbname=web20load');
+// $olioconfig['dbTarget'] = array('mysql:host=master;dbname=olio',
+//                                  'mysql:host=slave1;dbname=olio',
+//                                  'mysql:host=slave2;dbname=olio');
 
-$olioconfig['dbUser'] = 'web20'; // DB user name.
+$olioconfig['dbUser'] = 'olio'; // DB user name.
 
-$olioconfig['dbPass'] = 'web20'; // DB password.
+$olioconfig['dbPass'] = 'olio'; // DB password.
 
 $olioconfig['cacheSystem'] = 'MemCached';
 // Use below line for no cache - WARNING: db load will increase

Modified: incubator/olio/workload/php/trunk/bin/schema.sql
URL: http://svn.apache.org/viewvc/incubator/olio/workload/php/trunk/bin/schema.sql?rev=751128&r1=751127&r2=751128&view=diff
==============================================================================
--- incubator/olio/workload/php/trunk/bin/schema.sql (original)
+++ incubator/olio/workload/php/trunk/bin/schema.sql Fri Mar  6 23:16:49 2009
@@ -86,6 +86,8 @@
    unique(tag)
 )ENGINE=InnoDB;
 
+CREATE INDEX SOCIALEVENTTAG_TAG on SOCIALEVENTTAG (tag);
+
 create table SOCIALEVENTTAG_SOCIALEVENT(
    socialeventtagid INTEGER NOT NULL,
    socialeventid INTEGER NOT NULL,