- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-10-02T23:18:15+09:00","default:fuzuki","fuzuki")
#author("2018-12-29T21:09:31+09:00","default:fuzuki","fuzuki")
* MediaWikiの簡易メモ。 [#k960adf6]
- [[MediaWiki公式サイト:https://www.mediawiki.org/wiki/MediaWiki/ja]]
** 環境 [#tf5514a3]
raspberry pi2にDBはSQLiteで導入してみた。
phpにmbstringとxml拡張が必要。他にもいろいろ。
sudo apt-get install php-mbstring php-xml
sudo apt-get install php-sqlite3
sudo apt-get install imagemagick
sudo apt-get install php-gd
sudo apt-get install php-http
** 日本語検索機能改善 [#j893f71c]
そのままでは日本語検索がまともに働かない。かといってelasticsearchは重すぎる。~
というわけで、検索して見つけたbruteSearchをもとに[[BruteSqliteSearch:https://github.com/fuzuki/BruteSqliteSearch]]をでっちあげてみた。~
単純にLIKE句で全文検索しているだけだけど、小規模ならこれでも充分なはず。
*** 参考 [#s01219cf]
- http://macwiki.osdn.jp/wiki/index.php/MacWiki:MediaWiki%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
** カテゴリの更新が働かない [#l435e86f]
どうもカテゴリを追加しても反映されないので、解決策を調べていたところ、原始的ながら手動でrebuildall.phpを実行すれば、とりあえず反映されることが分かった。
php maintenance/rebuildall.php
実行にはDBへの書き込み権限が必要なので、DBファイルにグループ書き込み許可して、作業ユーザをwww-dataグループに追加すると楽。
*** 参考 [#rff1552e]
- https://www.mediawiki.org/wiki/Topic:T6uzpn51mgb8n5sc
** Map拡張 [#s0fc334c]
どうやら地図の埋め込み拡張機能があるらしい。ただその前にcomposerとやらが必要?~
Mediawikiディレクトリに移動して、[[ガイドの通りに:https://getcomposer.org/download/]]インストールしてみた。
それからcomposer.local.jsonを作成(編集して)下のようにrequireセクションにmapsを追加。
{
"require": {
"mediawiki/maps": "^5.6"
}
}
composerをupdateすると、extentionsディレクトリにMapsが追加されてる。
./composer.phar update
地図拡張の読み込み設定をLocalSetings.phpに追加。
$GLOBALS['egMapsDefaultService'] = 'openlayers';
$GLOBALS['egMapsDefaultGeoService'] = 'google';
あとはwikiのページに下のように書けば、地図が表示される。
{{#display_map:東京都中野区|width=400|height=300}}
*** 参考 [#y44963ca]
- https://www.mediawiki.org/wiki/Extension:Maps
- https://www.mediawiki.org/wiki/Composer/For_extensions
- https://www.semantic-mediawiki.org/wiki/Maps/Installation
- https://www.semantic-mediawiki.org/wiki/Extension:Maps/Displaying_maps
- https://www.semantic-mediawiki.org/wiki/Category:Maps_examples
** 本文取得SQL [#m7acdc83]
もともとテンプレートにデータを入力して、それを加工して扱いたいという理由で使いたかったので、最新のテキストを取得するSQLを置いておく。SQLite用だけど、他のDBでも動くかな。
もともとテンプレートにデータを入力して、それを加工して扱いたかったので、最新のテキストを取得するSQLを置いておく。SQLite用だけど、他のDBでも動くかな。
select page_title,old_text from page join revision on page_latest = rev_id join text on rev_text_id = old_id where page_namespace = 0;
*** 参考 [#je9c9496]
- https://www.mediawiki.org/wiki/Manual:Page_table