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