|
The Odd OS Out
In the world of the wiki, being in the Windows
camp sometimes makes you feel like a second-class citizen.
Much of the information for wikis on the Windows
platform is either out of date, or just plain wrong. Many
of the tools encourage users to simply accept Linux into their
lives, giving vague warnings about the dire consequences that await
if they dare to host the product on Windows.
While Linux is undoubtedly the optimal solution in some
cases -- such as when you can requisition or reconfigure
existing hardware to act as a new Linux server, or when
you're using some of the superlative virtual machine
solutions -- many shops lack UNIX/Linux skills, or they simply
want a homogenous platform, and thus would prefer to stick to the
Windows platform even if it wasn't the native-environment
originally envisioned.
Sometimes the team is skillful and adept with Linux, but the
corporate IT department brutally seeks out and destroys rogue PCs
running the unauthorized OS, storming the department in a flurry of
flying pocket protectors.
All is not lost, however.
Wikis To The Rescue
Not only are there numerous wiki or wiki-like
products (yafla provides Sharepoint
consulting in addition to wiki solutions, however Sharepoint
fulfills a subtly different niche than wikis)
available for the Windows platform, you can even host the
trendsetter in the wiki world - MediaWiki - on
Windows.
MediaWiki, as you likely know, is the rapidly evolving
software platform on which Wikipedia is based. It's free
to download and use, even for big, soul-less corporations.
So without further ado, the following is a no-nonsense guide to
getting MediaWiki installed on Windows XP, Windows 2000, or Windows
2003. This is intended to get you up and running, and if you find
that you like the platform and the package then you can start
looking into advanced customization and locking down (for instance
you can
configure a Wiki to only allow authorized users to make changes,
with authorized users only being created by users with appropriate
privileges. This eliminates the primary fear of most
wiki-holdouts -- a fear that a wiki is a crazy free for all).
My primary goal is simply to get people looking at wikis, seeing
how simple it is to configure them. In
Optimal Software Development Processes and Practices, I wrote
about the need for
formulating written standards. The reason many teams shirk from
such a task is because it's one that appears to have a lot of
upfront, contentious work involved, generating the first version of
the definitive Corporate Standards guide. Using a wiki, though, and
you can organically grow team information like standards, adding
small additional pieces of information as they come up, with
extraordinarily easy editing, organized centralization (which I
covered in
Organize Your Information), and full history and revision
control.
A wiki can be a tremendous information tool for modern
teams. It works in the way that information is often accumulated,
and not in the spastic, all-or-nothing manner usually
pursued.
Common Steps
- Download and install the feature-rich 7-zip. This will facilitate
unzipping/untarring files further in the process. Log out and back
in to enable the GUI extensions.
- Download and install the GNU diff
utilities. You can get by with the "complete package, except
sources". Note where you installed it, as you'll require the
location in a later step (this will likely be C:\Program
Files\GnuWin32).
Option 1 - The WAMP Platform
You've probably heard the acronym LAMP (Linux +
Apache + MySQL + PHP/Perl/Python). It's the description of an
important and somewhat standard technology stack on which a
tremendous number of very successful solutions are built. It's
extraordinarily feature rich and capable, not to mention that it
comes at a very good price.
AMP is all of the stack on a platform other
than Linux, WAMP being Windows + Apache
+ MySQL + PHP/Perl/Python.
One of the easiest and most-up-to-date options to configure WAMP
on Windows is the DeveloperSide.NET
Web-Server Suite. Offering a free, pre-packaged configuration
of the fundamentals, this option can get you up and running
in little time, even on the "non-server" Windows XP.
- Download and install the self-installing DeveloperSide.NET
Web-Server Suite at http://www.devside.net/web/server/free/download.
Note the install location (by default C:\www). Restart
when prompted.
- If you already have the IIS World Wide Web Publishing running,
there will be a conflict over port 80. You can move your wiki to a
different port by modifying
C:\www\Apache2\conf\httpd.conf. You can then run
C:\www\Apache2\bin\ApacheMonitor.exe to stop and restart
the service. If you opt to do this you'll have to append the port
when you access your wiki (e.g. http://localhost:85 if you chose
port 85) in later steps, and this could cause problems for machines
with software or hardware firewalls between them and the wiki,
which usually only expect HTTP traffic on port 80.
- Delete index.html from C:\www\webroot
(altering the path if you have a different install location from
step 1).
- Download
MediaWiki. For this setup I grabbed 1.5.6, which is a
stable release from January 19th, 2006. When you read this
something newer may be available.
- Right click on the downloaded file
(mediawiki-x.x.x.tar.gz, where the x's represent the
version number - e.g. mediawiki-1.5.6.tar.gz) and pick
"7-Zip -> Extract Here".
- Right click on the newly ungzipped file,
mediawiki-x.x.x.tar (where of course the x's refer to the
version number. e.g. mediawiki-1.5.6.tar), and choose
"7-Zip -> Extract Here".
- Copy the contents of the newly extracted folder - e.g.
mediawiki-1.5.6, to C:\www\webroot, altering if
you have a different base directory in step 1. For instance
navigate into the folder, choose Edit/Select All, Edit/Cut,
navigate to C:\www\webroot and choose Edit/Paste).
You should now have files such as wiki.phtml in the folder
C:\www\webroot.
- Open a web browser pointing to http://localhost/ (or the IP or DNS
name of whatever server you've installed this on), and you should
be presented with a page telling you to setup the wiki
first.
- Everything should be fairly self-evident. After setting
passwords for the sysop (which is the account used to administer
through the wiki web app), as well as for the new MySQL account, be
sure to clear the password at the very bottom, as by default MySQL
was installed with no password on the root account, albeit limited
to local access.
- Copy LocalSettings.php from
C:\www\webroot\config\ to C:\www\webroot\.
- Configure the email server appropriately - if you're running
the IIS SMTP server locally you're good, otherwise you need to
make
a configuration change so the wiki is capable of sending
email.
- Access your wiki! Start editing and creating pages (search for
a new topic, and then click on this exact title in the
resulting search failure page -- you're now editing the new page!),
organically growing your information base! Select Edit on
complex Wikipedia entries
to see how features like categorization, sections, sidebars, and
images are achieved.
- Read the User's
Guide to see how to customize things like images, templates,
allowing uploads and images, and so on, and how to edit
pages. Login as WikiSysop (or whatever else you named it) and
play around with preferences, special pages, skins, and so on.
Create accounts for members on your team.
- If you find that you like the platform, remember to make a
backup
strategy for your MySQL wiki database.
Option 2- The WIMP Platform
IIS 5.1, and moreso IIS 6.0, really is a superlative web server,
and in security metrics it's actually been beating out Apache. It's
fast, capable, and you probably have other applications running on
it (e.g. .NET apps), and perhaps you don't want the heft of a
second set of webserver services running on your machine simply to
host a new web app.
Well you don't need to run Apache for MediaWiki if you don't
want to.
This configuration is a little bit more involved as I've chosen
to recommend the individual constituents, but in the end you'll
have what could be considered a more granular, controlled
configuration than using one of the all-in-one stack solutions.
This presumes that you've already installed IIS. If you haven't,
used Add or Remove Programs and add IIS in Add/Remove
Windows Components.
- Download and
install MySQL (in this case I downloaded and installed the 34.9MB
v5.0.18 "Windows (x86)" variant), using the "Typical" install
options. In the detailed configuration choose appropriate settings
(for instance Developer Machine if you're just doing a trial run),
noting the new root password for the database server (you'll need
this later, as by default this stand-alone install is more secure
than the packaged bundles).
- Download the
"PHP 5.x.x zip package" (not the installer), for instance
PHP 5.1.2
zip package.
- Right click on the downloaded file and pick
7-Zip->Extract Files. Enter C:\PHP as the
path.
- Copy libmySQL.dll from C:\program
files\mysql\MySQL Server 5.0\bin to C:\PHP.
- In C:\PHP, rename php.ini-recommended to
php.ini.
- Open php.ini in notepad.
- Find the line (Edit/Find) extension_dir = "./" and
change it to extension_dir = "C:\PHP\ext"
- Find the line ;extension=php_gd2.dll and remove the
leading semicolon, leaving extension=php_gd2.dll
- Find the line ;extension=php_mysql.dll and remove the
leading semicolon, leaving extension=php_mysql.dll
- Save the file and exit notepad.
- Add C:\PHP to the path (Start/Control
Panel/System/Advanced/Environment Variables. Under System
Variables, double click Path and append ;C:\PHP on the end
(note the semicolon).
- Add a new system environment variable (Start/Control
Panel/System/Advanced/Environment Variables) called PHPRC,
with the value C:\php
- If you're running Windows 2003, run Start/Administrative
Tools/Internet Information Services (IIS) Manager. Expand the local
computer, and choose "Web Service Extensions". Select "Add a new
Web service extension". Give it the name PHP, and then Add
the required file C:\PHP\php5isapi.dll. Set the
checkbox "Set Extension status to allowed". This will allow the
extension to run.
- In IIS Manager, expand websites and right click on Default
Web Site. Choose the Home Directory tab, and select the
Configuration button in the Application settings section.
Click on the Add button in the Mappings page. For the executable,
enter C:\PHP\php5isapi.dll, and for the extension enter
.php. Ok all of the dialogs.
- In IIS Manager, expand websites and right click on Default
Web Site. In the Documents tab select Add and
configure the new default content page to index.php. Ok
out, and choose Move Up until index.php is at the top of the
list.
- Complete steps 4 to 12 from the WAMP configuration, replacing
all references to C:\www\webroot with
C:\Inetpub\wwwroot. Also be sure to enter the root MySQL
password that you set in step 1 into the Wiki setup page. As one
last hiccup, you will likely have to provide the account
IUSR_LOCALMACHINE, where local machine is the hostname of
the machine in question (e.g. IUSR_MyServerA1) with full
control of the C:\inetpub\wwwroot\config directory during
Wiki setup, allowing it to emit the generated setup file. You can
remove it right after generating and copying the
LocalSettings.php file. Alternately you can customize the
account under which the web site is running.
- If you wish to enable uploads, you will also have to configure
directory access on C:\inetpub\wwwroot\images, allowing
the account under which the web application is running to have
access to modify files in that directory. For instance add
IUSR_LOCALMACHINE (again where localmachine is the
hostname of the machine in question, such as
IUSR_MyServerA1), or whatever other account you have the
application pool running under, to have full control of the
directory, or simply give it Add File permission and add full
control to the CREATOR OWNER virtual account.
Voila, a high performance wiki hosted with IIS on Windows. Now
if only there were a ASP.NET 2.0 fork with all of superlative
MediaWiki functionality and usability, coupled with a SQL Server
back-end...
Once you have the platform configured to demonstrate the concept
to yourself and your team, you can begin altering the look and
feel, and enabling huge performance speed-ups such as the PHP
compiled caching extensions and memory caches. This is just a
powerful starting point.
|
|