welcome: please sign in

The following 422 words could not be found in the dictionary of 7 words (including 7 LocalSpellingWords) and are highlighted below:
4ae7   57ff   96ee   9d467a69   able   above   across   add   Add   adding   address   adjust   Administrative   after   again   Alias   all   already   also   Among   an   and   And   anticipate   Apache   Apache2   App   applet   Application   application   apply   are   as   aspx   Assumes   at   automatic   automatically   available   b18c4790cffd   back   backlog   Backup   be   because   being   below   borrows   browser   But   but   by   call   called   can   case   caused   cgi   Cgi   change   Change   changed   changes   choose   click   closing   cmd   com   come   command   commandline   commands   compiled   computer   concrete   conf   config   configuration   Configuration   configure   configured   Configuring   Control   convenience   convenient   copy   Copy   correct   course   create   created   creating   current   Current   delay   detailing   details   didn   different   directives   Directory   directory   displaylang   dist   dll   document   done   Double   down   Download   downloads   dramatic   each   easier   easily   Easy   elsewhere   en   ensure   ensures   etc   even   exactly   example   Example   exe   external   External   familyid   farm   Farm   farmconfig   fas   Fast   fastcgi   faster   fcg   file   Files   files   fine   finished   first   folder   following   For   for   from   From   full   give   go   going   handle   Handler   has   have   Help   here   home   host   how   htdocs   http   httpd   If   if   ii   images   impact   in   info   insert   install   Install   installation   installed   Installing   instance   instead   instructions   instsrv   interface   internal   into   is   Iservice   it   just   keeping   Key   key   Kit   last   later   latest   Leave   level   life   like   line   lines   listed   ll   Load   local   located   location   loopback   lots   main   make   Make   marveled   match   max   means   microsoft   mod   Modify   Module   module   modules   more   More   move   Move   much   multiple   mywiki   name   named   navigate   necessary   need   needs   new   New   next   nor   not   note   Note   noticeable   Now   now   number   of   old   On   on   one   only   open   Open   optionally   Optionally   options   or   other   our   own   P2   pages   Panels   parameter   Parameters   particularly   path   perfectly   perform   performance   place   platform   point   points   port   prefer   Prerequisites   proceed   process   Program   provide   py   python   Python25   python25   Questions   quit   re   reboots   reducing   regedit   register   Register   rename   request   requests   Requirements   Resource   restart   restarts   right   Robo   Run   run   running   sake   same   script   Script   Scroll   section   See   see   select   sense   separate   Server   server   service   Services   Set   set   setting   Settings   setup   share   shebang   should   similar   since   single   small   so   Software   some   something   specific   specified   specify   speed   srvany   standard   Start   start   starts   statement   steps   string   String   substituting   such   sure   sys   system   tail   take   test   than   that   The   the   theirwiki   them   then   There   thereby   these   thfcgi   This   this   threads   time   to   Tools   tricks   try   two   type   Under   up   use   using   Value   value   version   via   waiting   want   way   We   we   webpage   well   went   When   whenever   which   while   Wiki   wiki   wikiconfig   will   Win32   window   Windows   with   Within   within   work   workgroups   working   works   would   wraps   www   You   you   your   yourself   yourwiki  

Clear message
Page Locked

HelpOnInstalling / ApacheOnWin32withFastCgi

1. Configuring FastCGI on Apache on Windows

1.1. (And adding it as a local service)

Moin in the standard CGI configuration is perfectly fine for small workgroups or internal wiki's. But, if you want to take your wiki performance to the next level, FastCGI is the way to go. FastCGI will have a noticeable and dramatic impact on speed, which is particularly noticeable on pages with lots of images. Among other tricks, FastCGI works by keeping the python process open, thereby reducing the small delay caused by waiting for a python process to open for each request. More info is available on the FastCGI webpage.

This document borrows from HelpOnInstalling/FastCgi; but here I try to provide a concrete example that will give you a working wiki on the Windows platform, detailing all the files that need to be configured within your moin setup.

1.2. Prerequisites & Requirements

  1. You already have working copy of MoinMoin on Windows - (See HelpOnInstalling/ApacheOnWin32)

  2. You're running Moin version 1.5.x or later.

  3. Assumes your wiki instance is located at d:\moin\mywiki (You will have to adjust these instructions to your specific set up).

  4. If you run (or anticipate running) multiple wiki's on the same server, you will want to have your wiki-farm configured and working first. (You will make life easier for yourself-- because of how FastCGI works, you will not be able to easily call two .FCG files at the same time (nor will it make sense to) from setting up the WikiFastCGIservice below, etc. If you are only setting up one wiki, then by all means, proceed... (see also HelpOnConfiguration and FarmQuestions).

(See also HelpOnInstalling/FastCgi)

1.3. Install FastCGI

  1. Download the latest compiled mod_fastcgi.dll from http://fastcgi.com/dist/ e.g., mod_fastcgi-SNAP-0404142202-AP2.dll

  2. Optionally rename it to mod_fastcgi.dll (if you choose not to rename it, be sure to specify the full name in the LoadModule line on the httpd.conf file).

  3. Copy it into the Apache2\modules folder at c:\Program Files\Apache Software\Apache2\modules\.

