Manual:Installing MediaWiki

MediaWiki installs itself using an interactive, web-based installation script. Before you can run this script, you need to do a couple of things. First, ensure that you have installed Apache, PHP, and MySQL. Then you must acquire the MediaWiki software package and upload the MediaWiki software to your server. You may also have to create a new database for your wiki. If necessary, create an account on your web server by following the instructions at Manual:Installation/Creating system accounts.

MediaWiki can be difficult to install for the average computer user who does not have experience with Apache, PHP and MySQL. Most users who wish to use wiki software may benefit from using a free wiki host (see a list of wiki hosts on Wikibooks).

For troubleshooting information, see Manual:Errors and Symptoms.

= == Download MediaWiki Software == =

Download MediaWiki from the official download page or from subversion.

Uncompress the files locally or on your server. This is usually done with software such as 7-Zip (open source software), WinZip, WinRAR or IZArc on Windows. On Linux, you can untar the file using this command:

tar xvzf mediawiki-*.tar.gz

If you have not already uploaded the files to your server, do so now. Upload the files to your web server's web directory using an FTP client such as FileZilla (Open Source Software, Windows) or Cyberduck (OSX). If you installed Apache, the correct directory is specified in your  file. If you are using a Linux or Unix you can instead copy the files to any directory on your server and then make a symbolic link to that folder from your web server's web directory.

= == Prepare the Directories == =

MediaWiki needs to be able to write to the  directory when it runs its installation script. If you haven't done so already, you need to change the permission settings for the  directory, select "attributes...", and check "Write" under "Owner". If it prompts you for a number instead or if you are using a command-line interface, use 755 (Use 777 on Linux except for RedHat Linux). Alternately, you may be able to change permissions using a "control panel" provided by your web host.

Depending on the server configuration, in some cases you have to check all boxes (777) in FileZilla, to be able to run the install-script of MediaWiki.

On Unix or Linux, if you have admin rights, you can run the command  in your   directory.

= == Create a database == =

If you know the root password on your database, the MediaWiki installation script can create a new database for you. If this is the case, you can skip to the Run the installation script section below. If you don't know the root password, for example if you are on a hosted server, you will have to create a new database now. Currently, you must use either MySQL or Postgres to store the actual contents of your wiki.

= ===MySQL=== =


 * You need to create a MySQL database and a user before installing MediaWiki. You can do this using various control panels such as PhpMyAdmin, which are often available from shared hosts, or you may be able to use ssh to login to your host and type the commands into a MySQL prompt. See the corresponding documentation. Alternatively, contact your host provider to have them create an account for you
 * Download and install MySQL 5.0. It should put itself in /usr/local/mysql
 * Check and see if the database server is running ("/usr/local/mysql/bin/mysqladmin status"), If not, sudo /usr/local/mysql/bin/safe_mysqld &. (For Fedora Core 5, use /usr/bin/mysqld_safe)
 * Another way to start initially the MySQL server is to run the configure script available at the root of the installation. It creates the initial tables and automatically starts the mysql daemon
 * Set a password for the "root" account on your database server. /usr/local/mysql/bin/mysqladmin -u root password yourpassword
 * Set up a user in MySQL for your Wiki--do this in your terminal: /usr/local/mysql/bin/mysql -u root -p mysql
 * This starts up the MySQL command line client. Now, do this in the client:

create database wikidb; grant create, select, insert, update, delete, alter, lock tables on wikidb.* to 'wikiuser'@'localhost' identified by 'password'; flush privileges; \q

If your database is not running on the same server as your web server, you need to give the appropriate web server hostname -- mediawiki.example.com in my example -- as follows: grant create, select, insert, update, delete, alter, lock tables on wikidb.* to 'wikiuser'@'mediawiki.example.com' identified by 'password';

= ===Postgres=== =

If you are using Postgres, you will need to either have a database and user created for you, or simply supply the name of a Postgres user with "superuser" privileges to the configuration form. Often, this is the database user named postgres.

The database that MediaWiki will use needs to have both plpgsql and tsearch2 installed. The installer script will try to install plpgsql, but you may need to install tsearch2 yourself. (tsearch2 is used for searching the text of your wiki). Here's one way to do most of the setup. This is for a Unix-like system, and assumes that you have already installed the plpgsql and tsearch2 modules. In this example, we'll create a database named wikidb, owned by a user named wikiuser. From the command-line, as the postgres user, perform the following steps.

createuser -S -D -R -P -E wikiuser (then enter the password) createdb -O wikiuser wikidb createlang plpgsql wikidb

Adding tsearch2 to the database is not a simple step, but hopefully it will already be done for you by whatever packaging process installed the tsearch2 module. In any case, the installer will let you know right away if it cannot find tsearch2.

The above steps are not all necessary, as the installer will try and do some of them for you if supplied with a superuser name and password.

For installing tsearch2 to the wikidb database under Windows, do the following steps: That's it!
 * 1) find tsearch2.sql (probably under .\PostgreSQL\8.x\share\contrib) and copy it to the postgresql\8.x\bin directory;
 * 2) from a command prompt at the postgresql\8.x\bin directory, type "psql wikidb < tsearch2.sql -U wikiuser";
 * 3) it will prompt you for the password for wikiuser;

Point (2) seems only to work on windows, cause on debian linux 4.0 (etch) only user postgres is allowed to use language c. so there it must be called by:

su - postgres -c psql wikidb < tsearch2.sql

afterwards you must grant select rights to wikiuser to the tsearch tables and insert the correct locale.

su - postgres psql -d wikidb -c "grant select on pg_ts_cfg to wikiuser;" psql -d wikidb -c "grant select on pg_ts_cfgmap to wikiuser;" psql -d wikidb -c "grant select on pg_ts_dict to wikiuser;" psql -d wikidb -c "grant select on pg_ts_parser to wikiuser;" psql -d wikidb -c "update pg_ts_cfg set locale = current_setting('lc_collate') where ts_name = 'default' and prs_name='default';"

If you receive an error similar to "ERROR: relation "pg_ts_cfg" does not exist" when executing the above statements, try installing tsearch2 to the wikidb database again, but instead use these two separate steps (and then try the grant statements again):

1) su - postgres 2) psql wikidb -f tsearch2.sql

= == Run the installation script == =

Once all of the above steps are complete, you can complete the installation in a web browser. See Manual:Config script for details.