Patent Data Project Wiki

Jump to navigation Jump to search

The patent data project wiki is intended to be a central location for cooperative development, data dissemination, and information provision for the Patent Data Project at the NBER.

This page details the installation and configuration of the wiki.

Getting the files

See the download page for mediawiki

Do the following:

nber7%> wget

Note that we use mediawiki version 1.18.1.


The official mediawiki Installation guide

Check that PHP is higher than version 5.2.3 (and not 5.3.1):

nber7%> php -v
PHP 5.3.3 (cli) (built: Jul 22 2010 15:57:00)

Check that MySQL is version 4.0 or higher:

nber7%> mysql -h -u wikipatent -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7991397
Server version: 5.1.48-log FreeBSD port: mysql-server-5.1.48

We will also need:

  • ImageMagick or GD is required for image thumbnailing.
  • TeX is required for the in-line display of mathematical formulae.
  • Sendmail is required in order for the system to be able to send e-mails.

Extract the tar.gz and put the files in a directory called 'w' under public_html:

tar xvzf mediawiki-*.tar.gz
mv mediawiki-1.18.1 ../public_html/
cd ../public_html/
mv mediawiki-1.18.1/ w/

Mohan at the NBER created a database for the wiki. Check it's configuration now.

nber7%> mysql -h -u wikipatent -p
mysql> show GRANTS;
| Grants for wikipatent@%                                                          |
| GRANT USAGE ON *.* TO 'wikipatent'@'%' IDENTIFIED BY PASSWORD '610973195c4dda6b' |
| GRANT ALL PRIVILEGES ON `patentwiki`.* TO 'wikipatent'@'%'                       |
2 rows in set (0.02 sec)

Fix the permissions so we can set up the wiki in directory 'w' (tighten them afterwards):

chmod 777 -R w

Browse to and click the 'set-up the wiki' link.

Basic Configuration

Make the following choices in the web-based interface (otherwise use the defaults):

Database host:
Database name: patentwiki
Database username: wikipatent
Database password: ******** (available from Mohan)
Name of wiki: PDPWiki
Your name: wikiadmin
Password: ******** (same as above)
Password again: ******** (same as above)
Enable user talk page notification: yes
Enable watchlist notification: yes
WikiEditor: yes
Renameuser: yes
Enable file uploads: yes (directory for deleted files: /disk/homes2b/nber/edegan/public_html/w/images/deleted)
Logo Url: /disk/homes2b/nber/edegan/public_html/wiki.png

Then click the final continues...

Save the offered LocalSettings.php file. Then upload it into the w directory, and chmod 777 LocalSettings.php (tighten the security again later).

There where also the following notices:

  • ImageMagick was found
  • intl PECL extension was not available (this is not crucial unless the traffic is high) [1]
  • The uploads directory has a security vulnerability that needs closing [2]

There was also the following database warning:

Warning: You have selected MyISAM as storage engine for MySQL, 
which is not recommended for use with MediaWiki, because:
*it barely supports concurrency due to table locking 
*it is more prone to corruption than other engines 
*the MediaWiki codebase does not always handle MyISAM as it should 

If your MySQL installation supports InnoDB, it is highly recommended 
that you choose that instead. If your MySQL installation does not 
support InnoDB, maybe it's time for an upgrade.

Note that the configuration page is here:

When we browsed to we got a 500 internal server error. Adding the following debug code to the top of the page showed a problem with the ctype function. This was resolved by Mohan, who installed php5-ctype.

Debug code can be added to the top of LocalSettings.php (below <?php though). It should be taken out again at the end of the build:

error_reporting( E_ALL | E_STRICT );
ini_set( 'display_errors', 1 );
$wgShowExceptionDetails = true;

Configuration and Extensions


Add the following to the bottom of LocalSettings.php

$wgGroupPermissions['*']['edit'] = false; #Stops editing without an account, globally
$wgEnableUploads = true; #Note that the max upload size is likely dictated by max_upload_filesize in php.ini

Edit (or create by going to):

* navigation
** mainpage|mainpage-description
** data|Data
** documentation|Documentation
** development|Development
** reference|Reference
** about|About PDPWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help

Edit the main page description:

Patent Data Project


From the extensions directory, do the following:

tar -xzf SimpleSecurity-MW1.18-r92088.tar.gz
chmod 777 -R SimpleSecurity/
tar -xzf UserMerge-MW1.18-r91995.tar.gz
chmod 777 -R UserMerge/
tar -xzf ImportUsers-MW1.18-r91995.tar.gz
chmod 777 -R ImportUsers/
tar -xzf MultiUpload-MW1.18-r91995.tar.gz
chmod 777 -R MultiUpload/

Add the following to the bottom of LocalSettings.php

$wgSecurityUseDBHook = true; # Add this to enable the experimental DB hook for stronger security
# All other SimpleSecurity directives MUST be specified after the include or the defaults will override them.
$wgSecurityRenderInfo = true;
$wgSecurityAllowUnreadableLinks = false;
$wgPageRestrictions['Category:Servers']['read'] = 'sysop';
$wgSecurityExtraGroups = array(
   'students' => 'Students',
   'faculty' => 'Faculty,
   'staff' => 'Staff',
#Renameuser (this is installed by default in the extensions folder)
require_once( "$IP/extensions/UserMerge/UserMerge.php" );
$wgGroupPermissions['bureaucrat']['usermerge'] = true;

Additional Configuration/Extensions

At some point we might want to install the math extension (required in v1.18 to get LaTeX to render).

The documentation is here:

Downloading instructions:

tar -xzf Math-MW1.18-r103240.tar.gz
chmod 777 -R Math/
cd Math/math
tar -xzf ocaml-3.12.1.tar.gz
...and make ocaml and texvc

Additions to LocalSettings.php

$wgUseTeX = true;

We might also want UserRightsList, but it does not appear to work for v1.18 (this has been reported to the author)

And we WILL want to use short URLs. This will mean that we need to add to LocalSettings.php

$wgArticlePath = "/~edegan/wiki/$1";     # Redirect for short URLs
 and possibly:
$wgUsePathInfo = true;

As well as a .htaccess file or other means of doing the redirect. An example .htaccess file that doesn't work, most likely because the webserver doesn't allow Rewrites is:

RewriteEngine On
RewriteRule ^/~edegan/wiki/(.*)$ /~edegan/w/index.php?title=$1 [PT,L,QSA]
RewriteRule ^/~edegan/wiki/*$ /~edegan/w/index.php [L,QSA]

Documentation on configuring Short URLs is here:


Until we can move the wiki and change its owner to apache (or similar), which requires root, the best we can do appears to be (from public_html):

chmod -R og-wx+X w/
chmod -R og+w w/images/

Note that the images directory needs write to allow file uploads.