「MacWiki:MediaWikiのインストール」の版間の差分
(MediaWiki 1.16.5) |
(新規アカウント登録者の IP アドレスを調べるには) |
||
行592: | 行592: | ||
$wgFileExtensions の配列で制御できます。(デフォルトでは png, gif, jpg, jpeg のみ) | $wgFileExtensions の配列で制御できます。(デフォルトでは png, gif, jpg, jpeg のみ) | ||
+ | |||
+ | ===新規アカウント登録者の IP アドレスを調べるには=== | ||
+ | |||
+ | * MediaWiki では、新規アカウント登録者の IP アドレスはわからないでしょうか? 最近続いているスパム投稿(ボット?)のアドレスを、上位ネットワークごと遮断したいのですが --[[利用者:ぜ|ぜ]] 2011年5月14日 (土) 02:23 (JST) | ||
+ | |||
+ | $ mysql -u macwiki --database=macwiki --host=mysql5.sourceforge.jp -p | ||
+ | mysql> select rc_timestamp,rc_user_text,rc_ip from mw_recentchanges where rc_log_type='newusers'; | ||
+ | +----------------+-----------------+-----------------+ | ||
+ | | rc_timestamp | rc_user_text | rc_ip | | ||
+ | +----------------+-----------------+-----------------+ | ||
+ | | ************** | ***** | ***.***.**.*** | | ||
+ | | ************** | **** | ***.***.**.** | | ||
+ | | ************** | ************** | ***.**.***.** | | ||
+ | | ************** | *************** | **.***.***.** | | ||
+ | | ************** | ******* | ***.***.***.*** | | ||
+ | +----------------+-----------------+-----------------+ | ||
+ | 5 rows in set (0.00 sec) | ||
+ | |||
+ | mysql> Bye | ||
==アップデート手順== | ==アップデート手順== |
2011年5月14日 (土) 08:01時点における版
目次
- 1 インストールメモ
- 1.1 アーカイブの展開
- 1.2 DB の設定
- 1.3 ブラウザ上からのインストール作業
- 1.4 PHP セッションセーブパスの設定
- 1.5 タイムゾーンの設定
- 1.6 画像ファイルアップロードの許可
- 1.7 外部画像の埋め込みを許可する
- 1.8 ページ名の最初の文字に小文字を使えるようにする
- 1.9 InterWiki の設定
- 1.10 ConfirmEdit + MacWikiCaptcha の導入
- 1.11 sourceforge.jp アイコンの表示
- 1.12 ロゴ/favicon の変更
- 1.13 SiteCss を使わない
- 1.14 フォント/配色の変更
- 1.15 タイトルをデフォルトの「(ページ名) - MacWiki」から「MacWiki - (ページ名)」に変更
- 1.16 ページフッタに copyright, privacy policy, disclaimer へのリンクを表示しない
- 1.17 バックアップスクリプト
- 1.18 ArticleComments/Lite
- 1.19 全文検索の機能改善 (experimental)
- 1.20 カテゴリページとプロジェクトページをデフォルトの検索対象に追加する
- 2 懸案事項
- 3 メモ
- 4 アップデート手順
- 5 関連リンク
インストールメモ
sourceforge.jp へ MediaWiki をインストールするにあたり、おこなった手順について書いておきます。(Apr 12, 2007)
アーカイブの展開
まず、sourceforge.jp のシェルサーバにログインし、MediaWiki 1.16 系列の配布ファイルを MacWiki プロジェクトディレクトリ配下の htdocs/wiki に展開します。各ファイルは group writable にしておきます。
takanori@pc192168024032$ ssh tatyana@shells.sourceforge.jp
tatyana@sf-usr-shell$ cd Sources/
tatyana@sf-usr-shell$ wget http://download.wikimedia.org/mediawiki/1.16/mediawiki-1.16.5.tar.gz
tatyana@sf-usr-shell$ openssl rmd160 mediawiki-1.16.5.tar.gz
RIPEMD160(mediawiki-1.16.5.tar.gz)= 0a8298051baaf02f400bc6f317508f7b7544ec57
tatyana@sf-usr-shell$ cd /home/groups/m/ma/macwiki/htdocs/
tatyana@sf-usr-shell$ tar xvfz ~/Sources/mediawiki-1.16.5.tar.gz
tatyana@sf-usr-shell$ mv mediawiki-1.16.5 wiki
tatyana@sf-usr-shell$ find wiki -type d | xargs chmod 2775
tatyana@sf-usr-shell$ find wiki -type f | xargs chmod 664
tatyana@sf-usr-shell$ chmod o+w wiki/config wiki/images
sourceforge.jp において PHP のプロセスは www-data:www-data の権限で動作します。この仕様のため、PHP のプロセスから書き込みがおこなわれる wiki/config および wiki/images のディレクトリは、everyone writable として設定せざるを得ません。
DB の設定
データベースの character set を utf8 に設定しておきます。(character set が binary の場合、インストール途中でエラーが発生することがあります。)
$ mysql -u macwiki --database=macwiki --host=mysql5.sourceforge.jp -p (mysql> drop database macwiki mysql> create database macwiki) mysql> alter database macwiki character set utf8; mysql> Bye
ブラウザ上からのインストール作業
ウェブブラウザで config/index.php にアクセスします。
Checking environment... Please include all of the lines below when reporting installation problems. PHP 5.2.0-8+etch13 installed Found database drivers for: MySQL Warning: PHP's safe mode is active. You may have problems caused by this, particularly if using image uploads. PHP server API is apache2handler; ok, using pretty URLs (index.php/Page_Title) Have XML / Latin1-UTF-8 conversion support. Warning: is_dir() [function.is-dir]: open_basedir restriction in effect. File(/var/lib/php5) is not within the allowed path(s): (/home/groups/local/pear:/home/groups:/tmp:/usr/bin:/bin) in /home/groups/m/ma/macwiki/htdocs/wiki/config/index.php on line 441 Warning: Your session.save_path value (/var/lib/php5) appears to be invalid or is not writable. PHP needs to be able to save data to this location for correct session operation. PHP's memory_limit is 32M. Couldn't find Turck MMCache, eAccelerator, APC or XCache; cannot use these for object caching. GNU diff3 not found. Found GD graphics library built-in, image thumbnailing will be enabled if you enable uploads. Installation directory: /home/groups/m/ma/macwiki/htdocs/wiki Script URI path: /wiki Installing MediaWiki with php file extensions Environment checked. You can install MediaWiki.
Site config の各項目を入力します。
Wiki name: MacWiki Contact e-mail: tatyana@users.sourceforge.jp (仮設定です。LocalSettings.php を書き換えることで変更できると思います。) Language: ja - 日本語 Copyright/license: No license metadata (GFDL と CC から選択できますが、とりあえずパブリックドメインを踏襲します。) Admin username: WikiSysop Password: ******** (実際のパスワードはプロジェクトディレクトリの ReadMe.txt を参照してください。) Password confirm: ******** Object caching: No caching Memcached servers: E-mail features (global): Enabled User-to-user e-mail: Enabled E-mail notification about changes: Enabled for changes to user discussion pages, and to pages on watchlists (not recommended for large wikis) E-mail address authentication: Enabled Database type: MySQL Database host: mysql5.sourceforge.jp Database name: macwiki DB username: macwiki DB password: ******** (実際のパスワードはプロジェクトディレクトリの ReadMe.txt を参照してください。) DB password confirm: ******** Superuser account: - Superuser name: root Superuser password: * (おそらく使われないのでしょう。) Database table prefix: mw_ (DB を他用途にも使うことを想定し、念のためテーブル名に prefix を付けておきます。) Storage Engine: InnoDB Database charset: MySQL 4.1/5.0 binary
ボタンを押すとインストールが始まります。
Warning: $wgSecretKey key is insecure, generated with mt_rand(). Consider changing it manually. Generating configuration file... Database type: MySQL Loading class: DatabaseMysql Attempting to connect to database server as macwiki...success. Connected to mysql 5.0.51a-24-log; enabling MySQL 4.1/5.0 charset mode Database macwiki exists Creating tables... done. Initializing statistics... Created sysop account WikiSysop. Creating LocalSettings.php... Installation successful! Move the config/LocalSettings.php file to the parent directory, then follow this link to your wiki. You should change file permissions for LocalSettings.php as required to prevent other users on the server reading passwords and altering configuration data.
生成された config/LocalSettings.php をしかるべき場所に再配置します。
tatyana@sf-usr-shell$ cp config/LocalSettings.php ./LocalSettings.php tatyana@sf-usr-shell$ chmod 664 LocalSettings.php
sourceforge.jp では、PHP のプロセスは www-data:www-data 権限で動作するので、このファイルもまた everyone readable にせざるを得ません。
config ディレクトリは以後不要となるので削除しておきます。
PHP セッションセーブパスの設定
Running MediaWiki on Sourceforge.net によると、 sourceforge では以下のようにして PHP のセッションセーブパスを設定しておくことが必須のようです。
ガイド文書では /tmp/persistent/PROJECT_UNIX_NAME/sessions にディレクトリを作成するように書かれていますが、 ここではプロジェクトディレクトリに var を掘り、その中に用意することにしました。
tatyana@sf-usr-shell$ mkdir -p /home/groups/m/ma/macwiki/var/mediawiki_sessions tatyana@sf-usr-shell$ chmod a+w /home/groups/m/ma/macwiki/var/mediawiki_sessions
[LocalSettings.php] <?php session_save_path("/home/groups/m/ma/macwiki/var/mediawiki_sessions"); ...
PHP では本来、24 分経過したセッションは自動的に破棄 (session.gc_maxlifetime = 1440) されますが、スクリプト内でセッションセーブパスを変更した影響か、生成されたファイルが削除されません。ここではその代替として一日一回 cron により破棄するようにします。
$ crontab -e ------------------------------------------------------------------------------------------------------- 12 0 * * * /usr/bin/find /home/groups/m/ma/macwiki/var/mediawiki_sessions -type f -mtime +1 -delete -------------------------------------------------------------------------------------------------------
タイムゾーンの設定
[LocalSettings.php] ... # $wgLocaltimezone = 'Asia/Tokyo'; $wgLocalTZoffset = '+540';
sourceforge.jp では PHP が safe mode で動いている都合上、一行目を有効にすることはできません。
画像ファイルアップロードの許可
画像ファイルのアップロードを許可します。
[LocalSettings.php] ... $wgEnableUploads = true;
sourceforge.jp では PHP が safe mode で動作しているため、ハッシュツリーに基づいた画像ファイルの格納はできません。($wgHashedUploadDirectory は false)
LocalSettings.php 中のメモに従い、images ディレクトリ配下に手動でサブディレクトリを用意します。
$ cd images $ mkdir archive thumb temp $ chmod a+w archive thumb temp
外部画像の埋め込みを許可する
画像ファイルの URL が記入された場合に、画像を埋め込んで表示させるようにします。
[LocalSettings.php] ... $wgAllowExternalImages = true;
ページ名の最初の文字に小文字を使えるようにする
デフォルトでは、ページ名の先頭文字は常に大文字に変換されます。
LocalSettings.php に $wgCapitalLinks = false; の設定行を加えることで、ページ名の最初の文字に小文字を使えるようにできます。(pTeX が PTeX などとならずに済みます。)
[LocalSettings.php] ... $wgCapitalLinks = false;
InterWiki の設定
InterWiki 機能を使うため、 maintenance/interwiki.sql を参考に、DB 内のテーブル mw_interwiki を書き換えます。
$ mysql -u macwiki --database=macwiki --host=mysql5.sourceforge.jp -p mysql> REPLACE INTO mw_interwiki (iw_prefix,iw_url,iw_local) VALUES ('google','http://www.google.com/search?q=$1',0), ('find','http://macwiki.sourceforge.jp/wiki/index.php/%E7%89%B9%E5%88%A5:Search?search=$1&fulltext=%E6%A4%9C%E7%B4%A2',0), ('isbn','http://www.amazon.co.jp/exec/obidos/ASIN/$1',0), ('asin','http://www.amazon.co.jp/exec/obidos/ASIN/$1',0), ('wikipedia','http://ja.wikipedia.org/wiki/$1',0), ('wikipedia-en','http://en.wikipedia.org/wiki/$1',0);
wiki のページにおいて、二重スクエアブラケットの中にたとえば [[Wikipedia:ほにゃらら]] などと書けば、wikipedia の当該記事へのリンクとなります。 InterWiki の設定は、あまり多くしても使わなくなると思います。
ConfirmEdit + MacWikiCaptcha の導入
spam 防止のため、ConfirmEdit を導入します。
まず、ConfirmEdit の配布ファイルを SVN より取得し、extensions/ConfirmEdit ディレクトリに格納します。
tatyana@sf-usr-shell$ cd extensions tatyana@sf-usr-shell$ svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/ConfirmEdit A ConfirmEdit/MathCaptcha.php A ConfirmEdit/ConfirmEdit.i18n.php A ConfirmEdit/FancyCaptcha.i18n.php A ConfirmEdit/ConfirmEdit.php A ConfirmEdit/FancyCaptcha.php A ConfirmEdit/captcha.py A ConfirmEdit/MathCaptcha リビジョン 21231 をチェックアウトしました。
続いて MacWikiCaptcha を導入します。 プロジェクトの svn レポジトリより入手し、extensions/MacWikiCaptcha ディレクトリ内に設置します。
$ svn checkout http://svn.sourceforge.jp/svnroot/macwiki/tatyana/MacWikiCaptcha
その後、LocalSettings.php で ConfirmEdit + MacWikiCaptcha を読み込ませます。
[LocalSettings.php] ... require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" ); require_once( "$IP/extensions/MacWikiCaptcha/MacWikiCaptcha.php" ); $wgCaptchaClass = 'MacWikiCaptcha'; $wgGroupPermissions['user']['skipcaptcha'] = true; $wgCaptchaTriggers['edit'] = true; // Would check on every edit $wgCaptchaTriggers['create'] = true; // Check on page creation. ...
sourceforge.jp アイコンの表示
sourceforge のサービスを利用している場合、 プロジェクトホームページにロゴを張り付ける必要があるので対処。
--- includes/Skin.php.orig 2011-01-04 15:15:54.000000000 +0900 +++ includes/Skin.php 2011-02-13 21:07:15.000000000 +0900 @@ -1540,6 +1540,7 @@ global $wgStylePath; $url = htmlspecialchars( "$wgStylePath/common/images/poweredby_mediawiki_88x31.png" ); $img = '<a href="http://www.mediawiki.org/"><img src="' . $url . '" height="31" width="88" alt="Powered by MediaWiki" /></a>'; + $img .= ' <a href="http://sourceforge.jp/"><img src="http://sourceforge.jp/sflogo.php?group_id=1160" width="96" height="31" border="0" alt="SourceForge.JP" /></a>'; return $img; }
ロゴ/favicon の変更
オリジナルのロゴが出来上がるまで、とりあえずは MediaWiki のアイコンで代用しておきます。
[LocalSettings.php] ... $wgLogo = "$wgScriptPath/skins/monobook/wiki.png"; $wgFavicon = "/favicon.png";
htdocs ディレクトリ直下に favicon.png を設置。
SiteCss を使わない
[LocalSettings.php] ... $wgUseSiteCss = false;
SiteCss を有効にしていると、sourceforge.jp 上では何故か、数十回のリロードにつき一度あるかないかの割合で GET /test/index.php?title=MediaWiki:Common.css&action=raw&ctype=text/css&smaxage=18000 のクエリ (PHP を介した css ファイルの読み出し)がおこなわれた際に 30 秒間の待ちが発生することが観測された。 (このファイルはキャッシュされるため、一般的な利用下での発生頻度はさらに低い。)
30 秒というのは PHP のタイムアウト時間と等しく、一つにはプロセスの出力バッファ周りでの不具合というのが 原因として考えられたが、sourceforge.jp ではウェブサーバにログインをおこなうことができないため、 根本的な原因の特定には至らなかった。
よって、今回は $wgUseSiteCss を false に設定することでクエリを抑止し、かかる問題を回避した。 (この場合、Common.css はスタティックなデータとしてダウンロードされるようになる。)
フォント/配色の変更
全体のフォントサイズの調整
--- skins/monobook/main.css.orig 2009-09-26 09:49:32.000000000 +0900 +++ skins/monobook/main.css 2011-02-13 20:20:34.000000000 +0900 @@ -40,7 +40,7 @@ */ body { - font: x-small sans-serif; + font-size: 76%; background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat; color: black; margin: 0;
- 旧 MacWiki と同じく、フォントフェイスは未設定としています。これにより、Mac 上では一般にヒラギノ明朝で表示されます。
旧 MacWiki のデザインに似せる
その他、css を使ったデザインの調整に関しては、このファイルを書き換えることで可能となるようです。たとえば、
@@ -138,6 +138,21 @@ h6 { font-size: 80%; } h6 .editsection { font-size: 125%; font-weight: normal; } +/*kokokara*/ +h2 { font-size: 120%; } +h2 .editsection { font-size: 83%; } +h2 { padding: .3em 0 .3em .5em; margin-left: -5pt; } +h2 { + border-bottom: none; + font-weight: bold; +} +h3 { font-size: 100%; } +h3 .editsection { font-size: 100%; } +h3 { padding: .15em 0 .15em .5em; } +h3 { font-weight: normal; } +h2, h3 { background-color: #ccf; border-color: #66c; border-style: solid; border-width: 0 0 0 15pt; } +/*kokomade*/ + ul { line-height: 1.5em; list-style-type: square;
@@ -228,6 +243,14 @@ line-height: 1.1em; } +/*kokokara*/ +pre { + border: 1px solid #99f; + color: #333; + background-color: #eef; +} +/*kokomade*/ + /* ** the main content area */
以上で h2, h3 と pre のデザインが 旧 MacWiki ライクになります。
その他
プレビュー画面の背景を調整します。
@@ -1306,3 +1329,7 @@ .no-text-transform { text-transform: none; } + +div#wikiPreview { + background-image : url("preview.png"); +}
preview.png は skins/monobook に設置。
タイトルをデフォルトの「(ページ名) - MacWiki」から「MacWiki - (ページ名)」に変更
--- includes/OutputPage.php.orig 2011-01-04 15:15:54.000000000 +0900 +++ includes/OutputPage.php 2011-02-13 20:57:24.000000000 +0900 @@ -2169,7 +2169,11 @@ } $ret .= "<head>\n"; - $ret .= "<title>" . htmlspecialchars( $this->getHTMLTitle() ) . "</title>\n"; + if ( preg_match( '/^(.*) - ([^-]*)$/', $this->getHTMLTitle(), $match ) ) { + $ret .= "<title>" . htmlspecialchars( "$match[2] - $match[1]" ) . "</title>\n"; + } else { + $ret .= "<title>" . htmlspecialchars( $this->getHTMLTitle() ) . "</title>\n"; + } $ret .= implode( "\n", array( $this->getHeadLinks(), $this->buildCssLinks(),
ページフッタに copyright, privacy policy, disclaimer へのリンクを表示しない
--- skins/MonoBook.php.orig 2010-05-12 11:12:12.000000000 +0900 +++ skins/MonoBook.php 2011-02-13 20:29:54.000000000 +0900 @@ -174,8 +174,8 @@ // Generate additional footer links $footerlinks = array( - 'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', 'copyright', - 'privacy', 'about', 'disclaimer', 'tagline', + 'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', /*'copyright',*/ + /*'privacy',*/ 'about', /*'disclaimer',*/ 'tagline', ); $validFooterLinks = array(); foreach( $footerlinks as $aLink ) {
バックアップスクリプト
とりあえず、現在は私 (たちゃな) の権限下で以下のスクリプトを動かしている。
$ install -m 2770 -d /home/groups/m/ma/macwiki/var/mediawiki_backup $ install -m 700 -d /home/users/t/ta/tatyana/Sources/macwiki_dump
[/home/users/t/ta/tatyana/Sources/macwiki_dump/backup_macwiki.sh] #!/bin/bash HOME=/home/users/t/ta/tatyana/Sources/macwiki_dump destdir='/home/groups/m/ma/macwiki/var/mediawiki_backup' expire=+90 filename=mediawiki_`date +"%Y%m%d_%H%M%S.sql"` group=macwiki dbuser=macwiki dbname=macwiki dbhost=mysql5.sourceforge.jp if ! test -f $HOME/.my.cnf; then echo "cannot open \"$HOME/.my.cnf\"" exit 1 fi find $destdir -type f -mtime $expire -delete touch $HOME/${filename} chmod 600 $HOME/${filename} mysqldump --quick -u $dbuser $dbname --host=$dbhost > $HOME/${filename} bzip2 -9 $HOME/${filename} mv $HOME/${filename}.bz2 "${destdir}/${filename}.bz2" chgrp $group "${destdir}/${filename}.bz2" chmod 660 "${destdir}/${filename}.bz2"
[/home/users/t/ta/tatyana/Sources/macwiki_dump/.my.cnf] [client] password=********
$ chmod 700 /home/users/t/ta/tatyana/Sources/macwiki_dump/backup_macwiki.sh $ chmod 600 /home/users/t/ta/tatyana/Sources/macwiki_dump/.my.cnf
$ crontab -e ------------------------------------------------------------------------------------------------------- 12 0 * * * /home/users/t/ta/tatyana/Sources/macwiki_dump/backup_macwiki.sh -------------------------------------------------------------------------------------------------------
ArticleComments/Lite
一行コメント機能が欲しかったので、 ArticleComments をベースにオリジナルのエクステンションを作成した。
インストール方法は、MacWiki プロジェクトの svn ツリーから ArticleCommentsLite.php を取得し、MediaWiki の extensions ディレクトリに設置するだけ。
$ cd extensions $ svn checkout http://svn.sourceforge.jp/svnroot/macwiki/tatyana/ArticleCommentsLite
その後、LocalSettings.php に以下のように書く。
MediaWiki 1.16.x で使う場合:
[LocalSettings.php] ... require_once("$IP/extensions/ArticleCommentsLite/ArticleCommentsLite.php"); $wgArticleCommentLiteDefaults['nokana']=true;
MediaWiki 1.15.x で使う場合:
[LocalSettings.php]
...
require_once("$IP/extensions/ArticleCommentsLite/for_1.15.4/ArticleCommentsLite.php");
$wgArticleCommentLiteDefaults['nokana']=true;
ここで、各々2行目の設定は旧 MacWiki 準拠の spam 防止機能を有効にするためのオプションで、 書き込まれたコメント中に(平|片)仮名が含まれていることを要求するためのもの。デフォルトでは false。
現在、談話室 のページでテスト中。(Apr 29, 2007〜)
注意
MediaWiki 1.15.4 で API の変更が生じたため、SVN 版 r626 までのものは動作しません。r710 以降にアップデートして使ってください。
逆に、r710 は以前のバージョンの MediaWiki で動かない筈です。--たちゃな 2010年5月28日 (金) 11:59 (UTC)
全文検索の機能改善 (experimental)
MySQL は日本語テキストのインデックス化に難があり、全文検索での取りこぼしが顕著である。(MyISAM の FULLTEXT INDEX は空白で区切られたワード単位でパーズがおこなわれるため。)
加えて MediaWiki 側での前処理も酷い。(MediaWiki 1.14.0 の languages/classes/LanguageJa.php を参照せよ。この処理だと、たとえば直前のセンテンスは「全文検索」ではヒットするが、「全文」や「検索」では途端にヒットしなくなってしまう。また、Chinese, Korean, および BMP 外の漢字等についても配慮が欠けている。これなら LanguageZh.php のアプローチの方が、まだまし。)
いずれにせよ、MediaWiki は日本語の検索をおこなう場面では殆ど使いものにならない。
根本的な解決のためには、MySQL 自体に手を加える必要があると思われる (e.g. Tritonn) が、ここではエクステンションを作成することで一応の回避を試みた。
インストール方法は、MacWiki プロジェクトの svn ツリーから BruteSearch.php を取得し、MediaWiki の extensions ディレクトリに設置する。
$ cd extensions $ svn checkout http://svn.sourceforge.jp/svnroot/macwiki/tatyana/BruteSearch
その後、LocalSettings.php に次のように書く。
[LocalSettings.php] ... require_once("$IP/extensions/BruteSearch/BruteSearch.php"); $wgSearchType = "BruteSearch"; $wgDisableSearchUpdate = true;
以上で検索機能が置き換わり、より良好な全文検索結果が得られるようになる。($wgDisableSearchUpdate の設定を併せておこなうことで、ページの更新にかかる時間を短縮できる。)
ピリオドを含んだ検索
ピリオドを含んだ検索(e.g. "10.4", "10.5")を許可したい場合。(オプション)
--- includes/search/SearchEngine.php.orig 2010-03-13 03:22:38.000000000 +0900 +++ includes/search/SearchEngine.php 2011-02-13 20:07:03.000000000 +0900 @@ -188,7 +188,7 @@ } public static function legalSearchChars() { - return "A-Za-z_'.0-9\\x80-\\xFF\\-"; + return "A-Za-z_'.0-9\\x80-\\xFF\\-\\."; } /**
カテゴリページとプロジェクトページをデフォルトの検索対象に追加する
[LocalSettings.php] ... $wgNamespacesToBeSearchedDefault = array( NS_MAIN => true, NS_CATEGORY => true, NS_PROJECT => true, );
懸案事項
- sourceforge.jp 側の制限のため、幾つかのディレクトリ・ファイルを everyone readable/writable として設定しなければなりませんでした。セキュリティ上の問題が生じるかも知れません。
- MediaWiki の math 機能(TeX による数式の組版)をビルドするには OCaml が必要となりますが、sourceforge.jp にはインストールされていないので使えません。
- アップロードされたファイルの格納方法は、ハッシュツリーを使った方式ではなく、ベタで置かれるようです。LocalSettings.php 中のメモには、PHP をセーフモードで動かす場合、ハッシュツリーに従う方式は使えないようなことが書かれています。
メモ
今後の設定項目等。
ゲストでの書き込みを許可しないようにするには
[LocalSettings.php] ... $wgGroupPermissions['*' ]['edit'] = false;
ただし、登録ユーザしか書き込みできないようにすると、今度はその弊害が気掛かりです。(気軽に書き込んでもらえなくなるので。)
ConfirmEdit + MacWikiCaptcha を用いることで、ゲストの書き込みを一律不可とせずとも、spam/abuse への充分な抑止となるのではないかと考えています。
アップロード可能なファイルサイズを変更するには
アップロード可能なファイルサイズの制限は、php.ini 側での設定 (upload_max_filesize) でおこないます。 sourceforge.jp では現在 8 MB に設定されているようです。
警告を出すファイルサイズの閾値は $wgUploadSizeWarning で設定できます。 MediaWiki 1.16 では false に設定されており、警告は無効化されています。
アップロード可能なファイルタイプを追加するには
$wgFileExtensions の配列で制御できます。(デフォルトでは png, gif, jpg, jpeg のみ)
新規アカウント登録者の IP アドレスを調べるには
- MediaWiki では、新規アカウント登録者の IP アドレスはわからないでしょうか? 最近続いているスパム投稿(ボット?)のアドレスを、上位ネットワークごと遮断したいのですが --ぜ 2011年5月14日 (土) 02:23 (JST)
$ mysql -u macwiki --database=macwiki --host=mysql5.sourceforge.jp -p mysql> select rc_timestamp,rc_user_text,rc_ip from mw_recentchanges where rc_log_type='newusers'; +----------------+-----------------+-----------------+ | rc_timestamp | rc_user_text | rc_ip | +----------------+-----------------+-----------------+ | ************** | ***** | ***.***.**.*** | | ************** | **** | ***.***.**.** | | ************** | ************** | ***.**.***.** | | ************** | *************** | **.***.***.** | | ************** | ******* | ***.***.***.*** | +----------------+-----------------+-----------------+ 5 rows in set (0.00 sec) mysql> Bye
アップデート手順
1.16.0 → 1.16.x をおこなう際のメモ。
事前に DB のバックアップを取っておく。
$ install -m 0700 -d ~/.dump $ cd ~/.dump $ touch macwiki.sql $ chmod 600 macwiki.sql $ mysqldump --quick -u macwiki macwiki --host=mysql5.sourceforge.jp -p > macwiki.sql
MediaWiki の配布ファイルを取得・展開する。
$ cd ~/Sources
$ wget http://download.wikimedia.org/mediawiki/1.16/mediawiki-1.16.x.tar.gz
$ openssl rmd160 mediawiki-1.16.x.tar.gz
RIPEMD160(mediawiki-1.16.x.tar.gz)= ...
$ cd /home/groups/m/ma/macwiki/htdocs/ $ tar xvfz ~/Sources/mediawiki-1.16.x.tar.gz $ mv mediawiki-1.16.x wiki_new $ find wiki_new -type d | xargs chmod 2775 $ find wiki_new -type f | xargs chmod 664 $ cd wiki_new $ install -m 0664 ../wiki/LocalSettings.php . (sourceforge.jp での制約) $ mv images images.orig $ mv ../wiki/images . (これも sourceforge.jp の制約絡み) $ cp -p images.orig/.htaccess images/ $ cp -Rp ../wiki/extensions . $ cd extensions/ConfirmEdit $ svn update $ cd .. $ find ConfirmEdit -type d | xargs chmod 2775 $ find ConfirmEdit -type f | xargs chmod 664 $ cd .. $ rm -rf config
- 1.16.3 以降 IE6 の XSS 対策として images/.htaccess が追加されているので注意。
$ mv includes/search/SearchEngine.php includes/search/SearchEngine.php.orig && \ install -m 0664 ../wiki/includes/search/SearchEngine.php includes/search/ $ mv includes/Skin.php includes/Skin.php.orig && \ install -m 0664 ../wiki/includes/Skin.php includes/ $ mv includes/OutputPage.php includes/OutputPage.php.orig && \ install -m 0664 ../wiki/includes/OutputPage.php includes/ $ mv skins/MonoBook.php skins/MonoBook.php.orig && \ install -m 0664 ../wiki/skins/MonoBook.php skins/ $ mv skins/monobook/main.css skins/monobook/main.css.orig && \ install -m 0664 ../wiki/skins/monobook/main.css skins/monobook/ $ install -m 0664 ../wiki/skins/monobook/preview.png skins/monobook/ $ mv skins/monobook/wiki.png skins/monobook/wiki.png.orig && \ install -m 0664 ../wiki/skins/monobook/wiki.png skins/monobook/ $ install -m 0664 ../wiki/.htaccess ./
DB への書き込みを一時的にロックする。
[../wiki/LocalSettings.php]
...
$wgReadOnly = 'Upgrading to MediaWiki 1.16.x';
?>
DB をアップデートののち、新旧を差し替える。
$ php maintenance/update.php $ cd .. $ mv wiki wiki_old && mv wiki_new wiki