Deploy Turbogears 2.1 on Fedora
Jumaat, 19 Februari 2010, 5:27 pm
(Update: Using Fedora 16)
Install mod_wsgi for apache
yum install mod_wsgi
Edit apache config: (/etc/httpd/conf/httpd.conf)
ServerName hostname:80
Workaround for mod_wsgi 2.x in Fedora, move this line:
Include conf.d/*.conf
… to below these lines:
User apache Group apache
Add this to the end of the config file: (/etc/httpd/conf.d/wsgi.conf)
<IfModule mod_wsgi.c> WSGISocketPrefix /var/run/wsgi </IfModule>
Using TG2 demo app from the previous post (HelloWorld), create apache config file for this app: (/etc/httpd/conf.d/HelloWorld.conf)
Listen 8080
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerAdmin webmaster@hostname
ServerName hostname
ErrorLog logs/hostname-error_log
CustomLog logs/hostname-access_log common
Alias /images/ /var/www/HelloWorld/images/
Alias /css/ /var/www/HelloWorld/css/
Alias /javascript/ /var/www/HelloWorld/javascript/
WSGIDaemonProcess HelloWorld threads=10 processes=3
WSGIProcessGroup HelloWorld
WSGIScriptAlias / /var/www/HelloWorld/HelloWorld.wsgi
<Directory /var/www/HelloWorld>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Create directory for static contents (do these as root):
mkdir -p /var/www/HelloWorld/python-eggs
Create wsgi script for apache to launch this app: (/var/www/HelloWorld/HelloWorld.wsgi)
import os, sys, site
appname = 'HelloWorld'
prev_sys_path = list(sys.path)
site.addsitedir('/usr/local/pythonenv/%s/lib/python2.6/site-packages' % appname)
new_sys_path = []
for item in list(sys.path):
if item not in prev_sys_path:
new_sys_path.append(item)
sys.path.remove(item)
sys.path[:0] = new_sys_path
sys.path.append('/usr/local/turbogears/%s' % appname)
from pkg_resources import working_set, Environment
env = Environment('/usr/local/pythonenv/%s' % appname)
env.scan()
distributions, errors = working_set.find_plugins(env)
for dist in distributions:
working_set.add(dist)
os.environ['PYTHON_EGG_CACHE'] = '/usr/local/turbogears/%s/python-eggs' % appname
from paste.deploy import loadapp
application = loadapp('config:/usr/local/turbogears/%s/production.ini' % appname)
Move TG2 public folder to static contents folder:
cp -r HelloWorld/helloworld/public/* /var/www/HelloWorld chown -R apache.apache /var/www/HelloWorld
Move TG2 app to application folder:
mkdir -p /usr/local/turbogears cp -r HelloWorld/ /usr/local/turbogears/
Create production config file of the app:
cd /usr/local/turbogears/HelloWorld cp development.ini production.ini
Set debug to false: (/usr/local/turbogears/HelloWorld/production.ini)
debug=false
Set permission:
chown -R apache.apache /usr/local/turbogears
Finally, restart apache:
service httpd restart
Now, browse to http://localhost:8080
19 Februari 2010
19 Februari 2010