WindowsでWebサーバを構築する

出典: Sarabande Wiki

WindowsでTrac から転送)

Windows XPでWebサーバの構築を行い、PHP+MySQLの開発環境を整える。開発支援のためにSubvesion・Trac・MediaWikiを導入する。

目次

動作確認環境

  • Windows XP
  • XAMPP1.6.3α(Apache HTTPD 2.2.4 + Openssl 0.9.8e+ MySQL 5.0.43 + PHP 5.2.3)
  • Subversion 1.4.5 & Python Binding(Apache2.2・Python2.5対応)
  • Python 2.5.1&win32all(Python for Windows extensions)
  • mod_python 3.31(Apache2.2 Python2.5対応)

同時接続数について

Windowsではライセンスにより同時接続数が制限されている。ネットワーク経由の同時接続はWindows XP Home Editionの場合は5で Windows XP Professionalの場合は同時接続数が10である。同時アクセス数を調べるには下記の人力検索はてなの記事を参照。

GnuWin32とcURL

WebアプリケーションはUnix系のOSを前提にしているのでdiff3やtarなどネイティブのWindowsには存在しないコマンドが多く存在する。GnuWin32は大量のUniz系のコマンドツールを一括導入することが出来る。cURLは各種プロトコルをサポートするライブラリでパッケージのダウンロードなどに利用される。PHP関数(PHP: CURL, Client URL Library 関数 - Manual)やMac OS Xにも導入されている。

XAMPP

よりxampp-win32-1.6.3a-installer.exeを入手してインストール。

バーチャルホスト

localhostでサブドメインを利用する場合、次のようにバーチャルホストを設定した。編集が終わったらApacheを再起動する。

httpd-vhosts.conf(C:\xampp\apache\conf\extra)

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

my.cnf

my.cnf(C:\xampp\mysql\bin)をテキストエディタで編集する。エクスプローラ上のファイル名はmyとなっていることに注意。エクスプローラから編集に移るためには右クリック→「送る」→「テキストエディタ」。編集が終わったらMySQLを再起動させる。もし再起動をさせようとしても正常に動作をせずクラッシュしてしまう場合は、設定が正しくないので再編集を行う。

キャラクタセット・照合順序

[client]
default-character-set=utf8
 
[mysqld]
default-character-set=utf8

#character-set-server = latin1
#collation-server = latin1_general_ci

[mysqldump]
default-character-set=utf8

InnoDB

トランザクションをサポートしているInnoDBストレージエンジンを有効にする。なおデフォルトのストレージエンジンはMyISAMである。

skip-innodb 
# Uncomment the following if you are using InnoDB tables 
innodb_data_home_dir = C:/xampp/mysql/data/
innodb_data_file_path = ibdata1:10M:autoextend 
innodb_log_group_home_dir = C:/xampp/mysql/data/
innodb_log_arch_dir = C:/xampp/mysql/data/

MySQLで利用できるストレージエンジンはMySQL AB :: MySQL 5.1 リファレンスマニュアル :: 13.2 サポートされたストレージエンジンを参照

php.ini

php.ini(C:\xampp\apache\bin)でディレクティブを変更することでPHPの内部動作を変えることが出来ます。ディレクティブの一覧はPHP: php.ini ディレクティブ - Manualで見ることが出来ます。php.iniはC:\xampp\phpにもありますが、こちらはコマンドライン用です。編集が終わったらApacheを再起動させます。

マルチバイトのエンコーディング

PHPで扱うマルチバイト文字のエンコーディングに関するディレクティブを設定します。

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8

mbstring.languageはmbstring で使用される言語設定(NLS)のデフォルト値、mbstring.internal_encodingは内部文字エンコーディングのデフォルト値を表します。マルチバイトのディレクティブの詳細な説明はPHP: マルチバイト文字列関数 (mbstring) - Manualで見ることが出来ます。文字のエンコーディングはiconvを通しても設定することが出来ます。

PEAR

Pythonとmod_python

Python&Python for Windows extensions(pywin32)
http://python.org/download/releases/2.5.1/ よりpython-2.5.1.msiを、http://sourceforge.net/project/showfiles.php?group_id=78018 よりpywin32-210.win32-py2.5.exeをダウンロードしてインストール。

