|
|
| Line 1: |
Line 1: |
| ==Overview== | | ==Overview== |
| How to set up a new [http://trac.edgewall.org/ Trac] project environment on Windows using a [http://www.sqlite.org/ SQLite] database. | | How to set up a new [http://trac.edgewall.org/ Trac] project environment on Windows using a [http://www.sqlite.org/ SQLite] database. |
|
| |
| ==Prerequisites==
| |
| ===Trac installation===
| |
| * Python
| |
| ** Trac works only with Python 2.7 for now (even though Python 3.x exists).<br />(It looks like it's possible to run multiple python environments?)
| |
| ** The Windows installation of Python doesn't update the "path" environment variable. It's necessary to do that manually to include the path to the python executable.
| |
| ** Same is true for Trac. By default the trac libraries are installed in <code>[PYTHON_INSTALL_DIR]\Lib\site-packages\</code>. The <code>trac-admin</code> executable is located in <code>c:\python27\scripts\</code> (where <code>c:\phython27\</code> is the installation directory for Python).
| |
| * Python [http://pypi.python.org/pypi/setuptools#files setuptools]
| |
| * [http://genshi.edgewall.org/wiki/Download Genshi]
| |
|
| |
| ===Running Trac on IIS===
| |
| * See [http://trac.edgewall.org/wiki/TracOnWindowsIisAjp Running Trac on IIS 6 Using AJP]<br />(This also works with IIS 7.)
| |
| ====Install Trac====
| |
| * Instead of using port 8000, use 8009 which is the standard port for AJP.
| |
| * Add <code>--protocol=ajp</code> to have tracd use AJP instead of HTTP.<br /><syntaxhighlight lang="dos">
| |
| tracd --port 8009 --protocol=ajp ./littledamien_web/trac
| |
| </syntaxhighlight>
| |
| * This will result in an error indicating that the module flup.server.ajp is missing. If not, flup is installed and the next step may be skipped.
| |
|
| |
| ====Install flup====
| |
| * Copy <code>flup-1.0-py2.5.egg</code> from [http://www.saddi.com/software/flup/dist/ Saddi Software binaries] to <code>C:\Python27\Scripts</code> (or whatever may be your Python installation directory).
| |
| * Run <code>easy_install flup</code>.
| |
|
| |
| ====Install Tomcat AJP Connector for IIS====
| |
| * Set up the directory structure.
| |
| We assume there will be a base directory named C:\AJP-Connector and three subdirectories bin, conf and logs. Of course, you may choose anything else for the base directory.
| |
|
| |
| * Copy <code>tomcat-connectors-1.2.37-windows-i386-iis.zip</code> (or <code>tomcat-connectors-1.2.37-windows-x86_64-iis.zip</code> in a 64 bit environment) or a newer version from [http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/ Apache binaries] and extract <code>isapi_redirect.dll</code> to the bin subdirectory.
| |
| * Create a configuration file <code>isapi_redirect.properties</code> for the ISAPI redirector.
| |
| This must be in the same directory as the DLL and have exactly the same name but with a .properties extension. The configuration file should contain this: (be sure to replace "C:\AJP-Connector" with your actual directory)
| |
|
| |
| <pre>
| |
| # Configuration file for the ISAPI Redirector
| |
|
| |
| # The path to the ISAPI Redirector Extension, relative to the website
| |
| # This must be in a virtual directory with execute privileges
| |
| extension_uri=/AJP-Connector/isapi_redirect.dll
| |
|
| |
| # Full path to the log file for the ISAPI Redirector
| |
| log_file=C:\AJP-Connector\logs\isapi_redirect.log
| |
|
| |
| # Log level (debug, info, warn, error or trace)
| |
| log_level=info
| |
|
| |
| # Full path to the workers.properties file
| |
| worker_file=C:\AJP-Connector\conf\workers.properties
| |
|
| |
| # Full path to the uriworkermap.properties file
| |
| worker_mount_file=C:\AJP-Connector\conf\uriworkermap.properties
| |
| </pre>
| |
| * Create the workers.properties file with the following content: (replace the host name and port if necessary)
| |
| <pre>
| |
| # Define 1 real worker
| |
| worker.list=trac
| |
| # Set properties for trac (ajp13)
| |
| worker.trac.type=ajp13
| |
| worker.trac.host=localhost
| |
| worker.trac.port=8009
| |
| worker.trac.socket_keepalive=0
| |
| </pre>
| |
| * Create the uriworkermap.properties file with the following content: (replace foo and bar with your trac project names)
| |
| <pre>
| |
| /foo*=trac
| |
| /bar*=trac
| |
| </pre>
| |
|
| |
| ====Define the virtual directory for AJP-Connector====
| |
| * Start IIS Manager
| |
| * Inside the web site where you want to publish Trac, define a virtual directory named AJP-Connector, pointing to your bin subdirectory, with permissions to execute executables (not only scripts).
| |
| ** Click the name of the virtual directory.
| |
| ** In the virtual directory '''Home''' area, double click '''Handler Mappings'''.
| |
| ** In the '''Actions''' pane, click '''Edit Feature Permissions'''.
| |
| ** In the '''Edit Feature Permissions''' dialog verify that the '''Read''' and '''Script''' check boxes are both selected, and that the '''Execute''' check box is also selected.
| |
| The only purpose for this virtual directory is to allow the ISAPI filter defined in step 6 to find the DLL.
| |
|
| |
| ====Allow execution of the DLL as Web Service Extension====
| |
| * Open IIS manager
| |
| * Click on the Computer name in the left pane (root node in the tree)
| |
| * In the '''Features''' view select '''ISAPI and CGI Restrictions'''.
| |
| * Under '''Actions''' in the right column click '''Add...'''
| |
| ** ISAPI or CGI path: path to AJP DLL. (<code>c:\AJP-Connector\bin\isapi_redirect.dll</code>)
| |
| ** Description: AJP-Connector
| |
| ** Allow extension path to execute: checked
| |
|
| |
| ====Add AJP-Connector to the ISAPI filters====
| |
| * In the IIS Manager, open the properties of the web site where you want to publish Trac.
| |
| * Open '''ISAPI Filters'''.
| |
| * Add a new filter with any filter name (I prefer "AJP-Connector") and the complete path to c:\AJP-Connector/bin/isapi_redirect.dll as executable.
| |
|
| |
| ===Install Trac as a Windows service===
| |
| * Download the "SVRANY" tool.
| |
| ** This utility is part of '''Windows Server 2003 Resource Kit Tools'''. This applies even if the installation is on Windows 2008 Server.
| |
| ** Install The Resource Kit Tools and copy <code>srvany.exe</code> to <code>c:\windows\system32</code>.
| |
| * Create a new Windows service for tracd. (Administrator privileges required.)<br /><syntaxhighlight lang="dos" enclose="div">
| |
| sc create tracd binPath= c:\windows\systems32\srvany.exe start= auto DisplayName= "Trac Stand-Alone Service"
| |
| </syntaxhighlight>
| |
| ** Make sure that the service does not already exist and that the Services control panel is not open.
| |
| ** The equal signs are part of the parameter names. There must be no space between "binPath" and the equals sign. And there must be a space following the equals sign.
| |
| * Use <code>regedit</code> to configure the application run by the <code>tracd</code> service.
| |
| ** <code>\HKLM\SYSTEM\CurrentControlSet\Services\tracd\</code>
| |
| ** Create a key named "Parameters" and add 3 string values under the the key:
| |
| *** AppDirectory: <code>c:\Python27\</code>
| |
| *** Application: <code>python.exe</code>
| |
| *** AppParameters: <code>Scripts\tracd-script.py --port 8009 --protocol=ajp d:\inetpub\develop\littledamien\littledamien_web\trac</code>
| |
| ** Use the python executable with the tracd-script.py script instead of using tracd.exe. Otherwise if the service is stopped the python instance will not be killed.
| |
| * Start the new service.
| |
| ** Administrative Tools > Services > Trac Stand-Alone Service > right click > Start
| |
|
| |
|
| ==Creating a project environment== | | ==Creating a project environment== |