Turbogears 2.1 on Fedora

This post shows how to install Turbogears2 (TG2) in a Python virtual environment. (Update: Using Fedora 14)

Install required software:

yum install python-setuptools python-virtualenv

PostgreSQL dependencies (needed by PyGreSQL)

yum install gcc postgresql-devel

For MySQL backend, dependencies:

yum install gcc mysql-devel

Install TG2 in virtual env: (as root)

mkdir -p /usr/local/pythonenv
virtualenv --no-site-packages /usr/local/pythonenv/HelloWorld

Activate virtual env:

source /usr/local/pythonenv/HelloWorld/bin/activate

Install PostgreSQL database components: (in virtualenv, as root)

easy_install PyGreSQL
easy_install psycopg2

Install TG2.1: (in virtualenv, as root)

easy_install -i http://www.turbogears.org/2.1/downloads/current/index tg.devtools
easy_install -i http://www.turbogears.org/2.1/downloads/current/index Genshi
easy_install tw.jquery

Start developing TG2 app:

Note: Another way to add dependencies – edit setup.py, add package name to ‘install_requires’ variable. For MySQL, add ‘MySQL-python’

Activate virtualenv first (as regular user – ‘webmaster’)

source /usr/local/pythonenv/HelloWorld/bin/activate

Create TG2 app:

paster quickstart HelloWorld

Install required packages for this new app: (in virtual env, as root)

cd HelloWorld/
python setup.py develop

Make sure to use new PostgreSQL DSN format: (development.ini)

postgresql://username:password@hostname:port/databasename

Populate database (as regular user, refer HelloWorld/helloworld/websetup.py)

paster setup-app development.ini

Launch TG standalone server

paster serve --reload development.ini

… and start coding / debugging at http://localhost:8080

To change default URL address: (development.ini)

[server:main]
host = 192.168.56.101
port = 5000
turbo_gears
Turbo + Gear

PostgreSQL on Fedora

PostgreSQL (Update: Using Fedora 14)

Install PostgreSQL & phpPgAdmin (web-based Postgres administration)

yum install postgresql postgresql-server phpPgAdmin

Initialize database

service postgresql initdb

Start PostgreSQL service

service postgresql start

Create password for user ‘postgres’ (in the system)

passwd postgres

Login as user ‘postgres’

su - postgres

Create password for user ‘postgres’ (in the database)

psql -d template1
alter user postgres with password 'password';

Exit psql shell:

q

Let Postgres allow authentication using password: (/var/lib/pgsql/data/pg_hba.conf)

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
local   all         all                               md5
local   all         all                               ident
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
host    all         all         127.0.0.1/32          ident
# IPv6 local connections:
host    all         all         ::1/128               md5
host    all         all         ::1/128               ident

Note:
md5 – allow authentication using password
ident – authentication as system user

Restart PostgreSQL

service postgresql restart

Enable service:

chkconfig postgresql on

phpPgAdmin

Create phpPgAdmin by copying from original config file: (/usr/share/phpPgAdmin/conf)

cp config.inc.php-dist config.inc.php

Allow login from phpPgAdmin: (/usr/share/phpPgAdmin/conf/config.inc.php)

$conf['extra_login_security'] = false;

Apache setting, add your IP address to allow access to the application (/etc/httpd/conf.d/phpPgAdmin.conf)

Allow from 192.168.56.1

Reload httpd. Open phpPgAdmin (http://localhost/phpPgAdmin). Login as ‘postgres’

Add new user: (PostgreSQL > Roles > Create role)

create-role
Create role (user) ‘webmaster’, inherits privileges from user ‘postgres’ & allow login

Create database: (PostgreSQL > Database > Create database)

create-database
Create database ‘helloworld’ using Unicode encoding

Grant permission on database: (PostgreSQL > helloworld > Privileges > Grant)

grant
User ‘webmaster’ is granted ‘All privileges’

Check connection & configuration

psql -h localhost helloworld webmaster