README
author ymh <ymh.work@gmail.com>
Mon, 24 Jan 2011 10:27:42 +0100
changeset 137 d363fa6232b2
parent 93 2f978b081c4c
permissions -rw-r--r--
add polemic and twitter info
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
93
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
     1
==============================
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
     2
France Culture - Ubuntu 10.04
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
     3
==============================
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
     4
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
     5
1 - Database creation
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
     6
2 - Virtualenv installation
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
     7
3 - Settings
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
     8
4 - Database synchronization
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
     9
5 - .htaccess files
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    10
6 - WSGI script file
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    11
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    12
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    13
1 - Database creation
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    14
======================
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    15
Create a database in Postgres:
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    16
  createdb -U username -W -h 127.0.0.1 d
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    17
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    18
Access to te database in Postgres:
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    19
  psql -U username -W -h 127.0.0.1 dbname
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    20
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    21
\d to view the list of all relations
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    22
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    23
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    24
2 - Virtualenv installation
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    25
============================
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    26
Run the bootstrap script generator:
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    27
  python create_python_env.py 
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    28
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    29
Run project-boot.py this way:
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    30
  python hg/franceculture/sbin/virtualenv/project-boot.py --no-site-packages --setuptools --unzip-setuptools --type-install=local --ignore-packages=MYSQL path/to/env/Env
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    31
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    32
To activate the environment:
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    33
  source path/to/env/Env/bin/activate
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    34
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    35
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    36
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    37
3 - Settings
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    38
=============
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    39
Enter the db settings in franceculture/web/franceculture/config.py:
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    40
DATABASES = {
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    41
    'default': {
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    42
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    43
        'NAME': 'dbFrC',
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    44
        'USER': 'iriuser', 
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    45
        'PASSWORD': 'iriuser',
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    46
        'HOST': 'localhost',
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    47
        'PORT': '5432',
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    48
    }
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    49
}
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    50
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    51
Change the URL paths:
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    52
BASE_URL = '/dev/~user/franceculture/'
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    53
WEB_URL = 'http://www.iri.centrepompidou.fr/'
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    54
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    55
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    56
In your public_html, create a symbolic link that points to the application:
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    57
  ln -s path/to/project/franceculture franceculture
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    58
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    59
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    60
4 - Database synchronization
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    61
=============================
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    62
Synchronize the database, in franceculture/web/franceculture:
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    63
  python manage.py syncdb
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    64
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    65
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    66
5 - .htaccess files
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    67
====================
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    68
Write franceculture/web/.htaccess:
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    69
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    70
# Permanent redirection to franceculture/franculture
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    71
RedirectMatch permanent /~user/franceculture/?$ /~user/franceculture/franceculture
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    72
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    73
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    74
Write franceculture/web/franceculture/.htaccess:
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    75
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    76
# Set environmental variables used in the wsgi file
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    77
SetEnv DJANGO_SETTINGS_MODULE franceculture.settings
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    78
SetEnv PY_USE_XMLPLUS true
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    79
SetEnv PROJECT_PATH /path/to/project/franceculture/web
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    80
SetEnv PYTHON_PATH /path/to/virtual/environment/Env/lib/python2.6/site-packages
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    81
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    82
Options ExecCGI FollowSymLinks
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    83
SetHandler wsgi-script
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    84
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    85
RewriteEngine On
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    86
RewriteCond %{REQUEST_FILENAME} !-f
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    87
RewriteRule ^(.*)$ /path/to/wsgiscript/modwsgi.wsgi/$1 [QSA,PT,L]
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    88
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    89
# html cache options
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    90
Header set Pragma "no-cache"
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    91
Header set Cache-Control "no-cache"
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    92
Header set Expires "-1"
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    93
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    94
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    95
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    96
6 - WSGI script file
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    97
======================
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    98
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
    99
Write the WSGI file modwsgi.wsgi
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   100
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   101
import os, sys, site
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   102
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   103
def application(environ, start_response):
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   104
        os.environ['DJANGO_SETTINGS_MODULE'] = environ['DJANGO_SETTINGS_MODULE']
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   105
        os.environ['PY_USE_XMLPLUS'] = environ['PY_USE_XMLPLUS']
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   106
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   107
        sys.path.append(environ['PROJECT_PATH'])
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   108
        site.addsitedir(environ['PYTHON_PATH'])
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   109
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   110
        import django.core.handlers.wsgi
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   111
        _application = django.core.handlers.wsgi.WSGIHandler()
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   112
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   113
        return _application(environ, start_response)
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   114
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   115
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   116
Notes:
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   117
- The 'environ' argument is unrelated to the 'os.environ' argument. It catches the variables that were defined with 'SetEnv' in the .htaccess file.
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   118
- 'sys.path.append' adds the project path to the PYTHONPATH
2f978b081c4c Readme and hgignore
wakimd
parents:
diff changeset
   119
- 'site.addsitedir' activates the virtual environment