Changes between Version 2 and Version 3 of TracModPython
- Timestamp:
- 03/27/21 11:48:13 (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TracModPython
v2 v3 6 6 Trac supports [http://www.modpython.org/ mod_python], which speeds up Trac's response times considerably, especially compared to [TracCgi CGI], and permits use of many Apache features not possible with [wiki:TracStandalone tracd]/mod_proxy. 7 7 8 These instructions are for Apache 2. If you are using Apache 1.3, you may have some luck with [trac:wiki:TracModPython2.7 TracModPython2.7], but that is a deprecated setup.9 10 8 [[PageOutline(2-3,Overview,inline)]] 11 9 12 == Simple configuration: single project ==#Simpleconfiguration10 == Simple configuration: single project #Simpleconfiguration 13 11 14 12 If you just installed mod_python, you may have to add a line to load the module in the Apache configuration: … … 37 35 {{{#!apache 38 36 <Location /mpinfo> 39 SetHandler mod_python 40 PythonInterpreter main_interpreter 41 PythonHandler mod_python.testhandler 42 Order allow,deny 43 Allow from all 37 SetHandler mod_python 38 PythonInterpreter main_interpreter 39 PythonHandler mod_python.testhandler 40 # For Apache 2.2 41 <IfModule !mod_authz_core.c> 42 Order allow,deny 43 Allow from all 44 </IfModule> 45 # For Apache 2.4 46 <IfModule mod_authz_core.c> 47 Require all granted 48 </IfModule> 44 49 </Location> 45 50 }}} … … 48 53 {{{#!apache 49 54 <Location /projects/myproject> 50 SetHandler mod_python 51 PythonInterpreter main_interpreter 52 PythonHandler trac.web.modpython_frontend 53 PythonOption TracEnv /var/trac/myproject 54 PythonOption TracUriRoot /projects/myproject 55 Order allow,deny 56 Allow from all 55 SetHandler mod_python 56 PythonInterpreter main_interpreter 57 PythonHandler trac.web.modpython_frontend 58 PythonOption TracEnv /var/trac/myproject 59 PythonOption TracUriRoot /projects/myproject 60 # For Apache 2.2 61 <IfModule !mod_authz_core.c> 62 Order allow,deny 63 Allow from all 64 </IfModule> 65 # For Apache 2.4 66 <IfModule mod_authz_core.c> 67 Require all granted 68 </IfModule> 57 69 </Location> 58 70 }}} … … 77 89 PythonOption TracLocale en_GB.UTF8 78 90 79 # See description above 91 # See description above 80 92 PythonOption TracUriRoot /projects/myproject 81 93 }}} … … 98 110 === Setting the Python Egg Cache 99 111 100 If the Egg Cache isn't writeable by your Web server, you'll either have to change the permissions, or point Python to a location where Apache can write. This can manifest itself as a `500 internal server error` and/or a complaint in the syslog. 112 If the Egg Cache isn't writeable by your Web server, you'll either have to change the permissions, or point Python to a location where Apache can write. This can manifest itself as a `500 internal server error` and/or a complaint in the syslog. 101 113 102 114 {{{#!apache 103 115 <Location /projects/myproject> 104 116 ... 105 PythonOption PYTHON_EGG_CACHE /tmp 117 PythonOption PYTHON_EGG_CACHE /tmp 106 118 ... 107 119 </Location> … … 128 140 SetHandler mod_python 129 141 PythonInterpreter main_interpreter 130 PythonHandler trac.web.modpython_frontend 142 PythonHandler trac.web.modpython_frontend 131 143 PythonOption TracEnvParentDir /var/trac 132 144 PythonOption TracUriRoot /projects … … 135 147 136 148 When you request the `/projects` URL, you will get a listing of all subdirectories of the directory you set as `TracEnvParentDir` that look like Trac environment directories. Selecting any project in the list will bring you to the corresponding Trac environment. 149 150 Directories residing in `TracEnvParentDir` that are not environment directories will display an error message on the [TracInterfaceCustomization#ProjectList project index page]. The directories can be excluded by listing them in a `.tracignore` file residing in `TracEnvParentDir`. Unix [https://docs.python.org/2/library/fnmatch.html shell-style wildcard patterns] can be used in the newline separated list of directories. 137 151 138 152 If you don't want to have the subdirectory listing as your projects home page you can use a … … 220 234 221 235 #remove these if you don't want to force SSL 222 RewriteEngine On 236 RewriteEngine On 223 237 RewriteCond %{HTTPS} off 224 238 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} … … 265 279 SetHandler mod_python 266 280 PythonInterpreter main_interpreter 267 PythonHandler trac.web.modpython_frontend 281 PythonHandler trac.web.modpython_frontend 268 282 PythonOption TracEnv /system/path/to/this/directory 269 283 PythonOption TracUriRoot /path/on/apache … … 304 318 }}} 305 319 306 See also [http ://subversion.apache.org/faq.html#reposperms How do I set repository permissions correctly?]320 See also [https://subversion.apache.org/faq.html#reposperms How do I set repository permissions correctly?] 307 321 308 322 ==== FreeBSD issues … … 347 361 348 362 '''Note''': For the above configuration to have any effect it must be put after the configuration of your project root location, ie {{{<Location /myproject />}}}. 349 350 Also, setting `PythonOptimize On` seems to mess up the page headers and footers, in addition to hiding the documentation for macros and plugins (see #Trac8956). Considering how little effect the option has, leave it `Off`.351 363 352 364 === HTTPS issues … … 364 376 === Segmentation fault with php5-mhash or other php5 modules 365 377 366 You may encounter segfaults (reported on Debian etch) if php5-mhash module is installed. Try to remove it to see if this solves the problem. See [http ://bugs.debian.org/cgi-bin/bugreport.cgi?bug=411487 Debian bug report].367 368 Some people also have troubles when using PHP5 compiled with its own third party libraries instead of system libraries. Check [http ://www.djangoproject.com/documentation/modpython/#if-you-get-a-segmentation-fault Django segmentation fault].378 You may encounter segfaults (reported on Debian etch) if php5-mhash module is installed. Try to remove it to see if this solves the problem. See [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=411487 Debian bug report]. 379 380 Some people also have troubles when using PHP5 compiled with its own third party libraries instead of system libraries. Check [https://www.djangoproject.com/documentation/modpython/#if-you-get-a-segmentation-fault Django segmentation fault]. 369 381 370 382 ----