Deploy your Bitnami MediaWiki Stack on Google Cloud Platform now! Launch Now

Bitnami MediaWiki for Google Cloud Platform

Description

MediaWiki is the free and open source wiki software that powers Wikipedia. Used by thousands of organizations, it is extremely powerful, scalable software and a feature-rich wiki implementation.

First steps with the Bitnami MediaWiki Stack

Welcome to your new Bitnami application running on Google Cloud Platform! Here are a few questions (and answers!) you might need when first starting with your application.

What credentials do I need?

You need two sets of credentials:

  • The application credentials that allow you to log in to your new Bitnami application. These credentials consist of a username and password.
  • The server credentials that allow you to log in to your Google Cloud Platform server using an SSH client and execute commands on the server using the command line. These credentials consist of an SSH username and key.

What is the administrator username set for me to log in to the application for the first time?

Username: user

What SSH username should I use for secure shell access to my application?

SSH username: bitnami

What are the default ports?

A port is an endpoint of communication in an operating system that identifies a specific process or a type of service. Bitnami stacks include several services or servers that require a port.

IMPORTANT: Making this application's network ports public is a significant security risk. You are strongly advised to only allow access to those ports from trusted networks. If, for development purposes, you need to access from outside of a trusted network, please do not allow access to those ports via a public IP address. Instead, use a secure channel such as a VPN or an SSH tunnel. Follow these instructions to remotely connect safely and reliably.

Port 22 is the default port for SSH connections.

Bitnami opens some ports for the main servers. These are the ports opened by default: 80, 443.

How to start or stop the services?

Each Bitnami stack includes a control script that lets you easily stop, start and restart services. The script is located at /opt/bitnami/ctlscript.sh. Call it without any service name arguments to start all services:

$ sudo /opt/bitnami/ctlscript.sh start

Or use it to restart a single service, such as Apache only, by passing the service name as argument:

$ sudo /opt/bitnami/ctlscript.sh restart apache

Use this script to stop all services:

$ sudo /opt/bitnami/ctlscript.sh stop

Restart the services by running the script without any arguments:

$ sudo /opt/bitnami/ctlscript.sh restart

Obtain a list of available services and operations by running the script without any arguments:

$ sudo /opt/bitnami/ctlscript.sh

How to configure outbound email settings?

Google Cloud Platform doesn't allow SMTP traffic through default ports: 25, 465, 587. Check Google cloud documentation to learn how to use a VPN to bypass these restrictions or use a different port for sending emails from your application.

Follow these steps:

  • Install two PEAR packages: Mail and Net_SMTP. Go to the console and run the following command.

     $ sudo pear install mail
     $ sudo pear install net_smtp
    
  • Add the following code to the end of the /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php file according to your SMTP server settings. This example shows how to configure it using a Gmail account. Replace USERNAME and PASSWORD with your Gmail account username and password respectively.

     $wgSMTP = array(
             'host' => 'ssl://smtp.gmail.com',
             'IDHost' => 'gmail.com',
             'port' => 465,
             'username' => 'USERNAME@gmail.com',
             'password' => 'PASSWORD',
             'auth' => true
     );
    
  • Restart the servers.

To configure the application to use other third-party SMTP services for outgoing email, such as SendGrid or Mandrill, refer to the FAQ.

NOTE: If you are using Gmail as the outbound email server and have experienced issues trying to send emails correctly, check the How to troubleshoot Gmail SMTP issues to learn the causes of these issues and how to solve them.

How to install a plugin on MediaWiki?

Refer to the other sections in this document for specific plugin information.

How to create a full backup of MediaWiki?

Backup

The Bitnami MediaWiki Stack is self-contained and the simplest option for performing a backup is to copy or compress the Bitnami stack installation directory. To do so in a safe manner, you will need to stop all servers, so this method may not be appropriate if you have people accessing the application continuously.