setuptools
setuptools 様々なPythonライブラリのインストールを簡略化できる。 http://peak.telecommunity.com/dist/ez_setup.py をez_setup.pyとして保存してから

python ez_setup.py


mod_python
http://ftp.riken.jp/net/apache/httpd/modpython/win/3.3.1/

よりmod_python-3.3.1.win32-py2.5-Apache2.2.exeをダウンロードしてインストール。インストーラ中にApacheのインストール先が聞かれたら「C:\xampp\apache」を入力する。Apacheのモジュールとして読み込むためにはhttp.confに

LoadModule python_module modules/mod_python.so

を追記して再起動する。

http://localhost/xampp/phpinfo.php

のapache2handlerの項目でmod_python/3.3.1が表示されていることが確認できる。

SubverionとPythonバインディング

Subvresionが使用しているAPR(Apache Portable Runtime)はApache2.0系と2.2系では大きく異なるため、使用するApacheに対応したSubversionをインストールする必要があります。現時点(2007年8月22日)では公式サイトに配布されているSubversionのインストーラ(バージョン1.4.4)は2.0系対応です。

セットアップ

subversion ドキュメント & ファイル: Windows Apache 2.2.xよりsvn-win32-1.4.5.zipsvn-win32-1.4.5_py25.zipを入手して解凍をするとsvn-win32-1.4.5が出てくる。svn-python-1.4.5.win32-py2.5.exeからswig-バインディングを導入するのであれば、svn-win32-1.4.5_py25.zipは不要である。今後の利便を考えてそのファイルをSubversionにリネームする。コマンドで行うと以下の通り。

curl -O http://subversion.tigris.org/downloads/1.4.5-win32/apache-2.2/svn-win32-1.4.5.zip
curl -O http://subversion.tigris.org/downloads/1.4.5-win32/apache-2.2/svn-win32-1.4.5_py25.zip unzip -o svn-win32-1.4.5.zip
unzip -o svn-win32-1.4.5_py25.zip
rename svn-win32-1.4.5 Subversion

swig-bindingの導入(svn-win32-1.4.5_py25.zipによる方法)
svn-python-1.4.5.win32-py2.5.exeからインストールした場合はこの作業は不要である。svn-win32-1.4.5_py25.zipからインストールする場合はlibsvnにあるdll拡張子を持つファイルをpyd拡張子にリネームする。

cd Subversion¥python¥libsvn
ren _*.dll *.pyd

正常に作成されたか次のコマンドで確認することが出来る。

dir *.dll *.pyd /b
libsvn_swig_py-1.dll
_client.pyd
_core.pyd
_delta.pyd
_fs.pyd
_ra.pyd
_repos.pyd
_wc.pyd

svnとlibsvnのコピー
svnとlivsvn(Subversion\python\)をC:\Python\Lib\site-packagesにコピーする

mod_authzとmod_dav_svn.so

XAMPPには既にmod_authzとmod_dav_svn.soが用意されているのでこの作業は不要です。

Subversion\binにあるmod_authz_svn.soとmod_dav_svn.soをC:\xampp\apache\modulesディレクトリに、libdb44.dllをC:\xampp\apache\binディレクトリにコピーする。http.conf(apache\conf)でモジュールの読み込みを指定して再起動させる。

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<dvi class="caution"> SubvesionとApacheのバージョンが合わないために再起動をしなくなることがあります。その場合はXAMPPのインストールからやり直しになります。 </div>

Subversionの配置
通常のプログラムファイルと同様に、SubversionをC:Program Filesに配置する。

環境変数の設定
コマンドプロンプトから利用できるように環境変数を設定する。環境変数は「スタート」→「マイコンピュータ」→「システム情報を表示する」→「詳細設定」→「環境変数」→「システム環境変数」から行う。PATHは既に存在するので、既存の変数の後ろに追加する。APR_ICONV_PATHは新規作成する必要がある。編集が終わったら「OK」をクリックして設定を反映させる。

PATH
C:¥Program Files¥Subversion¥bin

APR_ICONV_PATH
C:¥Program Files¥Subversion¥iconv


