MediaWiki cheat sheet

From misc notes
Jump to navigation Jump to search

この MediaWiki の設定・運用メモ(忘れるので...)

MediaWiki の運用は結構手作業が入るので、出来るだけ単純にしたい。update も目視しないといけないし、自分でカスタマイズしている所を注意して patch をあてないと駄目なので、その箇所を出来るだけ少なくしたい。

運用方針

update 手順を簡単にする
  • Update を確認
MediaWiki.org
  • 使っている extentions や skins も確認 (SyntaxHighlight_GeSHi, Vector は Core に入った)
Extension:HTMLets (今は使ってない)
Extension:SyntaxHighlight GeSHi
Extension:MobileDetect (今は使ってない)
Extension:MobileFrontend
Skin:Vector
Skin:Minerva_Neue
Skin:Metrolook
これらの skin や extension のアップデートも忘れずにやる事
  • 展開
tar xvfz mediawiki-9.99.9.tar.gz -C /path/to/your/wiki/ --strip-components=1
この上書き方法は非推奨ですが...
  • DB Update
php maintenance/update.php
  • sitemap
php maintenance/generateSitemap.php --fspath sitemap --server https://www.egrep.jp --urlpath https://www.egrep.jp/wiki/sitemap
  • 1.25 で 自作 skin が動かなくなる予告
A skin using autodiscovery mechanism, $aSkin, was found in your skins/ directory.
The mechanism will be removed in MediaWiki 1.25 and the skin will no longer be recognized.
See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery for information how to fix this.
MySkin.php をその css とか js とかイメージをおいてあるディレクトリに移動
MySkin.php で path を指定している所を合わせる。 たとえば "/includes/SkinTemplate.php" を "/../includes/SkinTemplate.php"
css も path を指定しているところを合わせる。(error.log 確認すること)
MySkin.php に $wgValidSkinNames['myskin'] = 'MySkin'; を記述
LocalSettings.php に require_once "$IP/skins/myskin/MySkin.php"; を記述
  • SyntaxHighlight の使い方
<syntaxhighlight lang="php">
fuga hoge
</syntaxhighlight>
  • LocalSettings.php の設定

PHP のメモリー設定

ini_set( 'memory_limit', '128M' );

MemCached の設定

$wgMainCacheType = CACHE_MEMCACHED;
$wgMemCachedServers = array('127.0.0.1:11211');
$wgSessionsInMemcached = true;
$wgUseMemCached = true;

匿名ユーザの制限

$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;
$wgDefaultUserOptions['editsection'] = false;
$wgDisableAnonTalk = true;

外部リンク画像ファイルの表示

$wgAllowExternalImages = true;

varnish の設定

$wgUseSquid = true;
$wgSquidServers = array( 'xxx.xxx.xxx.xxx' , 'xxx.xxx.xxx.xxx' );
// $wgSquidServersNoPurge = array('127.0.0.1');

不要な情報を隠す

$wgDisableCounters = true;
$wgShowIPinHeader = false;
  • Skin (Vector) の設定

余計なタブやフッターを隠す (MediaWiki:Vector.css の設定)

#ca-talk { display: none !important; }
#ca-history { display: none !important; }
#ca-viewsource { display: none !important; }
/* #footer-info-lastmod { display: none; } */
#footer-info-copyright { display: none; }
#footer-places-privacy { display: none; }
#footer-places-about { display: none; }
#footer-places-disclaimer { display: none; }

余計なフッターを隠す (MediaWiki:Privacy | MediaWiki:Privacypage | MediaWiki:Aboutsite | MediaWiki:Aboutpage | MediaWiki:Disclaimers | MediaWiki:Disclaimerpage にハイフン '-' を設定)

-

余計なフッターを隠す (MediaWiki:Common.css の設定)

#f-poweredbyico { display: none; }
#footer-icon-poweredby { display: none; }
#footer-icon-poweredbyico { display: none; }
#footer-poweredbyico { display: none; }

ログインユーザにのみツールボックスを見せる (skins/Vector.php の変更)

@@ -267,7 +267,11 @@
                        $portals['SEARCH'] = true;
                }
                if ( !isset( $portals['TOOLBOX'] ) ) {
-                       $portals['TOOLBOX'] = true;
+                       if($this->data['loggedin']) {
+                               $portals['TOOLBOX'] = true;
+                       } else {
+                               $portals['TOOLBOX'] = false;
+                       }
                }
                if ( !isset( $portals['LANGUAGES'] ) ) {
                        $portals['LANGUAGES'] = true;
  • SyntaxHighlight GeSHi の下位互換性

インデントさせる為に MediaWiki:Geshi.css に設定

div.mw-geshi {
  padding: 1em; 
  margin: 1em 0; 
  border: 1px dashed #2f6fab;
  background-color: #f9f9f9;
}
  • HTMLets のメモ

今はつかってないので忘れてしまいそう。すべてのページに挿入するには MediaWiki:Sitenotice に仕込む

iPhone 対応

Extension:MobileDetect
WPtouch skin
1.25.x では WPtouch の対応は難しい。なので
Skin:Metrolook
これを試している。

Misc

  • navigation bar
MediaWiki:Sidebar

composer update

1.25.6 にバージョンアップする際に怒られた。

$ php update.php
MediaWiki 1.25.6 Updater

wikimedia/composer-merge-plugin: 1.0.0 installed, 1.3.1 required.
Error: your composer.lock file is not up to date, run "composer update" to install newer dependencies

PHP の依存関係をマネージメントする Composer というのがる。

https://getcomposer.org/
cd /tmp
wget https://getcomposer.org/installer
php -d allow_url_fopen=On installer
mv composer.phar /usr/local/bin/composer
su - www-data
cd mediawiki-doc-root
php -d allow_url_fopen=On /usr/local/bin/composer update