Follow these steps:

  • Change to the directory in which you wish to save your backup:

      $ cd /your/directory
    
  • Stop all servers:

      $ sudo /opt/bitnami/ctlscript.sh stop
    
  • Create a compressed file with the stack contents:

      $ sudo tar -pczvf application-backup.tar.gz /opt/bitnami
    
  • Restart all servers:

      $ sudo /opt/bitnami/ctlscript.sh start
    

You should now download or transfer the application-backup.tar.gz file to a safe location.

Restore

Follow these steps:

  • Change to the directory containing your backup:

      $ cd /your/directory
    
  • Stop all servers:

      $ sudo /opt/bitnami/ctlscript.sh stop
    
  • Move the current stack to a different location:

      $ sudo mv /opt/bitnami /tmp/bitnami-backup
    
  • Uncompress the backup file to the original directoryv

      $ sudo tar -pxzvf application-backup.tar.gz -C /
    
  • Start all servers:

      $ sudo /opt/bitnami/ctlscript.sh start
    

If you want to create only a database backup, refer to these instructions for MySQL and PostgreSQL.

How to upgrade MediaWiki?

It is strongly recommended that you create a backup before starting the update process. If you have important data, it is advisable that you create and try to restore a backup to ensure that everything works properly.

Migrating the database from an old version to a new one

To migrate the database from an old version to a new one, follow these steps:

  • Launch a new MediaWiki cloud server instance.

  • Copy the database backup to the new server.

  • Stop all servers and start only MySQL.

     $ sudo /opt/bitnami/ctlscript.sh stop
     $ sudo /opt/bitnami/ctlscript.sh start mysql
    
  • Remove the previous database and create the new one. You can configure the database user password with a secure password.

     $ mysql -u root -p 
     Password: ****
     mysql> drop database bitnami_mediawiki;
     mysql> create database bitnami_mediawiki;
     mysql> grant all privileges on bitnami_mediawiki.* to 'bn_mediawiki'@'localhost' identified by 'DATABASE_PASSWORD';
    
  • Restore the new database:

     $ mysql -u root -p bitnami_mediawiki < backup.sql
    
  • Edit the MediWiki configuration file to update the database user password (the same that you set previously) at /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php:

     $wgDBpassword = "DATABASE_PASSWORD";
    
  • Copy the /opt/bitnami/apps/mediawiki/htdocs/files directory from the old installation to the new one.

  • If you have installed plugins in the previous version, copy the folders from the vendor/plugins directory into the new installation directory, into the plugins directory.

  • Restart the servers.

      $ sudo /opt/bitnami/ctlscript.sh restart
    

How to upgrade the MediaWiki database?

You can upgrade the MediaWiki database in two ways: from the command line or from the web browser (since version 1.17). Upgrading from the command line is recommended, since this reduces the risk of the upgrade process being interrupted by a timeout or connection reset.

Command-line upgrade
  • Make sure that your web server (such as Apache) and your database sever (such as MySQL) are running.

  • From the command line execute:

     $ cd /opt/bitnami/apps/mediawiki/htdocs
     $ php maintenance/update.php
    

MediaWiki will inspect the existing schema and update it to work with the new code, adding tables and columns as needed. If you use a shared database, you should pass the --doshared parameter if you want the shared tables to be updated. Otherwise they won't be touched by the update script.

Web browser upgrade
NOTE: If your database is already large in size and in high production usage, then you should not be using the Web updater, as the update process might time out when the script's maximum execution time is reached. In that case you should use the command-line interface (not from the web). Always backup before performing database maintenance.

Follow these steps:

  • Navigate your browser to /mw-config/. For example, if your wiki is at mydomain.com/mediawiki/Main_Page, then navigate to mydomain.com/mediawiki/mw-config/.

  • Select your language and click continue.

  • The existing installation should be detected. Follow the instructions on the screen to upgrade it. If asked for the "upgrade key", open /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php file and look for the key assigned to $wgUpgradeKey.

How to create an SSL certificate?

OpenSSL is required to create an SSL certificate. A certificate request can then be sent to a certificate authority (CA) to get it signed into a certificate, or if you have your own certificate authority, you may sign it yourself, or you can use a self-signed certificate (because you just want a test certificate or because you are setting up your own CA).

