Perfomatic/Installation

Get the Code

Server Requirements

  • Python 2.?
  • Apache 2.x + mod_python
  • mod_rewrite
  • MySQL 5.x
  • memcached (someday)
  • python modules:
    • pysqlite2 (python-sqlite2)
    • MySQLdb (MySQL-python)

Set Up Database

Configure Application

  • DB config
   # Set up mysql5 (if necessary) and create a database
   sudo port install mysql5
   # follow directions and complete installation 
   echo "create database o_graphs; grant all privileges on o_graphs.* to o@'localhost' identified by 'o';" | mysql5 -uroot
   mysql5 -uroot o_graphs < sql/schema.sql
  • Apache
    • Set vhost dir to the root hg directory.
    • set cgi-bin to hgroot/server

Creating Test Data

  • Link to script to populate test data and instructions on how to use it
  • Import sql/test_data.sql
    • This has some test data, enough for listing tests and 1 graph
    • DHTML on Linux bl-bldlnx01-18_linux, 1.8 branch

FAQ

  • How do we get the right version of pysqlite2 off of fink for OSX? (use MySQL?)
  • Installing the required python MySQL packages is almost impossible (still working on it (Ryan))
    • not impossible. You've got two options AFAICT.
      1. using MacPorts: if you've installed a version of MySQL using MacPorts, you should simply be able to do a port install py-mysql or port install py25-mysql. I haven't tested this personally because I was working from source (I already have a custom MySQL built here for Litmus work), but I did see those ports in the list when I was trying to figure this setup out.
      2. from source: Source can be found here: http://sourceforge.net/project/showfiles.php?group_id=22307 Instructions for building (some source mods are required): http://www.keningle.com/?p=11 -- coop
    • Note I ran into a failure to build sqlite3 which trying to install apache from macports. This fixed it for me http://www.nabble.com/sqlite3-build-failure-td16129072.html

Build Graph Stage Server

  • For reference we can look at bm-buildgraph01
  • ip: 10.2.74.15
  • /var/www/html/graphs
  • /var/www/html/graphs/g2
  • if needed, grab the mysql dump from stage (6GB mysql dump, too large for normal use)

Mac OS X installation of CVS version

   # Install MacPorts (http://macports.org/)
   # Install and select python 2.5
   sudo port install python25
   sudo port install python_select
   sudo python_select python25
   sudo port install py25-mysql
   # Get the graph server source from CVS
   cd ~/devel
   cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d graphs-cvs mozilla/webtools/new-graph
   # Link the checkout into your home ~/Sites/
   ln -s `pwd`/graphs-cvs ~/Sites/
   # Install pysqlite2, required in some spots and handy to have.
   curl -O http://oss.itsystementwicklung.de/download/pysqlite/2.4/2.4.1/pysqlite-2.4.1.tar.gz
   tar -zxf pysqlite-2.4.1.tar.gz
   cd pysqlite-2.4.1
   sudo python setup.py install
   # Set up mysql5 (if necessary) and create a database
   sudo port install mysql5
   # follow directions and complete installation 
   echo "create database o_graphs; grant all privileges on o_graphs.* to o@'localhost' identified by 'o';" | mysql5 -uroot
   mysql5 -uroot o_graphs < sql/schema.sql
   # Get apache2 up and running
   sudo port install apache2
   #
   # Ensure sure .cgi is recognized to CGI scripts
   # Uncomment line 383:
   # AddHandler cgi-script .cgi
   #
   # Ensure that userdir_module is enabled, around line 113 of /opt/local/apache2/conf/httpd.conf
   #
   # Ensure that ExecCGI and FollowSymLinks options are enabled in /opt/local/apache2/conf/extra/httpd-userdir.conf
   #
   # Be sure to disable Apple's apache and switch to MacPorts'
   sudo /usr/sbin/apachectl stop
   sudo /opt/local/apache2/bin/apachectl start
   # Import some data (this needs expanding)
   mkdir data
   curl http://build-graphs.mozilla.org/db/dhtml/bl-bldlnx01_fx-linux-tbox-head > data/sample1.txt
   chmod +x utils/import.py
   ./utils/import.py foo bar baz quux < data/sample1.txt
   # See also: ./utils/pull.sh
   # visit http://localhost/~username/graphs-cvs/graph.html