Protoball:Setup

From Protoball
Revision as of 13:23, 19 September 2012 by Dave (talk | contribs) (→‎Python Setup)
Jump to navigation Jump to search

MediaWiki

Wikimedia is moving from SVN to Git. Current stable version is 1.19.0; Dreamhost uses 1.16. Many extensions are still svn only.

git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git
cd core
git checkout 1.19.6
cd ..
mv core _web_directory_

Beta Site

A copy of the files and database of protoball.org

LocalSettimgs.php, per variable

if(basename(dirname(__FILE__)) == "beta.protoball.org") {
  $wgServer = "beta.protoball.org";
  $wgDBname = _beta_db_;
  $wgDBname = _beta_logo_;
}

Short Urls

LocalSettings.php

$wgScriptPath       = "";
$wgScript           = "$wgScriptPath/index.php";
$wgRedirectScript   = "$wgScriptPath/redirect.php";
$wgArticlePath      = "$wgScriptPath/$1";

.htaccess

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?title=$1 [L,QSA]

Allow anchor tags

includes/Sanitizer.php

add 'a' to $htmlpairsStatic array

Crontab

Note: All crontab commands need to special the absolute path to the command. Use "which command" to see where it is located.

...
* 2 * * * /bin/bash /home/protoball/dumpdb

Anonymous Editing of Talk Pages

Note
This didn't work and is currently disabled.

LocalSettings.php

$wgNamespaceProtection[NS_MAIN] =
$wgNamespaceProtection[NS_USER] =
$wgNamespaceProtection[NS_PROJECT] =
$wgNamespaceProtection[NS_FILE] =
$wgNamespaceProtection[NS_IMAGE] =
$wgNamespaceProtection[NS_TEMPLATE] =
$wgNamespaceProtection[NS_HELP] =
$wgNamespaceProtection[NS_CATEGORY] = array('editarticles');
$wgGroupPermissions['user']['editarticles'] = true;

Javascript

at all javascript to MediaWiki:Common.js

JQuery UI

* we currently use just the slider
* unzipped into /jquery-ui/ directory

TinyMCE Editor

download jquery version at http://www.tinymce.com/download/download.php

unzip in root directory

see MediaWiki:Common.js for tinymce activation

Increasing the Default Text

http://www.tinymce.com/wiki.php/Configuration:content_css

Headings Plugin

download http://sourceforge.net/tracker/download.php?group_id=103281&atid=738747&file_id=312386&aid=1467705

cd ~/protoball.org/tinymce/jscripts/tiny_mce/plugins
mv ~/heading-1.3.zip .
unzip heading.zip

http://www.tinymce.com/forum/viewtopic.php?id=25260

vim editor_plugin.js # replace with corrected script
plugins: header
theme_advanced_buttons1: "h2,|,h3" //... etc

Extensions

Semantic Bundle

svn co http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/phase3
mv phase3
cd phase3/extensions
svn co http://semantic-mediawiki-bundle.googlecode.com/svn/trunk/ semantic-bundle
make ext
cp SemanticBundleSettings.sample.php SemanticBundleSettings.php
cp * _web_directory_/extensions/ -R

LocalSettings.php

require_once( "$IP/extensions/semantic-bundle/SemanticBundleSettings.php" );
require_once( "$IP/extensions/semantic-bundle/SemanticBundle.php" );

In page Special:SMWAdmin, click Initialize

php maintenance/update.php
vim SemanticBundleSettings.php
:%s/#include_once/include_once/g

Note: Parse error: syntax error, unexpected T_FUNCTION in /home/protoball/protoballproject.org/extensions/SemanticImageInput/SemanticImageInput.php on line 58

function registerInstantImageInput() {
        global $sfgFormPrinter;
        $sfgFormPrinter->registerInputType( 'InstantImageInput' );
};
$wgExtensionFunctions[] = "registerInstantImageInput";

Updating Ask Queries with cron touch LocalSettings.php

Semantic Wiki, by default, caches ask query information. The only way to update the cache for the one page is to edit and save that page. By setting up a cron job to touch LocalSettings.php, the cache is cleared for all ask queries the next page visit.

crontab -e
MAILTO=""
*/15 * * * * touch /home/protoball/protoball.org/LocalSettings.php
*/15 * * * * touch /home/protoball/beta.protoball.org/LocalSettings.php

Tweaks

Enable brackets in text
$smwgLinksInValues = true;
Increase max limit in inline queries
$smwgQMaxInlineLimit = 10000;

Cite

https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Cite.git

ParserFunctions

https://gerrit.wikimedia.org/r/p/mediawiki/extensions/ParserFunctions.git

WikiEditor

While tinymce works for html input. For essays using ref tags and for editable sections, we want wiki text

http://www.mediawiki.org/wiki/Extension:WikiEditor

cd ~/protoball.org/extensions
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/WikiEditor.git
cd ..
vim LocalSettings.php
require_once( "$IP/extensions/WikiEditor/WikiEditor.php" );

reCaptcha

cd extensions
wget http://upload.wikimedia.org/ext-dist/ConfirmEdit-MW1.19-110791.tar.gz
tar -xzf ConfirmEdit-MW1.19-110791.tar.gz
cd ..
vim LocalSettings.php
require_once("$IP/extensions/ConfirmEdit/ReCaptcha.php"); 
$wgCaptchaClass = 'ReCaptcha';
$wgReCaptchaPublicKey = # the public key
$wgReCaptchaPrivateKey = # the private key
$wgGroupPermissions['*'            ]['skipcaptcha'] = false;
$wgGroupPermissions['user'         ]['skipcaptcha'] = true;
$wgGroupPermissions['autoconfirmed']['skipcaptcha'] = true;
$wgCaptchaTriggers['addurl']        = false;
$wgMainCacheType = CACHE_ACCEL;

Running Jobs

Jobs are small pieces of work that mediawiki sets aside to do. They are executed $wgJobRunRate times per Page Access, whose default is 1.

CVS imports are included in this job queue; so, a back-log of jobs will result in unprocessed import jobs.

To run all jobs, go

php maintenance/runJobs.php

This is added in a chron job

crontab -e
...
10 * * * * /usr/local/bin/php /home/protoball/protoball.org/maintenance/runJobs.php
40 * * * * /usr/local/bin/php /home/protoball/beta.protoball.org/maintenance/runJobs.php

Enable Image Uploads

LocalSettings.php (edit)

$wgEnableUploads  = true;
chmod a+w images

Special Pages

MediaWiki:Mainpage
edit what the main page of the wiki site is
MediaWiki:Sidebar
edit the sidebar links
Special:AllMessages
System Messages, filter by changed option to see customizations

Backup

Python

Python language is used to run some maintenance scripts

Python Setup

wget http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.7.2.tar.gz
tar xzf virtualenv-1.7.2.tar.gz
python virtualenv-1.7.2/virtualenv.py $HOME/python
export PATH=/home/protoball/python/bin:$PATH

Packages

python/bin/easy_install mwclient
python/bin/easy_install MySQL-python
python/bin/easy_install python-fusiontables
python/bin/easy_install geopy