Follow the steps below:

  • Generate a new private key:

     $ sudo openssl genrsa -out /opt/bitnami/apache2/conf/server.key 2048
    
  • Create a certificate:

     $ sudo openssl req -new -key /opt/bitnami/apache2/conf/server.key -out /opt/bitnami/apache2/conf/cert.csr
    
    IMPORTANT: Enter the server domain name when the above command asks for the "Common Name".
  • Send cert.csr to the certificate authority. When the certificate authority completes their checks (and probably received payment from you), they will hand over your new certificate to you.

  • Until the certificate is received, create a temporary self-signed certificate:

     $ sudo openssl x509 -in /opt/bitnami/apache2/conf/cert.csr -out /opt/bitnami/apache2/conf/server.crt -req -signkey /opt/bitnami/apache2/conf/server.key -days 365
    
  • Back up your private key in a safe location after generating a password-protected version as follows:

     $ sudo openssl rsa -des3 -in /opt/bitnami/apache2/conf/server.key -out privkey.pem
    

    Note that if you use this encrypted key in the Apache configuration file, it will be necessary to enter the password manually every time Apache starts. Regenerate the key without password protection from this file as follows:

     $ sudo openssl rsa -in privkey.pem -out /opt/bitnami/apache2/conf/server.key
    

Find more information about certificates at http://www.openssl.org.

How to enable HTTPS support with SSL certificates?

TIP: If you wish to use a Let's Encrypt certificate, you will find specific instructions for enabling HTTPS support with Let's Encrypt SSL certificates in our Let's Encrypt guide.
NOTE: The steps below assume that you are using a custom domain name and that you have already configured the custom domain name to point to your cloud server.

Bitnami images come with SSL support already pre-configured and with a dummy certificate in place. Although this dummy certificate is fine for testing and development purposes, you will usually want to use a valid SSL certificate for production use. You can either generate this on your own (explained here) or you can purchase one from a commercial certificate authority.

Once you obtain the certificate and certificate key files, you will need to update your server to use them. Follow these steps to activate SSL support:

  • Use the table below to identify the correct locations for your certificate and configuration files.

    Variable Value
    Current application URL https://[custom-domain]/
      Example: https://my-domain.com/ or https://my-domain.com/appname
    Apache configuration file /opt/bitnami/apache2/conf/bitnami/bitnami.conf
    Certificate file /opt/bitnami/apache2/conf/server.crt
    Certificate key file /opt/bitnami/apache2/conf/server.key
    CA certificate bundle file (if present) /opt/bitnami/apache2/conf/server-ca.crt
  • Copy your SSL certificate and certificate key file to the specified locations.

    NOTE: If you use different names for your certificate and key files, you should reconfigure the SSLCertificateFile and SSLCertificateKeyFile directives in the corresponding Apache configuration file to reflect the correct file names.
  • If your certificate authority has also provided you with a PEM-encoded Certificate Authority (CA) bundle, you must copy it to the correct location in the previous table. Then, modify the Apache configuration file to include the following line below the SSLCertificateKeyFile directive. Choose the correct directive based on your scenario and Apache version:

    Variable Value
    Apache configuration file /opt/bitnami/apache2/conf/bitnami/bitnami.conf
    Directive to include (Apache v2.4.8+) SSLCACertificateFile "/opt/bitnami/apache2/conf/server-ca.crt"
    Directive to include (Apache < v2.4.8) SSLCertificateChainFile "/opt/bitnami/apache2/conf/server-ca.crt"
    NOTE: If you use a different name for your CA certificate bundle, you should reconfigure the SSLCertificateChainFile or SSLCACertificateFile directives in the corresponding Apache configuration file to reflect the correct file name.
  • Once you have copied all the server certificate files, you may make them readable by the root user only with the following commands:

     $ sudo chown root:root /opt/bitnami/apache2/conf/server*
    
     $ sudo chmod 600 /opt/bitnami/apache2/conf/server*
    
  • Open port 443 in the server firewall. Refer to the FAQ for more information.

  • Restart the Apache server.

