MediaWikiのインストール
出典: 九州島ウェブ技術めも
MediaWikiのインストールをしてみました。
ソースはこちら
インストール手順
インストール環境はこんな感じ。Apache2, PHP5, MySQL
実際の手順
$ cd /directory/to/install/mediawiki/ $ wget http://download.wikimedia.org/mediawiki/1.11/mediawiki-1.11.0.tar.gz $ tar xzf mediawiki-1.11.0.tar.gz $ ln -s ./mediawiki-1.11.0 ./w $ cd ./w $ chmod 0777 config
上記はUNIX系サーバのコンソールでの操作です。解凍したファイル群をFTPでサーバに転送しても良いでしょう。シンボリックリンクは好みで作ってみました。たぶん、バージョンのアップグレード時に楽になるかも知れないので。した事ないので分かりませんが。。
後はブラウザからアクセスして指示に従って情報を書き入れてインストール終了。
はまった点
- MySQL5.1では、TYPE=でエラーが出るためテーブルがデータベースに作成できず、インストールができなかった。
(解決方法)別のサーバ(MySQL4.1)に一旦MediaWikiのインストールをしてから、mysqldumpでテーブル情報をファイルに書き出して、それを使ってMySQL5.1にデータベースを作成した。
$ mysqldump -u username -p --default-character-set=latin1 database > backup.sql
mysqldump時は--default-character-set=latin1のオプションを利用。
$ sed -e 's/latin1/utf8/g' backup.sql > backup.new.sql
書き出したSQLファイルを上の様にして編集。文字列"latin1"を"utf8"に一発変換して新しいファイルを作っています。あと、mysqldumpが書き出しているヘッダーとフッター部分も削除しました。
$ mysql -u username -p mediawiki_database < backup.new.sql
$ vi LocalSettings.php
$wgDBTableOptions = "ENGINE=InnoDB";
の様に編集した。
- ショートURL (Rewrite Engine)の設定
$ vi LocalSettings.php
$wgArticlePath = "/$1";
$ vi .htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^(.+) - [L]
RewriteCond %{REQUEST_URI} index.php
RewriteRule ^(.+) - [L]
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^[^:]*\. - [L]
RewriteRule ^[^:]*\/ - [L]
RewriteCond %{REQUEST_URI} !^/(stylesheets|images|skins)/
RewriteCond %{REQUEST_URI} !^/(redirect|texvc|index).php
RewriteCond %{REQUEST_URI} !^/error/(40(1|3|4)|500).html
RewriteCond %{REQUEST_URI} !^/favicon.ico
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteRule ^(.+)$ /index.php?title=$1 [L,QSA]
かなり意味のない記述も含まれてる可能性あり。ルールをいろいろと試してみたけど、どうやってもページ編集時にindex.phpの編集とかになってしまってページの編集ができひんかった。結局、解決方法はこのページに書いてあったこれをして一件落着。
$ vi LocalSettings.php
$wgUsePathInfo = false;

