Perfomatic/Installation
From MozillaWiki
Contents
Get the Code
- Checkout the latest code from http://hg.mozilla.org/graphs/
- Mercurial Install Info
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
- Run scripts/dump_test_data.py on stage to dump a specific test id to a zipped sql file
- 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
- A lot of test data here (22MB unzipped): http://people.mozilla.org/~rdoherty/graphserver/test_data.sql.zip
- DHTML on Linux bl-bldlnx01-18_linux, 1.8 branch
- Series type, tdhtml on MacOS X 10.5, only 1 test
FAQ
- How do we get the right version of pysqlite2 off of fink for OSX? (use MySQL?)
- I just grabbed the source: http://oss.itsystementwicklung.de/trac/pysqlite/ Command-line installation (python setup.py install) worked fine -- coop
- Installing the required python MySQL packages is almost impossible
- not impossible. You've got two options AFAICT.
- using MacPorts: if you've installed a version of MySQL using MacPorts, you should simply be able to do a
port install py-mysql
orport 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. - 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
- using MacPorts: if you've installed a version of MySQL using MacPorts, you should simply be able to do a
- 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
- not impossible. You've got two options AFAICT.
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
Windows installation
Download apache 2.2 from http://httpd.apache.org/ and install it Network Domain: localhost Server Name: localhost Admin Email: (any email) Download and install mysql http://dev.mysql.com/downloads/mysql/ "root" user should have empty password Download and install MySQLdb http://sourceforge.net/projects/mysql-python/ Pre-compiled binaries: http://stackoverflow.com/questions/645943/mysql-for-python-in-windows Download and install pysqlite2 http://code.google.com/p/pysqlite/ In %ProgramFiles%\Apache Software Foundation\Apache2.2\conf\httpd.conf - Un-comment "LoadModule rewrite_module modules/mod_rewrite.so" - Un-comment "LoadModule deflate_module modules/mod_deflate.so" - Un-comment "AddHandler cgi-script .cgi" - Add "ScriptInterpreterSource Registry-Strict" (e.g. after the AddHandler) - Search for "htdocs" and change the path to point to graphs-hg-root both places. - In the <directory> section - Change "AllowOverride" from "None" to "All" - Add "AddOutputFilterByType DEFLATE text/html text/plain text/xml" - In the windows registry: - Add a "HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command"-key with the default value '"C:\Program Files\Python26\python.exe" -u' - Restart apache (left click icon in tray and choose "Apache2.2"->"Restart") echo create database graphserver; grant all privileges on graphserver.* to o@'localhost' identified by 'o'; | "%ProgramFiles%\MySQL\MySQL Server 5.1\bin\mysql.exe" -uroot "%ProgramFiles%\MySQL\MySQL Server 5.1\bin\mysql.exe" -uroot graphserver < schema.sql "%ProgramFiles%\MySQL\MySQL Server 5.1\bin\mysql.exe" -uroot graphserver < data.sql "%ProgramFiles%\MySQL\MySQL Server 5.1\bin\mysql.exe" -uroot graphserver < pages_table.sql