Manual:Running MediaWiki on Windows/ja
このページではMicrosoft Windowsシステム上にMediaWikiをインストールすることに関する情報を提供します。
Contents |
イントロダクション [edit]
PHP(クロスプラットフォーム)で書かれているので、Windows上でMediaWikiを動かすことはとても簡単です。 このガイドは現時点でもっとも最新のMediaWiki(1.7系)をサポートし、それ以前のバージョンに関するバグ修正の説明はしません。
既にPHP、Apache、MySQLを実行するインターネット開発環境を稼働させている場合、オプションのソフトウェアのセクションまでスキップすることが出来ます(このガイドではApache HTTPサーバに関して焦点を当てているので、IISの場合はInstalling MediaWiki on Windows Server 2003をご覧下さい)。
新しいApache/PHPもしくはMySQLを新しく使い始める場合、これらのアプリケーションがWindows 2000とそれ以降の開発者によってのみサポートされていることに注目する値があるかもしれません。
ソフトウェア要件とオプション [edit]
必須のソフトウェア [edit]
- サポートされるソフトウェア
- MySQL.
- ウェブサーバr: Apache, Abyss Web ServerもしくはIIS。
- PHP 5.x (バージョンによります)。
- Windows 2000/XP/2003/Vista. -
サーバのオペレーティングシステム(オプション): Windows Server 2003/Windows Server 2008 Beta。 実証済み
- Mediawiki – コード自身
オプションのユーティリティ [edit]
- Texvc (数式のレンダリングに必要)
- PHPの最適化ソフトウェア (Zend Optimizer)。コンパイルされたPHPコードを50%から100%効率よく実行するためにクリーンアップします。
- PHPキャッシングソフトウェア (Turke Memcacheもしくは eAccelerator)。コンパイルされたPHPを将来のために保存するので再コンパイルする必要がなくなり、実行速度を100倍以上スピードアップします。
- 画像処理ソフトウェア (ImageMagickもしくはGD)。フォーマットの変換とサムネイルに利用されます
- ウェブページキャッシングソフトウェア (Squid)。再利用のためにレンダーされたページを保存するために利用されます。
ハードウェア [edit]
Wikipediaデータベースといった大規模のデータベースのために本格的なハードウェアが必要になることがあります。meta-wikiには計測されるクライアントの数に対するクラスターのサポート、構成に関する情報があります。
最小で256MBのRAMが推奨されます。
ソフトウェアインストレーションのメソッドを選択する [edit]
MediaWikiはLAMP(Linux+Apache+MySQL+PHP)環境で開発されています。MediaWikiをスムーズに動作させたい場合、可能な限り、このスタックを利用することをお勧めします。それゆえ、IISは推奨されません。代わりに"LAMP"の"AMPの部分を利用することでうまくいくようです。
これらの製品はWindowsの元で設定することは難しくありませんが、まったく初めての場合、一度にApache+MySQL+PHPをインストールして設定することはとても難しいかも知れません。そのような状況の場合、インストールするだけで済むLAMPもしくはWAMPのあらかじめ作られた組み合わせをお勧めします。これらによってそれぞれのパッケージを手作業で設定する99%の煩わしいことをしなくて済みます。弱点はこれらの中には個別のコンポーネントをアップグレードするのが難しい縮小されたもしくは修正されたバージョンであったり時代遅れであったりすることです。
サポートされるコンポーネントを個別にインストールするもしくは、すべてをパッケージとして一緒にインストールすることが出来ます。個別にApache 2、MySQL 4とPHP 5をインストールする方法はManual:Newcomers guide to installing on Windowsをご覧下さい。どのソフトウェアを選択すればよいのか2004年12月時点で重要な情報は問題とサンプルのコンフィグファイルのガイドと同様にこの記事に書かれています。
現在、最新の"オールインワンパッケージ"のベストな例はDeveloperSide.NET Web-Server SuiteとSaint WAMP sourceforge(2004年時点で開発停止)です。
他に含まれるもの: 次のリストの中でベストなものはAbyss Web Serverです。MySQLとPostgreSQLといった複数の言語やMediaWiki、PHPBBといった大規模のPHPとASP.NETアプリケーションをサポートします。
- Abyss
- EasyPHP
- XAMPP
- Uniform Server
- IBServer (2003年で開発停止)
- FoxServ (2002年で開発停止)
- * Comparison of WAMPs
何がベストで動作するのかご存じですか?
Windowsマシンで、MediaWikiをホストする人の手助けになるようにさらなる情報の追加をお願いします。
編集して追加するためにここをクリックして下さい
次の記事もご覧下さい: Manual:Wiki on a stick.
Apache、PHPとMySQLをパッケージとしてインストールする [edit]
上記のリストからダウンロードするパッケージを選択して下さい。Saint WAMP (ver 3.4), and EasyPHP (ver 1.8)のためにステップバイステップのインストラクションが提供されます。 Saintは2つのパッケージの最新版ですが、EasyPHPはよりシンプルで使いやすいです。注:これらの両方はPHP4を提供していますが、現在のMediaWikiはPHP5を要求するのでどちらも動作しないようです。セキュリティと他の理由のために、PHP5をダウンロードした方がおそらくベターです。より簡単なインストール方法はNewcomer's Guide/jaをご覧下さい。
Internet Information Services (IIS)マネージャーがインストールされている場合 [edit]
IISがインストールされている場合、いくつか考慮することがあります。デフォルトではIISとApacheは両方ともポート80を利用するので、IISをアンインストールするか、無効にするか、別のポートに変更する必要があります。
注: Saint WAMPはインストールの間にApacheのためにデフォルトのポートの変更を許可します。IISがポート80を利用続けさせてApacheが異なるポートを利用するようにしたいのであれば、IISはそのままにしておくことが出来ます。
ポートを変更するためにはIISを次のように設定します:
- IIS Managerを開きます [Start -> Administrative Tools -> Internet Information Services (IIS) Manager]
- Web Sitesを展開し、Default Web Siteを右クリックしてそしてプロパティを選択します
- Web Site TabにおいてPortフィールドを変更します (例: 8080)
- OKをクリックします
- 変更の効果が現れるようにIISを再起動します
Saint WAMPをインストールする [edit]
- ダウンロードしたSaint WAMPインストレーションパッケージを実行します
- インストールタイプとしてClassic WAMPを選択します
- デフォルトのインストールディレクトリか変更したものを使う
- グローバルオプションはそのままに出来ますが、IISを起動しているのであれば変更が必要になることがあります。
- 使わないのであればPythonとSSLをチェックから外します。ステータスは役立つかもしれません。
- Windows環境で最適にするためにmysqld-nt.exeサービスを選択します
- Apache Monitorを起動させます
- TSW-Contentserverを起動させます (タスクバーのApacheアイコンを使います)
一旦インストールすると管理者アカウントが必要になります
- コマンドプロンプトを開きます [Start -> Run -> Type 'cmd' -> OK]
- cd "\Program Files\TSW\Apache2\bin"を入力します
- htpasswd -cmd .htpasswd newusernameを入力します
- 新しいパスワードを2回入力します
- copy .htpasswd ..\confを入力します
- ファイルを置き換えることを承認するためにyを入力します
- テストするためにhttp://localhost/に移動します
- http://localhost:3000をチェックアウトします。 催促されたときに以前作成したユーザーアカウントを使います。このプロセスの後で、コンピュータ上で稼働しているすべてのサービスを表示するウィンドウを開きます(タスクバー上のApacheアイコンを使います)。TSW-MySQLサービスが稼働しているか確認します。そうではない場合は起動させます(右クリック -> Start)。
EasyPHPをインストールする [edit]
- ダウンロードしたEasyPHPインストレーションパッケージを実行します
- デフォルトのインストールディレクトリもしくは変更をしたものを使います
- インストールが終わった後、2つのダイアログボックスが最後のインストールスクリーンのトップに現れます
- 'Mise a jour'ボックス上でOKをクリックします。
- EasyPHPダイアログボックスはApacheとSQLが既に起動していることを示します
- テストするためにhttp://localhost/に移動します
インストレーション後のタスク:
- MySQLのrootパスワードを設定するためにhttp://localhost/mysql/に移動します。トレイリングスラッシュを入力すると問題になることに注意して下さい!"Show MySQL system variables"と"Privileges"を選択し、"root"で始まる行の終わりでアイコンをクリックします。パスワードエントリボックスにスクロールダウンして入力します。
Apacheを設定する [edit]
ApacheのためのDocument Rootはできれば個別のボリューム上でどこを指定するように変更します。新しいフォルダ(すなわちD:\www)を作成してApache構成ファイルを次のように編集します:
- 最初に、SaintもしくはPHPがインストールされている.\apache\confにあるhttpd.confファイルを開きます
- DocumentRootを見つけ出して編集します
DocumentRoot "D:\www"
- 最後に、スクロールダウンして'<Directory>'ディレクティブ(<Directory />ディレクティブもしくは</Directory>ディレクティブではありません)をDocumentRootと同じにして下さい (Saint WAMPディストリビューションをインストールした場合、'<Directory htdocs>'ディレクティブを変更して下さい)
<Directory "D:\www">
変更を反映するためにTSW-Contentserverを再起動する必要があります。
WAMPに含まれていないMemcacheとImageMagickもしくはその他のグラフィカル操作パッケージをインストールしたい場合、 インストラクションはManual:Newcomers guide to installing on Windows/jaで示されており、必要なphp設定もサンプルのphp.iniで示されています。
MediaWikiをインストールする [edit]
基本的なソフトウェアのインストールが成功した後で、MediaWikiをインストールすることが出来ます。
- sourceforgeのファイルリストもしくはポータルページからMediaWikiをダウンロードします
- MediaWikiソースツリーをApache Document Rootに解凍します(例えばD:\www\Mediawiki)
- http://localhost/mediawikiにアクセスをしてページで指示されるとおりにMediaWikiを設定します。
- データベースにアクセスをするのが困難な場合、次のコマンドをmysqlで行う必要があります:
- set password for 'root'@'localhost' = password ('new-password');
- この時点で空白ページを得る場合、"LocalSettings.php"ファイルが作成されなかった場合、誰かに助けを求めて下さい(IRC channelsもしくはメーリングリストのどちらか)。時にはブラウザをリロードすることで問題が解決することがあります。
- 手作業でインストールした場合、次の内容を見ることがあります:
- Warning: dl() [function.dl]: Not supported in multithreaded Web servers - use extension=mysql.so in your php.ini in {path_to_htdocs}\wiki\install-utils.inc on line 17
Could not load MySQL driver! Please compile php --with-mysql or install the mysql.so module.
- Warning: dl() [function.dl]: Not supported in multithreaded Web servers - use extension=mysql.so in your php.ini in {path_to_htdocs}\wiki\install-utils.inc on line 17
- このことはPHPがMySQLを利用するように設定することを忘れたことを意味します。方法についてはマニュアルか(PHPの元にある)install.txtをご覧下さい。
- データベースにアクセスをするのが困難な場合、次のコマンドをmysqlで行う必要があります:
- 生成された.\mediawiki\config\LocalSettings.phpを.\mediawiki\に移動させます、すなわち、親ディレクトリに移動させることです
- これでWindowsでMediaWikiを楽しんで下さい: http://localhost/mediawiki
必須条件のソフトウェアインストレーション [edit]
Apache [edit]
ダウンロードとインストレーション [edit]
Download the Apache Web Server MSI installation package from here using the latest 2.0.x binaries (2.2.x is fairly new at the time of writing and is not well supported by binary files for PHP). Currently the latest version of Apache is version 2.0.59 (July 2007)
インストレーションはかなりシンプルですが、サーバ上で管理者権限を持たない場合、管理者権限を要求するサービスのインストレーションとして、ポート8080の手作業の起動インストレーションを選択する必要があります。
構成 [edit]
apacheのhttpd.confファイルを変更する必要があります。デフォルトのインストレーションを利用している場合、"C:\Program Files\Apache Group\Apache2\conf"に設置されています:
- LoadModuleの行のブロックの終わりに次の行を追加して下さい:
LoadModule php5_module c:/php/php5apache2.dll
AddType application/x-httpd-php .php .php5 .phtml
AddType application/x-httpd-php-source .phps
#php.iniへのパスを設定します
PHPIniDir c:/php
- c:/php/をphp5apache2.dllファイルの位置に変更しなければなりません (次のセクションでダウンロードして設定します)。 スペースの伴うディレクトリを使うことは推奨しません。
- 注: Apache 2.2をインストールしている場合、"php5apache2.dll"を"php5apache2_2.dll"に置き換えます。
PHP [edit]
ダウンロード&インストレーション [edit]
ここからPHPのWindowsバイナリをダウンロードします。一旦ファイルをダウンロードするとファイルをApache構成ファイルで指定したディレクトリに展開する必要があるだけです。DLLが見つからないというエラーを受け取る場合、PHPディレクトリをPATH内に設置する必要があるかもしれません。
php.ini-recommendedファイルをphp.iniにリネームします
構成 [edit]
先ほどリネームをしたphp.iniファイルで次の修正をして下さい。
エクステンションディレクトリ [edit]
- extension_dirを"./ext"に設定して下さい
MySQL [edit]
- "extension=php_mysql.dll"をアンコメントします (すなわち';'を削除します)
GD [edit]
サムネイルのためにGDライブラリを有効にする必要があります。GDライブラリはデフォルトのダウンロードパッケージにエクステンションとして含まれます。
- "extension=php_gd2.dll"をアンコメントします
Apache2サーバを再起動してサービスコントロールパネルもしくはApache2 Monitorを使いすべてが動作していることを確認します。
MySQLインストレーション [edit]
下記のダウンロードリンクはMySQLのすべての利用可能なバージョンのページを指定しています。"Current Release (Recommended)"をダウンロードしたい場合(執筆時点で5.0です)、"Windows Essentials"に従って下さい
ダウンロードしている間に、2番目のリンクでインストールガイドをご覧下さい using the second link below.
一旦MySQLを正しくセットアップすると、MediaWikiのインストレーションに進むことが出来ます。
C:\phpもしくはMySQLインストールディレクトリをPATHに追加するかlibmysql.dllをPATH内にある場所(例えばC:\Windows)にコピーすることで、libmysql.dllがPATH上にあることを確認して下さい。
MediaWiki [edit]
2つの選択肢があります
- 最新の安定版リリース
- 最新の開発バージョン
安定版リリース [edit]
- Download/ja に移動します
- 最新版をダウンロードします
- ディスクに保存してC:\easyphp\www\mediawiki\に展開します
最新のリリースとSVNバージョン [edit]
安定版と同様に、次のバージョンのベータもあります。リリースされていませんがSVNにごく最新のもの("up to the minute")があります。
開発者による最新の変更を含むMediaWikiの開発バージョンが存在します。それらは動作するかも知れませんが、重大な問題を抱えているかもしれませんので(いかなる種類であっても、主要なデータの破損に対しては些細なことですが)、ベータもしくはSVNバージョンを使う場合は慎重にして下さい。一般的には、回避できないバグに対処するため、いくつかの主要な機能を得るため、もしくは他の問題を解決するために開発バージョンが必要でなければ安定バージョンを利用して下さい。確かではない場合、リリースノートを常に確認して下さい。コンピュータに精通しておらず、最新のソフトウェアをテストしたくないのであれば安定リリースを入手して下さい。
すべてのバージョン(安定版と開発版)をSVNで、sourceforge、もしくはここからダウンロードすることが出来ます。SVNバージョン(最新のソフトウェア)を入手したい場合、SVNクライアントをインストールしなければなりません。Subversionクライアントはhttp://subversion.tigris.org/ で入手出来ます。Subversionの使い方に関してはDownload from SVN/jaとSubversion/jaをご覧下さい。
インストールする [edit]
すべての作業の後で、MediaWikiをインストールすることはとても簡単です。wikiを展開したディレクトリ(例えば、\htdocs\wikiに展開したのであれば、http://localhost/wiki )にブラウザで移動してセットアップを始めるリンクをクリックして下さい。ここで入力する必要のあるすべての詳細をしらなければなりませんが、PHPのSMTPを設定していないのであれば電子メールのコミュニケーションのすべてを無効にした方が賢明であることに留意して下さい。
WindowsのLocalSettings.phpの大きな違い [edit]
- PHPのWindowsファイルパスは*nixスタイルパスと異なります.
例えば、Linux上では次の通りです:
$IP = "/var/www/apache2-default/wiki";
Windows上では次の通りです:
$IP = "D:\\Program Files\\Apache Group\\Apache2\\htdocs\\mediawiki-1.5.6";
内容 [edit]
それぞれのwikiのために、ページデータの3つのセットがXML形式でダンプとして生産されます。The download siteのページでそれぞれのダンプの状態、進行中の場合、最後のダンプされたのかいつなのかといった情報が表示されます。MWDumperによってMediaWiki1.4もしくは1.5のデータベースに直接投入されるデータのためのSQL命令文と同様に他のXMLダンプとして出力を生み出すためにこれらのダンプはフィルタリングと変換されます。
次の記事もご覧下さい: Data dumps
任意のソフトウェア [edit]
Diffutils [edit]
Diffutils (diff3を含みます)はここから、fileは[ここからダウンロードすることが出来ます。
MediaWikiの範囲内でdiffutilsの利用を有効にするために(diffをパス内にインストールした場合は自動的に設定されます)、LocalSettings.phpを次のように変更します:
$wgDiff3 = "/usr/bin/diff3";
は次のようになります
$wgDiff3 = "C:/Program Files/GnuWin32/bin/diff3.exe";
そして次の行を置き換えます:
$wgMimeDetectorCommand= "file.exe -bi"; #use external mime detector (linux)
変更後は次のようになります
$wgMimeDetectorCommand= "C:/Program Files/GnuWin32/bin/file.exe -bi"; #外部のmimeディテクタを利用する
"C:/Progra..."をツールをインストールした実際に位置に置き換えなければならないことにご注意して下さい。
ImageMagick [edit]
- 注: PHPはデフォルトでGDが有効になっています。これはサムネイリングのために動作して、構成もしくは修正が要求されません。それゆえ不安定で知られるので、ImageMagickをインストールすることはお勧めしません。
"Q8" ImageMagickはチャネルごとに8ビットを使い、"Q16"リリースはチャネルごとに16ビット利用します。画像のサムネイリングが動作するようにするために、includes/Image.phpを開き、$cmd = $wgImageMagickConvertCommand .で始まる行を探し、コマンド変数が次のようにビルドできるようにescapeshellarg()関数を削除し、次の行に対しても同じことをします:
$cmd = $wgImageMagickConvertCommand .
" -quality 85 -background white -geometry {$width} ".
($this->imagePath) . " " .
($thumbPath);
加えて、LocalSettings.phpで$wgImageMagickConvertCommandが(ImageMagickフォルダのパス)/convert.exeを指定していることを確認します
- 注:
- .exe拡張子を使用して下さい! 省略した場合動作しません。
- ImageMagickのインストールパスとしてスペース無しのパスか、パスのショートネームを利用して下さい。
これを動作させる別の方法はImageMagickのパスをWindows PATH変数に追加して、次のようにLocalSettings.phpで$wgImageMagickConvertCommandを設定します(上記で示されるようにImage.phpを修正しなければなりません):
$wgImageMagickConvertCommand = "convert.exe";
インターネットゲストアカウント(通常はIUSR_MACHINENAME)はImageMagick binディレクトリに対して読み込みと実行権限を持ちます。 これ無しでは、convet.exeファイルが見つからないときに起こることと似たPHPシェル実行のエラーを見ることがあります。
- 1.7.1においてImage.phpは次のようになっています
$cmd = $wgImageMagickConvertCommand .
" {$quality} -background white -size {$width} ".
($this->imagePath) .
// Coalesce is needed to scale animated GIFs properly (bug 1017).
' -coalesce ' .
// For the -resize option a "!" is needed to force exact size,
// or ImageMagick may decide your ratio is wrong and slice off
// a pixel.
" -resize " . "{$width}x{$height}!" .
" -depth 8 " .
($thumbPath) . " 2>&1";
- 注意: 次の場合$wgUploadPath/thumbディレクトリの内容も削除しなければならないことがあります
- 最初にthum画像が作成されるまえにImageMagickをインストールした
- ?action=purgeがキャッシングに対して効果がない(MediaWiki 1.8.2で体験しました)
私の場合サムネイルの作成が動作しませんでした。デバッギングした後で動作した例です:
- ImageMagickへの絶対パスをLocalSettings.phpに与えていることを確認して下さい。
- Image.phpにおいて上記の行を次のように置き換えます(すなわち$cmd=$wgImageMagickConvertCommandなど) with:
$cmd = $wgImageMagickConvertCommand .
" {$quality} -background white -size {$width} " .
str_replace( chr(47),chr(92), $this->imagePath) .
// Coalesce is needed to scale animated GIFs properly (bug 1017).
" -coalesce " .
// For the -resize option a "!" is needed to force exact size,
// or ImageMagick may decide your ratio is wrong and slice off
// a pixel.
" -thumbnail {$width}x{$height}!" .
" -depth 8 " .
str_replace( chr(47),chr(92), $thumbPath) . " 2>&1";
//$fp = fopen("myoutputlog.txt", "w");fwrite($fp, $cmd);fclose($fp);
char 47は'/'である一方でchar 92は'\'です (http://www.asciitable.com/ をご覧下さい)。 ですのでwfEscapeShellArg() 関数を利用する代わりにバックスラッシュとダブルクォートを置き換えます。私は/を\に変形しました(リテラルキャラクタ)。画像へのパスに空白を含めることはできないことをここで警告します(wcEscapeShellArg()無しで免れることを可能にします)。最後のコメント行は実際にサムネイルを生成するために実行される文字列を含む"myoutputlog.txt"ファイルを生み出します。
数式のサポート [edit]
MediaWikiは数式を素晴らしく見えるPNGにレンダーするtexvcと呼ばれるプログラムを利用します。
MediaWikiはLinuxのために開発されたのでWindows上で起動させて稼働させることは幾分か困難であることがあります。下記の他の選択肢の一つを利用することをお勧めします。最初の代替的な解決方法は正しくインストールしたのであれば高い成功率があります。
- 注意: 数式のサポートは厳密にはオプションです。数式が必要であるが、シンプルなサブスクリプトよりも複雑な数式を入力したい場合に、wikiはそれなしに立派に動作します。
すべての解決方法に必要なものです:
- Latexとdvips (Windows用のMiktexパッケージを利用します)
- PostscriptライブラリのためのGhostScript ([1]) (警告!新しいバージョンにおいて、gswin32c.exeはリネームするかgs.exeにリンクしなければなりません)
- Windows用のImageMagickバイナリ
これらのパッケージをショートディレクトリ、できればスペースを名前に含まないものにインストールします。C:\texmfがもっとも共通のようです。これらのパッケージをパスに追加しなければならないこともあります。
これらのプログラムをインストールしたら、 コマンドプロンプトでgs、latex、dvipsとconvertコマンド(これらはWindowsの組み込みツールではありません!)が動作するのか確認をして下さい。(引数が提供されない場合コンソールから入力を取得するプログラムを停止させるためにはCtrl-Cを使わなければならないことがあることに注意して下さい)。それらが見つからない場合PATH変数を修正してオペレーションシステムを再起動します。(再起動、サービスの停止と起動が動作するまでApacheもしくはPHPがPATHを更新できない、理由がある場合です。)
Windowsでtexvcをビルドする [edit]
これはtexvcをWindowsの元で動作させるための速くて汚いハックです。
必要なものです:
- texvcソース(MediaWikiディストリビューションのmathディレクトリに含まれます)
- makeユーティリティ (例えば、MinGWに含まれるmingw32-make)
- OCamlコンパイラ
OCamlコンパイルプロセスをスキップしたい場合、次のあらかじめコンパイルされたバイナリの一つを利用できます:
- Mediawiki 1.4.5 + Cygwin ( Connellyによるビルド)
- Mediawiki 1.4.7、ネイティブのWin32バイナリ ( Fernandoによるビルド、最後のrender.mlに基づきます)
- Mediawiki 1.5.5、下記の手順によるビルド
しかしながら、これらの多くのバイナリは時代遅れになっていることにご注意して下さい。
プリコンパイルされたバイナリを利用している場合このセクションをスキップすることが出来ますが、下記で説明されるようにMath.phpとLocalsettings.phpを編集しなければなりません。
texvcをコンパイルをする前に、WindowsとUnix/Linuxとの間の違いを反映するためにいくつかのファイルを修正する必要があります(主にファイルシステムの差異です)。
math\render.mlを修正します。編集後はこのようになります。
Visual C++とMASMがインストールされている場合、makeユーティリティをmathディレクトリで実行することで最適なtexvc.exeをmakeします。Visual C++とMASMをインストールしていない場合、バイトコードバージョンのtexvc.bcをmakeしてtexvc.exeにリネームします。
texvcを利用するようにMediawikiを設定する [edit]
1. texvc実行ファイルをベースのMediaWikiディレクトリにコピーする。
2. /includes/Math.phpにおいて次の内容を置き換えます:
wfDebug( "TeX: $cmd\n" );
- with the following:
$cmd=str_replace("'","\"",$cmd);
wfDebug( "TeX: $cmd\n" );
Windowsにおいてシングルクォートはコマンドラインにおけるクォートマーカーと同じように動作しないからです。
LocalSettings.phpにおいて、texvcの機能を有効にするために、次の行をアンコメントするか追加します:
$wgUseTeX= true;
IISでMediaWikiを利用している場合すべてのファイルで"REQUEST_URI"を"SCRIPT_NAME"に置き換えます。
最終的に、LocalSettings.phpにtexvc実行ファイルのパスをwikiのrootパスに設定します:
$wgTexvc = "texvc.exe"; # texvcのバイナリの位置
どのように動作するのか議論ページで教えて下さい。
トラブルシューティング [edit]
MediaWiki 1.10.0バージョンと上記のtexvc実行ファイル(1.4.7)に関してmath.phpへの接続方法で問題に何度も遭遇しました。 cygwinもしくはocamlランタイムが要求されないので後者を選択しました。私の解決方法です:
- "$wgTmpDirectory"ディレクトリだけがtexvcがコマンドライン上で想定するtempとmathディレクトリの両方に渡されます。どういうわけかこれは生成された画像の望まない削除を引き起こすことがあります。
- math.phpは。システムにインストールされているcygwinシェルの"sh"に依存します。ただ私のシステムでは当てはまりませんでした。。
- "$wgTmpDirectory"と"$wgMathDirectory"はWindowsに関しては共通なバックスラッシュの代わりにスラッシュを含みます。これによってtexvc実行ファイルをめちゃくちゃにするらしく画像ファイルが生成されません。驚くべきことに、MediaWikiのデバッグログファイルからのまったく同じコマンドラインをシェルウィンドウにコピーしたところ、ファイルが生成されました。
- texvcの実行の後で、math.phpは"$wgTmpDirectory"でtexvcのコールと一致する画像ファイルを探します
次のステップはmath.phpを動作させるために私が必要だった変更です:
コンストラクタ:
function __construct( $tex, $params=array() ) { if ( wfIsWindows() ) { $tex = str_replace( "\n", ' ', $tex ); } $this->tex = $tex; $this->params = $params; }
"function render()"にて;
次の変更で"$wgMathDirectory"をアクセス可能にします
function render() { global $wgTmpDirectory, $wgInputEncoding;
を次のように変更します
function render() { global $wgTmpDirectory,$wgMathDirectory, $wgInputEncoding;
wgMathDirectoryへのtexvcコールのためにターゲットディレクトリを変更します
$cmd = $wgTexvc . ' ' . escapeshellarg( $wgTmpDirectory ).' '. escapeshellarg( $wgTmpDirectory ).' '. escapeshellarg( $this->tex ).' '. escapeshellarg( $wgInputEncoding );
を次のように変更します
$cmd = $wgTexvc . ' ' . escapeshellarg( $wgTmpDirectory ).' '. escapeshellarg( $wgMathDirectory ).' '. escapeshellarg( $this->tex ).' '. escapeshellarg( $wgInputEncoding );
あなたのシステムがcygwinを持っていないのであればcygwinシェルを使おうとする行をコメントアウトします。なんだかんだ言ってもcmd.exeがパーフェクトのようです。
/*if ( wfIsWindows() ) {
# cygwinシェルの範囲内で起動させます。texvcはデフォルトのシェルでshの機能を要求するからです
$cmd = 'sh -c ' . wfEscapeShellArg( $cmd );
}*/
スラッシュ問題を解決するために次の行を置き換えます
wfDebug( "TeX: $cmd\n" );
を次のように置き換えます
$cmd=str_replace("/","\\",$cmd); # replace slash by backslash for windows so texvc can work with it wfDebug( "TeX: $cmd\n" );
最後に次の行を
if( !file_exists( "$wgTmpDirectory/{$this->hash}.png" ) ) {
次のように置き換えます
if( !file_exists( "$wgMathDirectory/{$this->hash}.png" ) ) {
そして
if( !rename( "$wgTmpDirectory/{$this->hash}.png", "$hashpath/{$this->hash}.png" ) ) { return $this->_error( 'math_output_error' ); }
を次のように置き換えます
if (!file_exists("$hashpath/{$this->hash}.png")) { if( !rename( "$wgMathDirectory/{$this->hash}.png", "$hashpath/{$this->hash}.png" ) ) { return $this->_error( 'math_output_error' ); } }
生成されたファイルは保存される場所で見つかります。最終的な目的地で画像が既に存在する場合、rename()を呼び出すときにエラーは起こりません。
提案された解決方法は特定のtexvc実行ファイルが起因(おそらくはcygwinシェルが見つからないこと)の問題のための次善策です。 これらの問題を抱えないためにtexvcをコンパイルすることがクリアーな解決方法であると思われますが、texvcの修正とビルドにより深く突っ込みたくないです。
代替的な解決方法 [edit]
texvcをコンパイルすることはとても複雑であるか動作しないと思うかもしれません。ここに別の解決方法があります(LatexRenderを利用します。Benjamin Zeiss、MetaSharpのおかげで完成しました)。ここで示されているディレクトリは例なので、自分のものを使って下さい。この方法はMediaWiki 1.10.0までテストして成功しました。
インストレーション [edit]
- 完全なMikTeXをD:\wikitex\miktexにインストールして下さい(基本のものではなく、ネットワークインストーラを使用して下さい)
- ImageMagickの静的なバイナリ(依存関係が埋め込みされているもの)をD:\wikitex\imagickにインストールします(スペースのないパスにインストールしていることを確認して下さい)
- AFPL GhostScriptをD:\wikitex\ghostscriptにインストールします
- D:\wikitex\ghostscript\gs8.54\bin\gswin32c.exeをD:\wikitex\ghostscript\gs8.54\bin\gs.exeにコピーします
- (8.54はインストールしたバージョンによって異なります)
- PATH環境変数にこのパスを追加します: D:\wikitex\ghostscript\gs8.54\bin
- (繰り返しますが、8.54はインストールしたバージョンによって異なります)
- コマンドラインを開きます(スタート -> ファイル名を指定して実行 -> cmd.exe)
- 次のコマンドが動作していることを検証します:
latex dvips convert (not the microsoft convert) gs
設定 [edit]
(your wiki directory = $)
- r$/includes/Math.phpをこれで置き換えて下さい
- $/LocalSettings.phpで次の行をアンコメントするか追加して下さい:
$wgUseTeX= true;
- $/LocalSettings.phpに次のコードを追加して下さい:
#ImageMagick $wgImageMagickConvertCommand = 'D:\wikitex\imagick\convert.exe'; $wgImageMagickIdentifyCommand = 'D:\wikitex\imagick\identify.exe'; #Tex $wgLaTexCommand = 'D:\wikitex\miktex\miktex\bin\latex.exe'; $wgDvipsCommand = 'D:\wikitex\miktex\miktex\bin\dvips.exe';
- 環境変数が更新されるように再起動して下さい。サービスも同様です
検証 [edit]
- そしてほら ;) これで動作するのかサンドボックスで試して下さい。次のようなコードを入力して動作するのかプレビューのボタンを押して下さい:
<math>\sqrt{2}</math>
- "math"と"tmp"フォルダは"images"フォルダに自動的に作成されます。
トラブルシューティング [edit]
ログインしていない場合数式が表示されない問題を経験するかもしれません。その場合$/LocalSettings.php次の3行をコメントアウトします:
$wgMathPath = "{$wgUploadPath}/math";
$wgMathDirectory = "{$wgUploadDirectory}/math";
$wgTmpDirectory = "{$wgUploadDirectory}/tmp";
次のようになります:
#$wgMathPath = "{$wgUploadPath}/math";
#$wgMathDirectory = "{$wgUploadDirectory}/math";
#$wgTmpDirectory = "{$wgUploadDirectory}/tmp";
もしくは削除します。これで正常に動作します。
ウェブサーバに対してアクセスが必要なすべてのフォルダへのパーミッションを与えなければなりません。wikiにあるimageとtemporaryフォルダだけではなく、latexと他のソフトウェアをインストールした場所もです。
dvipngによる代替的な解決方法 [edit]
ファイル: math-dvipng.php
これはdvipsとgsとconvertの代わりにdvipngを利用した代替的な解決方法のハックです。ghostscriptもしくはimagemagickを要求しません。正しい画像のサイズは確認しません。dvipngパラメータは次の通りです: -q -Q 8 -T tight -bg transparent -D 120 filename.dvi -o filename.png. 8x8のアンチエイリアス処理を利用しています。dvipngは数式を少し異なった形(シャープなものではなく)でレンダーするからと8x8のアンチエイリアス処理がベストであると思われるからです(詳細についてはファイルの会話ページをご覧下さい)。フル8ビットの透過性が欲しい場合、transparentの代わりにTransparentを使用して下さい。
0) latexとdvipngがインストールされていることを確認して下さい (例えばMikTeX)
1) FROM EDIT/SOURCEからのファイルをincludes/Math.phpとしてコピーします (もちろん、oreとnowikiの行は無しです)
2) 次の行をLocalSettings.phpの最後に追加して下さい (PATHにlatex.exeとdvipng.exeがある場合はパス無しで十分です):
$wgUseTeX = true; $wgLaTexCommand = 'insert_path_here/latex.exe'; $wgDvipsCommand = 'insert_path_here/dvipng.exe';
3) 試して下さい。私のいつものテストは<math>E=mc^2</math> :)
- コメント: <math>x+y+z-q</math>のような数式がマイナス記号無しでレンダーされるという小さなエラーを持つこと以外動作しました。しかしながら、数式と</math>とじタグに間に空白を設置することで、正しく動作しました。どこかで"off by 1"パーシングエラーがあるのではないと思われます。動作確認環境はMediaWiki 1.9.3、Windows 2003 Server、 PHP 5.2.1、MiKTex 2.5、OCAML 3.09.3です(MinGWベースのネイティブなWin32ポート). Maiden taiwan 03:16, 6 March 2007 (UTC)
- コメント: MediaWiki 1.10.0でそのまま正しく動作しました。MikTeXインストーラはすべてをセットアップして基本的なMikTeKで十分でした。私が唯一必要だったことはインストールが終わった後で再起動することでした。よいものです。User:florihupf 16:30, 7/July/2007
| 言語: | English • 日本語 • русский |
|---|