You should now be able to access your application using an HTTPS URL.

How to force HTTPS redirection with Apache?

Add the following lines in the default Apache virtual host configuration file at /opt/bitnami/apache2/conf/bitnami/bitnami.conf, inside the default VirtualHost directive, so that it looks like this:

<VirtualHost _default_:80>
  DocumentRoot "/opt/bitnami/apache2/htdocs"
  RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
  ...
</VirtualHost>

After modifying the Apache configuration files:

  • Open port 443 in the server firewall. Refer to the FAQ for more information.

  • Restart Apache to apply the changes.

How to debug Apache errors?

Once Apache starts, it will create two log files at /opt/bitnami/apache2/logs/access_log and /opt/bitnami/apache2/logs/error_log respectively.

  • The access_log file is used to track client requests. When a client requests a document from the server, Apache records several parameters associated with the request in this file, such as: the IP address of the client, the document requested, the HTTP status code, and the current time.

  • The error_log file is used to record important events. This file includes error messages, startup messages, and any other significant events in the life cycle of the server. This is the first place to look when you run into a problem when using Apache.

If no error is found, you will see a message similar to:

Syntax OK

How to connect instances hosted in separate virtual networks or VPCs?

The Google Cloud Platform makes it possible to connect instances hosted in separate Virtual Private Clouds (VPCs), even if those instances belong to different projects or are hosted in different regions. This feature, known as VPC Network Peering, can result in better security (as services do not need to be exposed on public IP addresses) and performance (due to use of private, rather than public, networks and IP addresses).

Learn more about VPC Network Peering.

How to find the MySQL database credentials?

How to connect to the MySQL database?

You can connect to the MySQL database from the same computer where it is installed with the mysql client tool.

$ mysql -u root -p

You will be prompted to enter the root user password. This is the same as the application password.

How to debug errors in your database?

The main log file is created at /opt/bitnami/mysql/data/mysqld.log on the MySQL database server host.

How to change the MySQL root password?

You can modify the MySQL password using the following command at the shell prompt. Replace the NEW_PASSWORD placeholder with the actual password you wish to set.

$ /opt/bitnami/mysql/bin/mysqladmin -p -u root password NEW_PASSWORD

How to reset the MySQL root password?

If you don't remember your MySQL root password, you can follow the steps below to reset it to a new value:

  • Create a file in /home/bitnami/mysql-init with the content shown below (replace NEW_PASSWORD with the password you wish to use):

     UPDATE mysql.user SET Password=PASSWORD('NEW_PASSWORD') WHERE User='root';
     FLUSH PRIVILEGES;
    

    If your stack ships MySQL v5.7.x, use the following content instead of that shown above:

     UPDATE mysql.user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE User='root';
     FLUSH PRIVILEGES;
    
    TIP: Check the MySQL version with the command /opt/bitnami/mysql/bin/mysqladmin --version or /opt/bitnami/mysql/bin/mysqld --version.
  • Stop the MySQL server:

     $ sudo /opt/bitnami/ctlscript.sh stop mysql
    
  • Start MySQL with the following command:

     $ sudo /opt/bitnami/mysql/bin/mysqld_safe --pid-file=/opt/bitnami/mysql/data/mysqld.pid --datadir=/opt/bitnami/mysql/data --init-file=/home/bitnami/mysql-init 2> /dev/null &
    
  • Restart the MySQL server:

     $ sudo /opt/bitnami/ctlscript.sh restart mysql
    
  • Remove the script:

     $ rm /home/bitnami/mysql-init
    

How to access phpMyAdmin?

For security reasons, phpMyAdmin is accessible only when using 127.0.0.1 as the hostname. To access it from a remote system, you must create an SSH tunnel that routes requests to the Web server from 127.0.0.1. This implies that you must be able to connect to your server over SSH in order to access these applications remotely.