Apacheによるリポジトリの公開

C:\svn\reposにリポジトリを作成する

md C:\svn
svnadmin create C:\svn\repos

Subversionの慣例に従って、trunk、tags、brachesディレクトリを作成する。

svn mkdir file://localhost/c:/trac/repos/trunk -m "trunkディレクトリを作成"
svn mkdir file://localhost/c:/trac/repos/tags -m "tagsディレクトリを作成"
svn mkdir file://localhost/c:/trac/repos/braches -m "branchesディレクトリを作成"

http.conf(apache\conf)の末尾の方にsvnリポジトリに対するLocationディレクティブを追加する。

http.conf

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
  DAV svn
  SVNParentPath "c:/svn"
</Location>

Apacheを再起動して次のURLにアクセスする。

http://localhost/svn/repos/

参考 Apache2(Windows版)でSubversionをネットワークに対応 - てんぷらメモ

TortoiseSVN

TortoiseSVNはSubversionのグラフィカルインターフェイスである。32bitであるならば、http://tortoisesvn.net/downloads から本体と言語パックをダウンロードしてインストールして再起動をする。

  • TortoiseSVN-1.4.5.10425-win32-svn-1.4.2.msi
  • LanguagePack-1.4.5.10425-win32-ja.exe


Winmerge日本語版
WinMerge 日本語版からWinMerge 2.6+-jp-1(リリース版)日本語版 インストーラをクリックしてWinMerge-2.6.0.0-jp-1-Setup.exe.zipを入手。解凍したあと、インストーラを起動させてインストール。インストール時に「TortoiseSVNと連携させる」をチェックする。インストールして再起動したあとに「設定」→「差分ビューワ」を見てWinmergeのパスが設定されていたらOK。

xdocdiff
xdocdiff -TortoiseSVNでWord, Excel, pdfのdiffを見るツール-からxdocdiff113b.exe を入手。ダブルクリックしてインストーラを起動させてインストールする。

svnserverサーバにアクセスする

svnserverをデーモンとして起動させるとTortoiseSVNのリポジトリブラウザからsvnプロトコルでソースコードを閲覧することが出来る。C:\svn\reposをローカルホストのルートにする場合は次のように--rootルートスイッチを指定する。

svnserve -d -r C:\svn\repos

この状態から何もないところで右クリックをして「TortoiseSVN」→リポジトリブラウザから次のURLを入力する。

svn://localhost

参考 TortoiseSVNマニュアルの「3.2. svnserve ベースのサーバ」

Trac

PHP関連ではsymfonyDoctrineCreoleとPropelなどが採用している。上記のPythonおよびSubverionとPythonバインディングの設定を行っていることを前提とする。

ツールの導入

Python2.5ではpysqliteが標準搭載

Python2.5からはpysqlite(およびSQLite)が標準で組み込まれているので、最新版を利用したいのでなければ別にインストールする必要がなくなった。(PySqlite - The Trac Project - Trac)

0.11dev vs 0.10

現在の開発版は0.11、安定版は0.10である。導入作業は0.11の方が少なくなっている。0.11になりclearsilver(C言語)からGeshi(Python)に置き換わり、シンタックスハイライトがSilverCityからpygmentsがデフォルトになっている。またWeb Admin プラグインがあらかじめ組み込まれている。対して0.10ではドキュメントの日本語訳がある。

0.11系の導入

Genshi(テンプレート言語)

easy_install Genshi

Pygments(オプション・シンタックスハイライト)

easy_install Pygments

MySQLdb(オプション)
デフォルトのSQLiteのかわりにSQLiteで動作させる場合。 http://sourceforge.net/project/showfiles.php?group_id=22307 よりMySQL-python-1.2.2.win32-py2.5.exeを入手してインストール。

Trac

easy_install trac

0.10系の導入

http://trac.edgewall.org/wiki/TracInstall

必須
ClearSilver
現在公式サイトでPython2.5に対応したものが配布されていないので KnowLog: Win32 binary of ClearSilver 0.10.4 for Python 2.5からClearSilver-0.10.4.win32-py2.5.zipを入手する。解凍して出てきたneo_cgi.pydとneo_cgi.pyd.md5sumをC:\Python\Lib\site-packagesにコピーする。

