Prerequisities
Installed Fedora 14, preferably in a virtual environment.
Installation
Install and configure mysql
yum install mysql-server chkconfig mysqld on service mysqld start /usr/bin/mysqladmin -u root password 'new-password'
mysql -u root -p
create database resultsdb; grant usage on *.* to resultsdb@localhost identified by '9zWyNtmBmHcUe6Yn'; grant all privileges on resultsdb.* to resultsdb@localhost; exit
Prepare virtualenv environment
yum install gcc sqlite-devel python-virtualenv
virtualenv tg2env cd tg2env source bin/activate easy_install -i http://www.turbogears.org/2.1/downloads/current/index tg.devtools
Download ResultsDB from GIT
git clone git://git.fedorahosted.org/ResultsDB.git resultsdb cd resultsdb/resultsdb
Install dependencies and setup the application
yum install python-pycurl python-fedora MySQL-python python setup.py develop paster setup-app development.ini
ResultsDB
Start the ResultsDB instance in screen
screen -S resultsdb paster serve development.ini --reload
Turbogears welcome screen should be now visible on http://localhost:8081. Either press Ctrl+ad
to send screen to background, or open another terminal.
Test the XMLRPC interface
python
import xmlrpclib s = xmlrpclib.ServerProxy("http://localhost:8081/xmlrpc", allow_none = 1) s.get_metadata("https://fedoraproject.org/wiki/User:Jskladan/Sandbox:Rpmlint_Testcase_Metadata")
Expected result:
{'required_keyval': ['pkg_name', 'envr', 'arch', 'owner']}
Exit Python shell
exit()
Stop the application
If you used the screen terminal to run ResultsDB, reattach it using
screen -r resultsdb
or switch to the terminal window in which you started the application.
Press Ctrl+c
to kill the running Turbogears application. Then stop the virtualenv
deactivate
Deploying ResultsDB as Apache2/wsgi application
Install and configure mysql
yum install mysql-server chkconfig mysqld on service mysqld start /usr/bin/mysqladmin -u root password 'new-password'
mysql -u root -p
create database resultsdb; grant usage on *.* to resultsdb@localhost identified by 'TOP_SECRET_PASSWORD'; grant all privileges on resultsdb.* to resultsdb@localhost; exit
Prepare virtualenv
yum install python-pycurl python-fedora MySQL-python
- setup baseline virtualenv
mkdir -p /usr/local/pythonenv cd /usr/local/pythonenv virtualenv BASELINE chown -R apache:apache BASELINE
mkdir git chown apache:apache git sudo -u apache bash
- clone the resultsdb git & initialize the baseline virtualenv
cd git git clone git://git.fedorahosted.org/ResultsDB.git resultsdb source /usr/local/pythonenv/BASELINE/bin/activate easy_install -i http://www.turbogears.org/2.1/downloads/current/index tg.devtools cd /usr/local/pythonenv/git/resultsdb/resultsdb/ python setup.py develop
exit
- install modwsgi deploy helper tool
cd ~/ easy_install bzr mkdir modwsgideploy cd modwsgideploy bzr branch http://bazaar.launchpad.net/~mcfletch/modwsgideploy/parameterized/ cd parametrized/trunk python setup.py develop
- prepare the actual deployment data
mkdir /usr/local/turbogears cp -r ../resultsdb /usr/local/turbogears/ paster make-config resultsdb production.ini cp production.ini /usr/local/turbogears/resultsdb mkdir /usr/local/turbogears/resultsdb/python-eggs
#??? is this really necessary ??? cd /usr/local/pythonenv/BASELINE/ virtualenv resultsdb chown -R apache:apache resultsdb
- use the modwsgi_deploy tool to create apache config files
cd /usr/local/turbogears/resultsdb paster modwsgi_deploy --logging -b /usr/local/pythonenv/BASELINE/ deactivate
- apacheuser needs to own the deployed directory & files
chown -R apache:apache /usr/local/turbogears/resultsdb
Config files
Copy apache config file
cp /usr/local/turbogears/resultsdb/apache/resultsdb /etc/httpd/conf.d/resultsdb.conf
Edit /usr/local/turbogears/resultsdb/production.ini
* Default -> debug = false * app:main -> full_stack = false * app:main -> set debug = false * app:main -> sqlalchemy.url = mysql://resultsdb:TOP_SECRET_PASSWORD@localhost:3306/resultsdb
<http://stackoverflow.com/questions/3579850/mod-wsgi-not-working-with-pinax-of-django>
* add "WSGISocketPrefix /var/run/wsgi" (without quotes) to /etc/httpd/conf.d/wsgi.conf
Change /etc/httpd/conf.d/resultsdb.conf
* Original line: *: WSGIScriptAlias /resultsdb/ /usr/local/turbogears/resultsdb/apache/resultsdb.wsgi * Change line to (notice the deleted slash at the end of the originally '/resultsdb/'): *: WSGIScriptAlias /resultsdb /usr/local/turbogears/resultsdb/apache/resultsdb.wsgi
Restart the httpd service, and try to access http://url.of.your.server/resultsdb/ you should see the ResultsDB's "man" page.