Help:Running MediaWiki on Windows: Difference between revisions

From Meta, a Wikimedia project coordination wiki
Content deleted Content added
link
Line 229: Line 229:
When running IIS, if image uploading does not work, open SpecialUpload.php in the "includes" directory and change the text "if ( ! move_uploaded_file( $wpUploadTempName, $wgSavedFile ) ) {" to "if ( ! copy( $wpUploadTempName, $wgSavedFile ) ) {" This may be a PHP bug, but it got image uploads to work.
When running IIS, if image uploading does not work, open SpecialUpload.php in the "includes" directory and change the text "if ( ! move_uploaded_file( $wpUploadTempName, $wgSavedFile ) ) {" to "if ( ! copy( $wpUploadTempName, $wgSavedFile ) ) {" This may be a PHP bug, but it got image uploads to work.
[[User:Harbenger|Harbenger]] 08:09, 3 May 2004 (GMT-4).
[[User:Harbenger|Harbenger]] 08:09, 3 May 2004 (GMT-4).


A step by step guide to installing mediawiki with Apache 2 and PHP 5, on windows, can be found at [[Newcomers guide to installing on Windows]].


===iconv===
===iconv===

Revision as of 15:32, 25 December 2004

(Hindi) < Running MediaWiki

This page will give you information about installing MediaWiki on a Microsoft Windows system.

You will need the following software:

  • Support software
    • DBMS: MySQL only option currently supported
    • Web Server: Apache or IIS
    • PHP
    • other utilities such as texvc
  • the Mediawiki code itself

You will also need some serious hardware for the full Wikipedia database.

The fastest and easiest install method

NOTE: MediaWiki is developed under a LAMP (Linux+Apache+MySQL+PHP) environment. It is recommended that you use as much of this stack as possible under Windows if you want MediaWiki to run smoothly. Therefore, IIS is not recommended. Instead, using the "AMP" portion of the "LAMP" stack is more likely to succeed.

It is extremely difficult for beginning users to install and configure Apache+MySQL+PHP under Windows one product at a time. I strongly suggest you download and install EasyPhp. It combines Apache+MySQL+PHP+MysqlAdmin into one single installation, which saves you 99% of the trouble of configuring each package manually. Incidentally, the web-based MySQL admin tool is very friendly for newbies. (There are also other comparable installation kits available, e.g. http://www.xampp.org/, ...) See also: Wiki on a stick.

Here are the step by step instructions for installing MediaWiki under Windows using EasyPhp. It is a 15 minutes process instead of my original 5 to 8 hour unsuccessful attempt using the separated installation method. I did the installation under Windows XP Professional, though it should work for Windows 2000 or similar releases.

Preparing Apache, MySQL and PHP

  1. Stop or uninstall IIS from the Windows management tools if your machine already has IIS installed. Check "Control Panel->Performance and Maintenance->Administrative Tools->..." Is there an IIS icon? If not, you're done. If there is, stop the IIS service.
  2. Download EasyPHP here .
  3. Double click the downloaded EasyPHP installation package under Windows to install it. Some of the screens of the install wizard may not be in English.
  4. Be sure to change the default installation path to C:\EasyPHP instead of C:\Program Files to avoid the space in path.
  5. Run EasyPHP from "Start->All Programs->EasyPHp1-7->EasyPHP". A bold black "E" will appear as a mini task when EasyPHP is running.
  6. Change the interface language to English by double clicking the "E" icon after installation is complete. There is a select box on the lower part of the popup window where you can specify the language to use.
  1. Start Apache and MySQL from the same popup window
  2. Go to http://localhost/ to test it

The Apache+MySQL+PHP+MysqlAdmin is all set! Isn't that easy?

Installing wikipedia

After successfully installing the underlying software, you can install wikipedia.

  1. Download MediaWiki from sourceforge file list or portal page
  2. Uncompress the MediaWiki source tree under C:\EasyPHP\www\mediawiki . I usually install WinRAR for each Windows machine I use. WinRAR can uncompress all common compressed file formats. Google on WinRAR for download sites. The Extractnow utility should also be able to handle this, and it's completely free (WinRAR requests a donation). (Actually Extractnow doesn't handle tarballs - try Stuffit.)
  3. Double check that the PHP source files are actually in C:\EasyPHP\www\mediawiki, not in a subdirectory underneath it.
  4. Make sure Apache and Mysql are on by double clicking EasyPhp's "E" icon.
  5. Access http://localhost/mediawiki and configure mediawiki as instructed by the page.
    If you get a blank page at this point, and it has not created the "LocalSettings.php" file, this may be a software issue in the 1.3x series of mediawiki. Try using the latest stable or beta version 1.4x mediawiki instead.
  6. Move generated C:\EasyPHP\www\mediawiki\config\LocalSettings.php to C:\EasyPHP\www\mediawiki\ . I.e. move it into its parent directory
  7. Enjoy your MediaWiki under Windows now: http://localhost/mediawiki