オプション

Docutils
http://docutils.sourceforge.net/ よりダウンロードしたdocutils-snapshot.tgzを解凍するとdocutilsが出てくる。コマンドプロンプトを立ち上げ

cd docutils
python setup.py install

SilverCity(シンタックスハイライト)
http://sourceforge.net/project/showfiles.php?group_id=45693 SilverCity-0.9.7.win32-py2.5.exeをダウンロードしてインストール。

Trac
http://www.i-act.co.jp/project/products/products.html よりtrac-0.10.4-ja-1.zipをダウンロードして解凍する。その後コマンドプロンプトで

cd trac-0.10.4-ja-1
python setup.py install

プロジェクトの作成

MySQLデータベースの作成

デフォルトのSQLiteの代わりにMySQLを使う場合はデータベースを作成する。

mysql -u root -p
CREATE DATABASE tracdb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON tracdb.* TO tracuser@localhost IDENTIFIED BY 'password';
\q

trac-adminによるプロジェクトの作成

C:\tracフォルダ内にプロジェクト以外のフォルダが存在する場合、ウェブブラウザでプロジェクトの一覧を見るときにエラーが表示されます。(tracの動作には支障ないようですが、なるべくtracフォルダ内にはprojectフォルダ以外は設置しない方が無難でしょう。)

プロジェクト用のフォルダをC:\trac\projectとします。リポジトリはWindowsでWebサーバを構築する#Apacheによるリポジトリの公開の設定を前提とします。

md C:\trac\project

trac-adminコマンドによってC:\trac\projectにプロジェクトを作成する。

trac 0.11では

trac-admin C:\trac\project initenv

trac 0.10では

python C:\Python\scripts\trac-admin c:\trac\project initenv



でウィザードを立ち上げて質問に答える。今回行った設定は以下の通りでSubversionのリポジトリ以外はデフォルト。

セットアップウィザード

以下はセットアップの間に質問される内容です。

Project Name [My Project]>

プロジェクト名を決めます。デフォルトで構いません。

Database connection string [sqlite:db/trac.db]>

データベースの接続文字列です。デフォルトはsqliteを選択しファイル名はtrac.dbとしています。trac.dbはC:\trac\project\dbに保存されます。MySQLを使う場合は

mysql://DBユーザ名:DBユーザのパスワード@localhost:3306/データベース名

Repository type [svn]>

リポジトリのタイプです。デフォルトのsvn(Subversion)を選択します。

Path to repository [/path/to/repos]> C:\svn\repos

リポジトリへのパスです。先ほどsvnadminで作成したC:\svn\reposを選択します。

Templates directory [C:\python\share\trac\templates]>

テンプレートのディレクトリです。デフォルトを選択します。

サーバのセットアップ

Apacheとmod_pythonで動かす

0.10系ではシンタックスハイライトの構文を含むwikiテキストを保存するときにコマンドプロンプトのウィンドウがたくさん立ち上がって消えるという現象に遭遇しました。tracdでは起こりませんでした。0.11devでpygments(0.11ではデフォルト)を導入したところこの現象はなくなりました。それぞれのツールがサポートしているシンタックスハイライトはhttp://trac.edgewall.org/wiki/TracSyntaxColoring で見ることが出来ます。


http://trac.localhost/からアクセスできるようにする(バーチャルホスト)

バーチャルホストで設定する方法。 httpd-vhosts.conf(C:\xampp\apache\conf\extra)

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost * >
    DocumentRoot "C:/xampp/htdocs"
    ServerName trac.localhost
    <Location />
        SetHandler mod_python
        PythonInterpreter main_interpreter
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnv "C:/trac/project"
        PythonOption TracUriRoot /
    </Location>
</VirtualHost>

DocumentRoot "C:/xampp/htdocs"を"C:/trac/project"にした場合編集・ログインが出来ませんでした。

hosts(C:\WINDOWS\system32\drivers\etc)

127.0.0.1       localhost
127.0.0.1       trac.localhost

設定が終わったらApacheを再起動してブラウザからhttp://trac.localhostにアクセスする。

参考

XAMPPで複数の仮想サイトを発行 (情報備忘録)