1.4. FastCGI MoinMoin Configuration

  1. Copy moin.fcg from d:\Python25\share\moin\server to your instance home, d:\Moin\mywiki

  2. Modify the moin.fcg to match your configuration:

    1. Change the first-line shebang statement to point to your python installation. This would be exactly has your old working moin.cgi file:

       #! d:/Python25/python
    2. change the sys.path.insert like to point to your wikiconfig.py file (again, just like in your old working moin.cgi file). If you're using a farm, point instead to your farmconfig.py file:

      sys.path.insert(0, r'd:\moin\mywiki\wikiconfig.py')
    3. The last lines of the moin.fcg file will be similar to below. For Windows, we need to specify a port number. You can select other port number other than 9001, but it should match the one in httpd.conf (see next section below). (note: in case your browser window wraps the below example, the fcg = thfcgi.FCGI is all one line, and fcg.run() is on it's own separate line).

      if __name__ == '__main__':
          fcg = thfcgi.FCGI(handle_request, port=9001, max_requests=max_requests, backlog=backlog, max_threads=max_threads)
          fcg.run()

1.5. httpd.conf Configuration

Open your Apache config file (c:\Program Files\Apache Software\Apache2\conf\), and add the following directives:

  1. Scroll down to the LoadModule section and add mod_fastcgi.dll, like in the example below (if you didn't rename your file, you'll need to exactly to match your file name):

    LoadModule fastcgi_module modules/mod_fastcgi.dll
  2. Scroll down to the AddHandler section and add the following:

    AddHandler fastcgi-script .fcg
  3. Modify your ScriptAlias line to point to your moin.fcg file (fas we configured in the section above). There are two options here; if you are running a single wiki, use i. If you have a wiki farm, use ii:

    1. Example if you're running a single wiki:
      ScriptAlias /mywiki    "d:/Moin/mywiki/moin.fcg"
    2. Example if you're running multiple wiki's (i.e. a wiki farm):
      ScriptAlias /mywiki     "d:/Moin/moin.fcg"
      ScriptAlias /yourwiki   "d:/Moin/moin.fcg"
      ScriptAlias /theirwiki  "d:/Moin/moin.fcg"
  4. Register the moin.fcg as an external server. This needs to match the port we specified in moin.fcg in the steps above (if you changed the port number). Make sure the path to moin.fcg points to the correct location. We'll also specify the loopback IP, instead of the interface IP, so that it will work even if the computer's IP address changes.

    FastCgiExternalServer d:/Moin/mywiki/moin.fcg -host 127.0.0.1:9001

When finished, you should have something similar to this at the tail of your httpd.conf file:

### point to the python wiki htdocs:
Alias       /wiki/    "D:/Python25/share/moin/htdocs/"
### Your ScriptAlias(es) need to point to your .fcg files:
ScriptAlias /mywiki    "D:/moin/moin.fcg"
ScriptAlias /yourwiki   "D:/moin/moin.fcg"
### Setting the external server:
FastCgiExternalServer d:/Moin/moin.fcg -host 127.0.0.1:9001

Move your old moin.cgi elsewhere to ensure that it's not being called.

You're done! Now it's time to test.

Open a commandline window (Start > Run... > type cmd), navigate to your moin.fcg location, and type the following command (substituting your python path, as necessary). Leave the window open while you test (closing it will quit the python process).

d:\python25\python moin.fcg

If all went well (and you marveled at how much faster moin is now), you can now proceed to the next section to register moin.fcg as a local service. This ensures that moin will come up across restarts.





2. Register moin.fcg as a local service

We're now going to create a new service that automatically starts our moin.fcg after reboots.

  1. Download & install the MS Windows 2003 Resource Kit. (of course, you already have the Resource Kit installed, since you're using RoboCopy to back up your wiki, right?! See HelpOnInstalling/Win32MoinEasyBackup). We need two commands from the Resource Kit, srvany.exe and instsrv.exe. For convenience sake, you can optionally move these to some place more convenient (you'll have to navigate to them via the commandline).

  2. From the commandline (Start > Run... > type cmd), navigate to your Resource Kit folder and type the following to create a new service, which we'll name WikiFastCGIservice. You can use a different name, if you prefer.

    INSTSRV WikiFastCGIservice C:\Windows\system\srvany.exe
  3. Now we have just created the service, we have to configure it. Run regedit.exe (Start > Run... > type regedit):

    1. Under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\, create a new key (right-click > New > Key) called WikiFastCGIservice.

    2. Under the WikiFastCGIservice you created above, create a new key (right-click > New > Key) named Parameters

    3. Within the Parameters key, create a new string value (right-click > New > String Value) named Application (key value will be listed as REG_SZ type). Double-click your value and specify the path of application:

      d:\Python25\python.exe
    4. Within the Parameters key: perform the same steps above, this time creating an AppParameters value and specify a parameter:

      d:\Moin\mywiki\moin.fcg
    5. Within the Parameters key: perform the same steps above, this time creating an AppDirectory value and specify the current directory:

      d:\Moin\mywiki
  4. Now configure it via the Services applet (Start > Settings > Control Panels > Administrative Tools > Services), such as automatic start.

You're finished!