Tasks after installation:

  • Go to http://localhost/mysql/ to set root password for MySQL. Note that entering the trailing "/" matters!
  • Edit the file C:\EasyPHP\www\mediawiki\LocalSettings.php to configure your wiki.

Installation for 1.3.7 on Windows.

  • Copy /includes/DefaultSettings.php and rename it as LocalSettings.php
  • Add $IP="C:\\{Actual Pathname of MediaWiki}" e.g $IP = "C:\\Program Files\\Apache Group\\Apache2\\htdocs\\mediawiki"
  • Change stylepath to $wgStylePath = "$wgScriptPath/stylesheets";
  • Remove all curly brackets
  • Change the database name-$wgDBname
  • Change logo path to $wgLogo= "$wgScriptPath/stylesheets/images/wiki.png";

Support software

You can install the three support components individually, or all together as a package. A good example of the latter is Xampp (frequently updated as of September 2004) and Uniform Server. Other options, which as of September 2004 have not been updated since 2003, include IBServer, EasyPHP and FoxServ.


Database Management System

The only DBMS currently supported is MySQL. Further instructions will be added as other options become available.

The download link below points to a page with all available versions of MySQL. The one you want is "Production release" which is recommended.

While downloading, read the Install Guide using the second link below.

Warning: the password hashing schemes are different between MySQL versions 4.0 and 4.1, and prebuilt binaries of PHP use the MySQL 4.0 client. Therefore it is recommended to use MySQL 4.0.x to run your MediaWiki, otherwise you will have problems when installing.

Apache

Download and install

Install the Apache web server from http://www.apache.org/ using the latest 2.x binaries. Use the Download link below, select a mirror close to your location and download the "Win32 Binary (MSI Installer)" version. Currently this is version 2.0.50 (sep. 2004)

Configure

Change the httpd.conf file for apache. It should be located at "C:\Program Files\Apache Group\Apache2\conf" if you used the default installation:

  • Add these lines at the end of the block of LoadModule lines:
    LoadModule php4_module {PATH TO YOUR PHP FOLDER}/sapi/php4apache2.dll
    AddType application/x-httpd-php .php
  • Change the DocumentRoot
  • Add the PHP types and disable PHP for all directories other than the wiki
    AddType application/x-httpd-php .php .php4 .phtml
    AddType application/x-httpd-php-source .phps
    php_admin_flag engine off
    <Directory "c:/playpen/wiki/runtime/wiki">
    php_admin_flag engine on
    </Directory>
  • Note: if you need PHP for other purposes, you will need to add other directory sections like that above. Do not enable the PHP engine by default.
  • It is not strictly necessary to enable the rewrite engine or include the ampersand patch
  • You will have to change c:/playpen/wiki/runtime/wiki to your script directory. Copy all the executable PHP files for MediaWiki into this directory.

IIS

If you are using MediaWiki with IIS, after generating LocalSettings.php I believe you need to edit the setting for $wgArticlePath, changing it from:

$wgArticlePath = "$wgScript/$1";

To:

$wgArticlePath = "$wgScript?title=$1";

If you don't do this, you will get "no such file or directory" errors if you try to view any page such as "/index.php/Main_Page".

PHP

Install PHP from http://www.php.net/ using the latest windows binaries using the Zip package. Latest version 4.3.8.

I found that you needed to copy php4ts.dll to the windows/system32 directory in order for Apache to load php4apache2.dll Imran 08:59, 27 Apr 2004 (UTC)

There is also the option of copying php4ts.dll to the directory which contains php4apache2.dll - Jeronim 14:32, 21 Jul 2004 (UTC)

You will need to enable the GD library to use the thumbnailling pictures. Note that if using ImageMagick, the path contained in wgImageMagickConvertCommand cannot have spaces.

Texvc

texvc is the external program MediaWiki uses to render math expressions into nice looking PNG. Getting it up and running on Windows can be somewhat troublesome, as it was developed on and for linux, so here is a quick and dirty hack to make it work under Windows.

What you'll need:

First modify render.ml to reflect specificities of the windows platform:

let cmd_dvips tmpprefix = "dvips -R -E " ^ tmpprefix ^ ".dvi -f"
let cmd_latex tmpprefix = "latex " ^ tmpprefix ^ ".tex >/dev/null"
let cmd_convert finalpath = "convert -quality 100 -density 120 ps:- " ^ finalpath ^ " >/dev/null 2>/dev/null"

becomes:

let cmd_dvips tmpprefix = "dvips -R -E -q \"" ^ tmpprefix ^ ".dvi\" -f >\"" ^tmpprefix^".ps\" "
let cmd_latex tmpprefix = "latex  -quiet \"" ^ tmpprefix ^ ".tex\" >\""^tmpprefix^".tmp\" "
let cmd_convert finalpath tmpprefix = "convert -quality 100 -density 120 \"ps:"^tmpprefix^".ps\" \"" ^ finalpath ^ "\" "

because Windows doesn't handle /dev/null nor pipes very gracefully, and as the quiet option doesn't work on latex for Windows.

As this creates more temporary files, you have to delete them too:

Sys.remove (tmpprefix ^ ".dvi");
Sys.remove (tmpprefix ^ ".aux");
Sys.remove (tmpprefix ^ ".log");
Sys.remove (tmpprefix ^ ".tex")

becomes:

Sys.remove (tmpprefix ^ ".dvi");
Sys.remove (tmpprefix ^ ".aux");
Sys.remove (tmpprefix ^ ".log");
Sys.remove (tmpprefix ^ ".tex");
Sys.remove (tmpprefix ^ ".ps");
Sys.remove (tmpprefix ^ ".tmp")

And finally, split the call to dvips and convert in two:

else if (Sys.command ((cmd_dvips tmpprefix) ^ " | " ^ (cmd_convert (finalpath^"/"^md5^".png"))) != 0)
then (unlink_all (); raise (ExternalCommandFailure ("dvips")))

becomes:

else  if ( (Sys.command (cmd_dvips tmpprefix)!=0  ))
then (unlink_all (); raise (ExternalCommandFailure ("dvips")))
else if (Sys.command (cmd_convert (finalpath^"/"^md5^".png") tmpprefix)!=0)
then (unlink_all (); raise (ExternalCommandFailure ("dvips")))

If you have Visual C++ and MASM installed, make the optimized texvc.exe by running the make utility in the math directory. If you do not have Visual C++ and MASM, make the bytecode version texvc.bc (by typing for example mingw32-make texvc.bc in the math directory) and rename it to texvc.exe. Copy the executable into your base MediaWiki directory.

In /includes/Math.php replace the following:

wfDebug( "TeX: $cmd" );

by the following:

$cmd=str_replace("'","\"",$cmd);
wfDebug( "TeX: $cmd" );