http://localhost/trac/からアクセスできるようにする。

http.confにtracに関するディレクティブを記述します。

LoadModule python_module modules/mod_python.so
<Location "/trac">
   SetHandler mod_python
   PythonHandler trac.web.modpython_frontend
   PythonOption TracUriRoot "/trac"
   PythonOption TracEnvParentDir c:/trac
</Location>

作業が終わりましたら、Apacheを再起動してブラウザでアクセスする。

CGIの設定でMultiViewsがあると表示されないようです。

tracdで動かす

tracdコマンドを使用することでapache無しで動作させることが出来る。tracdでtracを動作させるためには以下のコマンドを入力してブラウザで http://localhost:8000/ (もしくはhttp://127.0.0.1:8000/ )にアクセスする。

python C:\Python\scripts\tracd --port 8000 c:\trac\project

trac0.11系ではtracd.exeが作成されているので

tracd --port 8000 c:\trac\project

tracdを停止させるにはコマンドプロンプト上で「Ctrl」+「C」を押す。

CGIで動かす

非常に遅く現実的ではない。trac.cgi(C:\Python\share\trac\cgi-bin)をhtdocsにコピーする。

trac.cgiを以下のように変更する。

try:
    import os
    os.environ['TRAC_ENV'] = "C:/trac/project"
    from trac.web import cgi_frontend

ブラウザで次のURLにアクセスする。

http://localhost/trac.cgi

サイトの設定

ユーザの権限

0.11では匿名ユーザ(anonymous)で編集できなくなっている。匿名ユーザに編集権限を与えるにはtrac-adminコマンドで設定を行う。例えば、匿名ユーザにページ作成(WIKI_CREATE)、修正(WIKI_MODIFY)、削除(WIKI_DELETE)の権限を与えるには

trac-admin C:\trac\project permission add anonymous WIKI_CREATE WIKI_MODIFY WIKI_DELETE

TracPermissionsページに記載されている権限は以下の通り。

WIKI_VIEW存在するwikiページを閲覧する
WIKI_CREATE新しいwikiページを作成する
WIKI_MODIFYwikiページを変更する
WIKI_DELETE wikiページと付属物を削除する
WIKI_ADMINすべてのWIKI_*パーミッションに加えて、リードオンリーのページも管理する。

ユーザ認証

以下はmod_pythonでhttp://localhost/trac/でアクセスできる場合の設定。

http.conf

<LocationMatch "/[^/]+/login">
    AuthType Basic
    AuthName "Trac"
    AuthUserFile C:/trac/.htpasswd
    Require valid-user
</LocationMatch>

パスワードの追加

cd C:\xampp\apache\bin
htpasswd -c C:/trac/.htpasswd ユーザ名

権限の追加

trac-admin C:\trac\project permission add ユーザ名 WIKI_ADMIN

参考
Charsbar::Note - tracの管理機能をインストしてみた

trac.iniの設定

trac.ini(C:\trac\project\conf)を以下のように変更した。

日本語を使えるようにする

[trac]
default_charset = japanese.shift_jis

ヘッダのロゴのリンク先を変更

[header_logo]
link = http://localhost/trac/project/  #mod_pythonで動かす場合
#link = http://localhost/trac/ #CGIで動かす場合

CSSのカスタマイズ

CSSをカスタマイズするにはtrac.css(C:\Python\Lib\site-packages\Trac-0.11dev_r6038-py2.5.egg\trac\htdocs\css)を編集する。例えばこのサイトと同じフォントの設定をするには

body, th, td {
 /*font: normal 13px Verdana,Arial,'Bitstream Vera Sans',Helvetica,sans-serif;*/
 font-family : 'ヒラギノ角ゴ Pro W3' , 'Hiragino Kaku Gothic Pro' , "MS Pゴシック", "MS PGothic", sans-serif ;*/
}

プラグイン導入

Graphviz http://trac-hacks.org/wiki/GraphvizPlugin

インストール

cd graphvizplugin\0.9
python setup.py bdist_egg
cp dist/graphviz-0.6.6-py2.3.egg C:\trac\project\plugins

trac.ini

