Patent Data Project Wiki
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 http://download.wikimedia.org/mediawiki/1.18/mediawiki-1.18.1.tar.gz
Note that we use mediawiki version 1.18.1.
Installation
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 mysql.nber.org -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 mysql.nber.org -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 http://www.nber.org/~edegan/w/index.php 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: mysql.nber.org 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: http://www.nber.org/~edegan/w/mw-config/index.php
When we browsed to http://www.nber.org/~edegan/w/index.php we got a 500 internal server error. Adding the following code to the top of the page (below <?php) showed a problem with the ctype function. This was resolved by Mohan, who installed php5-ctype.
error_reporting( E_ALL | E_STRICT ); ini_set( 'display_errors', 1 ); $wgShowExceptionDetails = true;
Configuration and Extensions
Configuration
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): http://www.nber.org/~edegan/w/index.php/MediaWiki:Sidebar
* navigation ** mainpage|mainpage-description ** portal-url|portal ** currentevents-url|currentevents ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help ** Special:MultipleUpload|Upload Multiple Files * SEARCH * TOOLBOX * LANGUAGES
Extensions
Note that UserRightsList does not appear to work for v1.18 (this has been reported to the author)
From the extensions directory, do the following:
wget http://upload.wikimedia.org/ext-dist/SimpleSecurity-MW1.18-r92088.tar.gz tar -xzf SimpleSecurity-MW1.18-r92088.tar.gz chmod 777 -R SimpleSecurity/
wget http://upload.wikimedia.org/ext-dist/UserMerge-MW1.18-r91995.tar.gz tar -xzf UserMerge-MW1.18-r91995.tar.gz chmod 777 -R UserMerge/
wget http://upload.wikimedia.org/ext-dist/ImportUsers-MW1.18-r91995.tar.gz tar -xzf ImportUsers-MW1.18-r91995.tar.gz chmod 777 -R ImportUsers/
wget http://upload.wikimedia.org/ext-dist/MultiUpload-MW1.18-r91995.tar.gz tar -xzf MultiUpload-MW1.18-r91995.tar.gz chmod 777 -R MultiUpload/
Add the following to the bottom of LocalSettings.php
#SimpleSecurity $wgSecurityUseDBHook = true; # Add this to enable the experimental DB hook for stronger security include_once("{$IP}/extensions/SimpleSecurity/SimpleSecurity.php"); # 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/Renameuser/Renameuser.php");
#UserMergeAndDelete require_once( "$IP/extensions/UserMerge/UserMerge.php" ); $wgGroupPermissions['bureaucrat']['usermerge'] = true;
#ImportUsers require_once("$IP/extensions/ImportUsers/SpecialImportUsers.php");
- MultipleUpload
require_once("$IP/extensions/MultiUpload/SpecialMultipleUpload.php"); $wgMaxUploadFiles=10;