because in Windows single quotes do not work as quote markers in command line. And comment the following:

if( !is_executable( $wgTexvc ) ) {
				return $this->_error( "math_notexvc" );
			}

becomes

/*if( !is_executable( $wgTexvc ) ) {
				return $this->_error( "math_notexvc" );
			}*/

because windows can't find the is_executable function.

In LocalSettings.php, uncomment or insert:

$wgUseTeX= true;

to activate texvc functionality.


If you are using MediaWiki with IIS then you should replace "REQUEST_URI" with "SCRIPT_NAME" in all files.


And finally, set the texvc executable path to the root path of Wiki, by inserting this line in LocalSettings.php:

$wgTexvc = "texvc"; # Location of the texvc binary

Let me know how this works for you in the discussion page.

MediaWiki

There are two options

  • the last stable release of the mediawiki software
  • the latest development version.

Stable release

Latest release

This is the development version of MediaWiki and include the last changes made by the developers. If you aren't familiar with computering fall back to stable release.

If you do not already have a CVS client, you will have to get one and install it. WinCvs is a correct CVS software under windows http://www.wincvs.org/

Get MediaWiki from the CVS archives.

Installing

Visit your wiki with a web browser and follow the install directions! :) (Go to /config/index.php from the directory where you installed MediaWiki)

not sure how well the following applies

PHP does not handle the include_once directive properly on all windows platforms and filesystems, probably due to the Windows treatment of upper and lower case in file names. You may have to comment out the include_onces in some of the .php files in the folder "includes" as follows:

 Article.php:	# include_once( "CacheManager.php" );
 Setup.php:	# include_once( "$IP/Title.php" );
 SpecialMovepage.php:	#include_once( "LinksUpdate.php" );

Alternatively ensure that all inclusions use the same format i.e. make occurrences of ("CacheManager.php") and ( "$IP/CacheManager.php") consistent by using only one or other format. (I think the problem is because using the different formats is interpreted as two separate includes Mintguy 03:41, 22 Nov 2003 (UTC)).

When running IIS, if image uploading does not work, open SpecialUpload.php in the "includes" directory and change the text "if ( ! move_uploaded_file( $wpUploadTempName, $wgSavedFile ) ) {" to "if ( ! copy( $wpUploadTempName, $wgSavedFile ) ) {" This may be a PHP bug, but it got image uploads to work. Harbenger 08:09, 3 May 2004 (GMT-4).


A step by step guide to installing mediawiki with Apache 2 and PHP 5, on windows, can be found at Newcomers guide to installing on Windows.

iconv

Also, you really do need iconv for some of the special pages to work, unless you comment out the relevant call in language.php:

     #  return iconv( "UTF-8", $wgInputEncoding, $s );
Q
Did you try the iconv hack?
A
I believe there's a win32 build of iconv available out there somewhere!
Try looking at http://in2.php.net/iconv for more info! and a Win32 working (??) version is available at
http://www.zlatkovic.com/pub/libxml/iconv-1.9.1.win32.zip

Note: If you are using PHP5, iconv is built in, I beleive that no extension is required.

Content

All the articles of Wikipedia and their revisions are available for download at http://download.wikipedia.org/ in a MySQL dump format.

  • the cur dump only holds the latest modification of an article
  • the old dump has all the earlier revisions

The cur dump is enough for reading / mirroring wikipedia.

  • Save and extract the file somewhere (ex c:\temp\).
  • Open a command box (start -> run -> cmd.exe).
  • Execute:
\progra~1\mysql\bin\mysql -u root -p
  • Enter root password for mysql
  • At the prompt select the wikipedia database (this is, by default, named 'wikidb'):
mysql> use wikidb
Database changed
mysql>
  • Then load the dump (change filename by the filename you downloaded):
mysql> source c:\temp\20031104_cur_table.sql

N.B. this will take some time (several hours) if you load the full dump of the English Wikipedia database!

Next page: Running MediaWiki on Mac OS X >