IMPORTANT: Before following the steps below, ensure that your Web and database servers are running.
NOTE: The steps below suggest using port 8888 for the SSH tunnel. If this port is already in use by another application on your local machine, replace it with any other port number greater than 1024 and modify the steps below accordingly. Similarly, if you have enabled Varnish, your stack's Web server might be running on port 81. In this case, modify the steps below to use port 81 instead of port 80 for the tunnel endpoint.

Accessing phpMyAdmin on Windows

Watch the following video to learn how to easily access phpMyAdmin on Windows through an SSH tunnel:

TIP: Refer to these instructions to learn how to obtain your private key.

In order to access phpMyAdmin via SSH tunnel you need an SSH client. In the instructions below we have selected PuTTY, a free SSH client for Windows and UNIX platforms. The first step is having PuTTY configured. Please, check how to configure it in the section how to connect to the server through SSH using an SSH client on Windows.

Once you have your SSH client correctly configured and you tested that you can successfully access to your instance via SSH, you need to create an SSH tunnel in order to access phpMyAdmin. For doing so, follow these steps:

  • In the "Connection -> SSH -> Tunnels" section, add a new forwarded port by introducing the following values:

    • Source port: 8888
    • Destination: localhost:80

    This will create a secure tunnel by forwarding a port (the "destination port") on the remote server to a port (the "source port") on the local host (127.0.0.1 or localhost).

  • Click the "Add" button to add the secure tunnel configuration to the session. (You'll see the added port in the list of "Forwarded ports").

    PuTTY configuration

  • In the "Session" section, save your changes by clicking the "Save" button.
  • Click the "Open" button to open an SSH session to the server. The SSH session will now include a secure SSH tunnel between the two specified ports.
  • Access the phpMyAdmin console through the secure SSH tunnel you created, by browsing to http://127.0.0.1:8888/phpmyadmin.
  • Log in to phpMyAdmin by using the following credentials:

    • Username: root
    • Password: application password. (Refer to our FAQ to learn how to find your application credentials).

Here is an example of what you should see:

Access phpMyAdmin

If you are unable to access phpMyAdmin, verify that the SSH tunnel was created by checking the PuTTY event log (accessible via the "Event Log" menu):

PuTTY configuration

Accessing phpMyAdmin on Linux and Mac OS X

To access the application using your Web browser, create an SSH tunnel, as described below.

  • Open a new terminal window on your local system (for example, using "Finder -> Applications -> Utilities -> Terminal" in Mac OS X or the Dash in Ubuntu).
  • Make sure that you have your SSH credentials (.pem key file) in hand.
  • Run the following command to configure the SSH tunnel. Remember to replace KEYFILE with the path to your private key and SERVER-IP with the public IP address or hostname of your server:

       $ ssh -N -L 8888:127.0.0.1:80 -i KEYFILE bitnami@SERVER-IP
    
NOTE: If successful, the above command will create an SSH tunnel but will not display any output on the server console.
  • Access the phpMyAdmin console through the secure SSH tunnel you created, by browsing to http://127.0.0.1:8888/phpmyadmin.
  • Log in to phpMyAdmin by using the following credentials:

    • Username: root
    • Password: application password. (Refer to our FAQ to learn how to find your application credentials).

Here is an example of what you should see:

Access phpMyAdmin

How to modify PHP settings for Apache?

The PHP configuration file allows you to configure the modules enabled, the email settings or the size of the upload files. It is located at /opt/bitnami/php/etc/php.ini.

For example, to modify the default upload limit for PHP, update the PHP configuration file following these instructions.

After modifying the PHP configuration file, restart both Apache and PHP-FPM for the changes to take effect:

$ sudo /opt/bitnami/ctlscript.sh restart apache
$ sudo /opt/bitnami/ctlscript.sh restart php-fpm

How to modify the allowed limit for uploaded files in Apache?

Modify the following options in the /opt/bitnami/php/etc/php.ini file to increase the allowed size for uploads:

; Maximum size of POST data that PHP will accept.
post_max_size = 16M

; Maximum allowed size for uploaded files.
upload_max_filesize = 16M

Restart PHP-FPM and Apache for the changes to take effect.

$ sudo /opt/bitnami/ctlscript.sh restart apache
$ sudo /opt/bitnami/ctlscript.sh restart php-fpm    

How to upload files to the server with SFTP?

Although you can use any SFTP/SCP client to transfer files to your server, the link below explains how to configure FileZilla (Windows, Linux and Mac OS X), WinSCP (Windows) and Cyberduck (Mac OS X). It is required to use your server's private SSH key to configure the SFTP client properly. Choose your preferred application and follow the steps in the link below to connect to the server through SFTP.

How to upload files to the server

How to install Collection extension on MediaWiki?

The Collection extension allows you to organize personal selections of pages in a collection. To do it, the extension uses a public render server where the jobs are sent and processed.

Please keep in mind that if your Mediawiki installation is not public (it is a local installation or it can't be accessed from the Internet), you will need to install your own Render Server. The Collection developers have some suggestions about it here.

To install the Collection plugin, please follow the steps below:

  • Download the latest Collection version from the official Mediawiki extension page.

  • Uncompress the downloaded file in the Mediawiki extensions directory. The command below should create the Collection directory in the Mediawiki extensions directory:

     $ tar -xzf Collection-*.tar.gz -C /opt/bitnami/apps/mediawiki/htdocs/extensions
    
  • Add the Collection plugin to the Mediawiki LocalSettings.php file:

     $ echo 'require_once "$IP/extensions/Collection/Collection.php";' >> /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php
    

Once you have completed all the steps above, you should see new options in the MediaWiki menu:

MediaWiki Collection extension

If you already have your own Renderserver, remember to add the URL in /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php, as below:

  $wgCollectionMWServeURL = "http://RENDERSERVER_IP:PORT";

How to install Math extension on MediaWiki?

If you want to install the Math extension on MediaWiki, please follow these steps:

  • Go to the MediaWiki extensions directory:

     $ cd /opt/bitnami/apps/mediawiki/htdocs/extensions
    
  • Download the extension from https://www.mediawiki.org/wiki/Extension:Math:

     $ wget https://extdist.wmflabs.org/dist/extensions/Math-REL1_25-2998273.tar.gz
    
  • Extract the code:

     $ tar -xzf Math-REL1_25-2998273.tar.gz
    
  • Edit the permissions

     $ sudo chmod 775 Math/
     $ sudo chown -R bitnami:daemon Math/
    
  • Edit the /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php file and add this code at the end of the file

     require_once ( "$IP/extensions/Math/Math.php" );
    
  • Run the update script which will automatically create the necessary database tables that this extension needs.

     $ cd /opt/bitnami/apps/mediawiki/htdocs
     $ php maintenance/update.php
    
  • Check that Math extension is installed by visiting the page Special:Version in your MediaWiki installation. You will see something like the image below:

MediaWiki Math extension

How to install MultimediaViewer extension on MediaWiki?

The MultimediaViewer extension gives wiki users a different interface for viewing full-size, or nearly full-size, images in their browser without extraneous page loads or confusing interstitial pages.

To install the MultimediaViewer plugin, please follow the steps below:

  • Download the latest MultimediaViewer version from the official Mediawiki extension page.

  • Uncompress the downloaded file in the extensions directory of Mediawiki. The command below should create the Collection directory in the Mediawiki extensions directory:

     $ tar -xzf MultimediaViewer-*.tar.gz -C /opt/bitnami/apps/mediawiki/htdocs/extensions
    
  • Add the MultimediaViewer plugin to the Mediawiki LocalSettings.php file:

     require_once "$IP/extensions/MultimediaViewer/MultimediaViewer.php";
    

If you have enabled PageSpeed you will need to disable it for the images directory. To do this, edit the file /opt/bitnami/apps/mediawiki/conf/htaccess.conf and modify the Directory directive for that directory. The Directory directive should look like this:

  <Directory "/opt/bitnami/apps/mediawiki/htdocs/images">
  # Protect against bug 28235
  <IfModule rewrite_module>
          RewriteEngine On
          RewriteCond %{QUERY_STRING} \.[^\\/:*?\x22<>|%]+(#|\?|$) [nocase]
          RewriteRule . - [forbidden]
  </IfModule>
  ModPagespeed off
  </Directory>

How to install ParserFunctions extension on MediaWiki?

If you want to install the ParserFunctions extension on MediaWiki, please follow these steps:

  • Go to the MediaWiki extensions directory:

     $ cd /opt/bitnami/apps/mediawiki/htdocs/extensions
    
  • Create the ParserFunctions directory:

     $ mkdir ParserFunctions
    
  • Change to the new directory:

     $ cd ParserFunctions
    
  • Download the extension from http://www.mediawiki.org/wiki/Extension:VisualEditor.

     $ wget -O parserfunctions.zip https://git.wikimedia.org/zip/?r=mediawiki/extensions/ParserFunctions&h=refs/heads/master&format=gz && unzip parserfunctions.zip
    
  • Edit the /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php file and add this code at the end of the file:

     require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );
    
  • If you want to use the integrated string functionality, add just after that line:

     $wgPFEnableStringFunctions = true;
    
  • Restart the Apache server

     $ sudo /opt/bitnami/ctlscript.sh restart apache
    

How to install Parsoid extension on MediaWiki?

If you want to install the Parsoid extension on MediaWiki, please follow these steps:

  • Go to the MediaWiki extensions directory:

     $ cd /opt/bitnami/apps/mediawiki/htdocs/extensions
    
  • Download the extension from https://www.mediawiki.org/wiki/Extension:Parsoid.

     $ wget https://extdist.wmflabs.org/dist/extensions/Parsoid-REL1_25-f5500c1.tar.gz
    
  • Extract the code:

     $ tar -xzf Parsoid-REL1_25-f5500c1.tar.gz
    
  • Edit the /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php file and add this code at the end of the file

     wfLoadExtension( 'Parsoid' );
    
  • Restart the Apache server

     $ sudo /opt/bitnami/ctlscript.sh restart apache
    
  • Check that Parsoid extension is installed by visiting page Special:Version in your MediaWiki page. You will see something like this:

    MediaWiki Parsoid extension

NOTE: If you are using MediaWiki 1.24 or earlier, you will need to add the line below to your LocalSettings.php file instead.
  require_once "$IP/extensions/Parsoid/Parsoid.php";

How to install Semantic Bundle extension?

Semantic Bundle (abbreviated as SB) is a pre-packaged bundle of extensions for use with wikis that are based around the Semantic MediaWiki extension. It is a suitable alternative if you cannot run Composer to install or upgrade SMW (1.9+) and a number of other extensions that require Composer, such as Maps (3.0+). Do not run Composer if you want to install Semantic Bundle.

Follow these steps:

  • Download the ZIP or TGZ archive and unzip it to /opt/bitnami/apps/mediawiki/htdocs/extensions/. For example, assuming you downloaded the archive in /tmp:

     $ cd /opt/bitnami/apps/mediawiki/htdocs/extensions/
     $ unzip /tmp/SemanticBundle-20140514.zip
    
  • Change to the extension directory and create the configuration file:

     $ cd /opt/bitnami/apps/mediawiki/htdocs/extensions/SemanticBundle
     $ cp SemanticBundleSettings.sample.php SemanticBundleSettings.php
    
  • Include the SemanticBundleSettings.php and SemanticBundle.php files in the /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php file:

     require_once( "$IP/extensions/SemanticBundle/SemanticBundleSettings.php" );
     require_once( "$IP/extensions/SemanticBundle/SemanticBundle.php" );
    
  • Log in to MediaWiki as an administrator.

  • Navigate to the page at http://DOMAIN/mediawiki/Special:SMWAdmin and click the "Initialize or upgrade tables" button.

  • After successful initialization, edit the /opt/bitnami/apps/mediawiki/htdocs/extensions/SemanticBundle/SemanticBundleSettings.php file and uncomment the extensions you would like to use.

NOTE: It's strongly recommended to initialize Semantic MediaWiki before you include (uncomment) any of the other SemanticBundle extensions, to avoid potential errors from extensions that require Semantic MediaWiki .

How to install Semantic MediaWiki extension on MediaWiki with Composer?

You can install Semantic MediaWiki using composer. To do so, please run the following commands:

$ cd  /opt/bitnami/apps/mediawiki/htdocs
$ php /opt/bitnami/php/bin/composer.phar update
$ php /opt/bitnami/php/bin/composer.phar require mediawiki/semantic-media-wiki "~2.0"
$ php maintenance/update.php

If the last command (update.php) wasn't successful, please try updating from the browser following these steps.

Finally, enable semantics for your domain, adding this line at the end of your /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php. You need to use your own MediaWiki domain instead of example.com:

enableSemantics( 'example.com' );

If you get a warning like this:

Warning: This development build of composer is over 30 days old. It is recommended to update it by running "/opt/bitnami/php/bin/composer.phar self-update" to get the latest version.

Execute the suggested command and try the steps again. Refer to this page for more information.

How to install VisualEditor extension on MediaWiki?

If you want to install the VisualEditor extension on MediaWiki, please follow these steps:

  • Install git:

     $ sudo apt update
     $ sudo apt install git
    
  • Go to the MediaWiki extensions directory:

     $ cd /opt/bitnami/apps/mediawiki/htdocs/extensions
    
  • Download the VisualEditor repo. Change REL1_28 for major version branch (e.g. MediaWiki 1.26.1 should use REL1_26):

     $ git clone -b REL1_28 https://gerrit.wikimedia.org/r/p/mediawiki/extensions/VisualEditor.git
     $ cd VisualEditor
     $ git submodule update --init
    
  • Edit the /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php file and add this code at the end of the file:

     wfLoadExtension( 'VisualEditor' );
    
     // OPTIONAL: Enable VisualEditor in other namespaces
     // By default, VE is only enabled in NS_MAIN
     //$wgVisualEditorNamespaces[] = NS_PROJECT;
    
     // Enable by default for everybody
     $wgDefaultUserOptions['visualeditor-enable'] = 1;
    
     // Don't allow users to disable it
     $wgHiddenPrefs[] = 'visualeditor-enable';
    
     // OPTIONAL: Enable VisualEditor's experimental code features
     //$wgVisualEditorEnableExperimentalCode = true;
    
  • Restart the Apache server:

     $ sudo /opt/bitnami/ctlscript.sh restart apache
    
NOTE: You will be able to use VisualEditor to create new Wiki Pages, but not to edit them. If you want to use VisualEditor to edit them, you will need to follow the official Parsoid installation guide.

How to optimize MediaWiki?

Enable page caching by adding the following entries to the end of the /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php file:

$wgUseFileCache = true; /* default: false */
$wgFileCacheDirectory = "$IP/cache";
$wgShowIPinHeader = false;

Execute this command to set proper directory permissions:

$ sudo chmod g+w /opt/bitnami/apps/mediawiki/htdocs/cache

For more information, refer to these resources:

How to change the MediaWiki URLs to pretty URLs?

NOTE: Pretty links have been included by default in Bitnami MediaWiki for Unix systems since version 1.22.2-1. It is not possible to include them in in Windows systems, due to the colon (:) in the Special pages URL. This is described at https://issues.apache.org/bugzilla/show_bug.cgi?id=41441.

The following steps should be performed to convert MediaWiki URLs to pretty URLs:

  • Add the following lines to the /opt/bitnami/apps/mediawiki/conf/httpd-app.conf file, inside the Directory directive

     <Directory "/opt/bitnami/apps/mediawiki/htdocs">
     ....
     RewriteEngine On
     RewriteBase /mediawiki/
     RewriteRule ^index\.php$ - [S=1]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule . /mediawiki/index.php [L]
     ...
     </Directory>
    
  • Add the following lines at the end of the /opt/bitnami/apps/mediawiki/htdocs/LocalSettings.php file:

     $wgArticlePath = "/mediawiki/$1";
     $wgUsePathInfo = true;
    
  • Restart the server.

All the links will now be "pretty" links.

google

Bitnami Documentation