[graphviz]
cache_dir = C:\trac\project\cache\graphviz
cmd_path = C:\Graphviz\bin
cache_manager = yes
cache_max_size = 10000000
cache_min_size = 5000000
cache_max_count = 2000
cache_min_count = 1500

Graphvizは通常C:\Program Files\ATT\Graphviz\binにインストールされるが ファイル名に空白文字が入るために正常に動作しなかったので Graphviz\binをC:/にコピー&ペーストした。


動作の確認

{{{
#!graphviz
digraph G {Hello->World->Graphviz->Rules}
}}}

参考

SVNウェブインターフェイス

WebSVN

SubversionリポジトリをWebで表示できる。PEARのプロジェクト( http://svn.pear.php.net/ )で利用されている。 似たような製品としてViewVC( http://www.viewvc.org/ )がある。svnlookを使用するため、safe modeでは現在動作しない(install.htmlより)

SVNでダウンロードする

svn co http://websvn.tigris.org/svn/websvn/trunk/ websvn

ユーザ名はguest、パスワードは空白。

WebSVN2.0の不具合の対処
WebSVN2.0に移行すると以下のようにPEAR_Configを要求される不具合が発生する。

Fatal error: Cannot redeclare class Config in C:\xampp\php\PEAR\Config.php on line 44

対応策はinclude/setup.phpの

require_once 'config.php';

require_once dirname(__FILE__).'/config.php';

に置き換える。もしくは直接パスを書いて指定することも出来る。

require_once 'C:/xampp/htdocs/websvn/include/config.php';

config.inc
distconfig.inc(websvn/include)のコピーをconfig.incとして保存して、以下のような設定を行う。 C:\PROGRA~1C:\Program FilesのDOS形式の表示である。

$config->setServerIsWindows();

//Subversionのパス
$config->setSVNCommandPath('C:/PROGRA~1/Subversion/bin');

//書くコマンドツールのパス
$config->setDiffPath('C:/gnuwin32/bin');
$config->setEnscriptPath('C:/gnuwin32/bin');
$config->setSedPath('C:/gnuwin32/bin');
$config->setTarPath('C:/gnuwin32/bin');
$config->setGZipPath('C:/gnuwin32/bin');

$config->addRepository('リポジトリ", 'file://localhost/c:/svn/repos/');

//$config->setTemplatePath("$locwebsvnreal/templates/Standard/");
$config->setTemplatePath("$locwebsvnreal/templates/BlueGrey/");

$config->setInputEncoding('UTF-8');
$config->setContentEncoding('UTF-8');

include 'languages/japanese.inc';

動作確認

http://localhost/websvn/

にブラウザでアクセスする。

ViewVC

MediaWikiの開発チームPHPコアチームが採用している。

ダウンロード&インストール

svn co http://viewvc.tigris.org/svn/viewvc/trunk/ viewvc

ユーザ名はguest、パスワードは空。

cd viewvc
python viewvc-install

インストール先が尋ねられるので、C:\Program Files\viewvcとした。

viewvc.conf
c:/svn/reposにリポジトリを作成したとするとviewvc.conf(C:\Program Files\viewvc)の設定は以下の通り。

#cvs_roots = cvs: /home/cvsroot
svn_roots = svn: c:/svn/repos

c:/svn/reposにリポジトリを作成するには以下の通り。

md C:\svn\repos
svnadmin create C:\svn\repos

慣例的に作成されるtrunk、tags、branchesディレクトリを作成するには以下の通り。

svn mkdir file://localhost/c:/svn/repos/trunk -m "created trunk"
svn mkdir file://localhost/c:/svn/repos/tags -m "created tags"
svn mkdir file://localhost/c:/svn/repos/branches -m "created branches"

http.conf
Apacheのhttp.conf(Apache/conf)を以下のように設定して再起動する。

LoadModule python_module modules/mod_python.so

ScriptAlias /viewvc "C:/Program Files/viewvc/bin/mod_python/viewvc_mp.py"
<Location /viewvc>
AddHandler mod_python .py
PythonPath "[r'C:\\Program Files\\viewvc\\bin\\mod_python']+sys.path"
PythonHandler handler
PythonDebug On
AddDefaultCharset UTF-8
Order allow,deny
Allow from all
</Location>

アクセス
以下のURLにブラウザでアクセスする。

http://localhost/viewvc/

参考

MediaWiki

Wikipediaを筆頭に世界でもっとも記事が量産しているwikiクローン。企業の導入実績としてはAdobe LabsIntel、データベースではOracle、ブラウザ開発でMain Page - MozillaWiki、Linuxディストリビューション関連ではopenSUSEUbuntuの非公式ユーザガイド。デスクトップツールではOpenOfficeEclipseなど。

データベースの作成

wikidbデータベースとwikiuserユーザ(パスワードはpassword)を作成して、操作に必要な権限をwikiuserに付与します。

mysql -u root -p
create database wikidb;
grant create, select, insert, update, delete, alter, lock tables 
on wikidb.* to 'wikiuser'@'localhost' identified by 'password';
\q

インストール

MediaWikiをsvnコマンドでダウンロードしてmediawikiフォルダに収納します。

cd c:\xampp\htdocs
svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3 mediawiki

http://localhost/mediawiki

ブラウザでアクセスをしてインストールウィザードの作業を行って下さい。データベースの項目で「Storage Engine:InnoDB」 「Database character set:Experimental MySQL 4.1/5.0 UTF-8」を選択する。インストールウィザードが終わったら、mediawiki\configに生成されたLocalSettings.phpをmediawikiディレクトリに移動させます。

cd mediawiki\config
mv LocalSettings.php ../

LocalSettings.php

MediaWikiを参照して下さい。

AdminSettings.php

mantenanceディレクトリにあるメンテナンススクリプトを実行できるようにAdminSettings.sampleからAdminSettings.phpを作成して次のコンフィギュレーション変数を各自の環境(MySQLのユーザ名とパスワード)に合わせて設定します。

$wgDBadminuser      = 'wikiadmin';
$wgDBadminpassword  = 'adminpass';

アップデート

一定の期間が経過して新しいバージョンが公開されたときにsvn updateコマンドでアップデートします。

cd mediawiki
svn up

次にデータベースのスキーマもアップグレードします。

php maintenance/update.php --quick

以上の作業を終えたら、wikiにブラウザでアクセスをして動作を確認して下さい。

MoinMoin

FedoraUbuntuで採用されている。

MoinMoinをWindowsとmod_pythonで動作させる。MoinMoinはUbuntuの公式サイトに採用されている。

インストールとセットアップ

http://moinmoin.wikiwikiweb.de/MoinMoinDownload からmoin-1.5.8.tar.gzをダウンロードして解凍。

cd moin-1.5.8
python setup.py install

セットアップ

cd C:\
md moin\mywiki
md moin\mywiki\data
md moin\mywiki\underlay
cd C:\Python\share\moin
xcopy data C:\moin\mywiki\data /E
xcopy underlay C:\moin\mywiki\underlay /E
copy config\*.* C:\moin\mywiki\*.*
copy server\*.* C:\moin\mywiki\*.*

wikiconfig.py(C:\moin\mywiki)
詰めて書くと以下の通り。

# -*- coding: utf-8 -*-
sitename = u'Untitled Wiki'
logo_string = u'<img src="/moinwiki/common/moinmoin.png" alt="MoinMoin Logo">'
data_dir = 'C:\moin\mywiki\data'
data_underlay_dir = 'C:\moin\mywiki\underlay'
url_prefix = '/moinwiki'
language_default = 'ja'

http.conf

データディレクトリの設定

Alias /moinwiki/ "C:/Python/share/moin/htdocs/"
<Directory "C:/Python/share/moin/htdocs">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

mod_pythonの設定

LoadModule python_module modules/mod_python.so
<Location /mywiki>
    SetHandler python-program
    # Add the path of your wiki directory
    PythonPath "['C:\moin\mywiki'] + sys.path"
    PythonHandler MoinMoin.request::RequestModPy.run
</Location>

アクセス

http://localhost/mywiki/

インストール後の設定

ユーザの作成

http://localhost/mywiki/UserPreferences

スーパーユーザを追加するには

superuser = [u"スーパーユーザ名", ]

参考


まだ記事にまとめていないもの