Top > PukiWiki > 初心者 > 設定

動作環境

 PukiWikiはPHPで書かれています。日本語マルチバイト対応のPHPがインストールされている環境なら基本的にどのOS上でも動作します。できれば PHP4.3.8 以上をお使いいただけるほうが無用なトラブルを避けることができますので推奨いたします。

#toc(,tree)

設定手順

インストールする前に、PukiWikiの設定ファイルpukiwiki.ini.phpを自分の環境に合わせて書き換える必要があります。試験的にインストールする場合でも、最低限書き換えなければならない項目がありますので必ず設定してください。

 
pukiwiki.ini.php
// 編集者の名前(自由に変えてください)
$modifier = 'me';
上記のmeの部分をあなたの名前に書き換えましょう。日本語でもかまいません。
// 編集者のホームページ(自由に変えてください)
$modifierlink = 'http://example.com/';
上記のhttp://example.com/の部分をあなたのWebサイトのURLに書き換えましょう。PukiWikiを設置するURLでなくてかまいません。あなたのWebのトップページのURLにしておきましょう。
// 凍結解除用の管理者パスワード(MD5)
// pukiwiki.php?md5=pass のようにURLに入力し
// MD5にしてからどうぞ。面倒なら以下のように。
// $adminpass = md5("pass");
// 以下は pass のMD5パスワードになってます。
$adminpass = "21232f297a57a5a743894a0e4a801fc3";
上記の"21232f297a57a5a743894a0e4a801fc3"の部分を書き換えます。MD5による暗号化したパスワードを書き込む必要がありますが、とりあえずは $adminpass = md5("pass"); の形式でpassの部分を書き換えて記述しておきましょう。正式にPukiWikiを使い続けることを決めてから、MD5によって暗号化した文字列に書き換えればいいです。

以上、pukiwiki.ini.phpの中の3ヶ所の書き換えが終わったら、いよいよインストールしましょう。

  • 1.4.6

    書式が変更になっています。ご注意下さい。
    $adminpass = "{x-php-md5}21232f297a57a5a743894a0e4a801fc3";
md5ハッシュ値の出し方
echo -n 'password' | md5sum

【参考ページ】
MD5ハッシュ/パスワード暗号化Byみんなの豊明ブログ


本家ではここまでですが、この状態ですと編集画面で改行してもそれが有効になりません。
改行を有効にするには同ファイルの(pukiwiki.ini.php)

/////////////////////////////////////////////////
// Convert linebreaks into <br />
$line_break = 0;

の部分を

$line_break = 1;

の様に変更して下さい。

設置方法

以下は一例です。Webサーバーへのシェルアクセスが可能であれば、
アーカイブをそのままサーバーに転送し、サーバー上で解凍
(tar pzxf pukiwiki*.tar.gz) するだけでも動作するはずです。

  1. アーカイブを解きます。
  2. 必要に応じて設定ファイル(*.ini.php)の内容を確認します。
    *1
    *2
    *3
    *4
    * 共通設定
     全体               : pukiwiki.ini.php
     ユーザ定義         : rules.ini.php
    * エージェント別設定
     携帯電話およびPDA : keitai.ini.php
     その他             : default.ini.php
  3. アーカイブの内容をサーバに転送します。

    ファイルの転送モードについては次項を参照してください。
  4. サーバ上のファイルおよびディレクトリのパーミッションを確認します。
    ディレクトリ   パーミッション
    attach         777             添付ファイル格納ディレクトリ
    backup         777             バックアップファイル格納ディレクトリ
    cache          777             キャッシュファイル格納ディレクトリ
    counter        777             カウンタファイル格納ディレクトリ
    diff           777             差分ファイル格納ディレクトリ
    image          755             画像ファイル
    image/face     755             (画像ファイル)フェイスマーク  
    lib            755             ライブラリ
    plugin         755             プラグイン
    skin           755             スキン、CSS、JavaScirptファイル
    trackback      777             TrackBackファイル格納ディレクトリ
    wiki           777             データの格納ディレクトリ
    ファイル       パーミッション 転送モード
    *.php          644             ASCII
    *.lng          644             ASCII
    cache/*        666             ASCII
    image/*        644             BINARY
    image/face/*   644             BINARY
    lib/*          644             ASCII
    plugin/*       644             ASCII
    skin/*         644             ASCII
    wiki/*         666             ASCII
    1. また、このパーミッションは、FTP で転送される場合を想定しています。
      オーナーが適切に設定できるサイトであれば、例えば、attach が 777 である必要はありません。
      その場合は、755 などでも動きます。
    2. I18N版の最新構成は、以下の通りとなっています。
      .
      |-- attach
      |-- backup
      |-- cache
      |-- counter
      |-- diff
      |-- doc
      |   |-- en_US
      |   |-- ja_JP
      |   `-- zh_TW
      |-- image
      |   |-- face
      |   |-- face.org
      |   |-- icon
      |   |   |-- browser
      |   |   |-- cpu
      |   |   |-- flags
      |   |   |-- mime
      |   |   `-- os
      |   |-- player
      |   `-- plus
      |-- init
      |-- lib
      |   `-- ua
      |-- locale
      |   |-- bkup
      |   |-- en_US
      |   |   `-- LC_MESSAGES
      |   |-- ja_JP
      |   |   `-- LC_MESSAGES
      |   |-- ko_KR
      |   |   `-- LC_MESSAGES
      |   |-- pot
      |   |-- zh_CN
      |   |   `-- LC_MESSAGES
      |   `-- zh_TW
      |       `-- LC_MESSAGES
      |-- log
      |   |-- browse
      |   |-- download
      |   `-- update
      |-- plugin
      |   |-- code
      |   `-- qrcode
      |-- skin
      |   |-- ajax
      |   |-- css
      |   |-- greybox
      |   `-- lang
      |-- tools
      |-- trackback
      `-- wiki
      
    3. 基本的には、後述のセキュリティ対策にある構成の wiki-data 配下が 777 となり、他のディレクトリは、755 となるイメージです。これら考慮が必要なディレクトリは、Documents/Update?における各種ディレクトリの説明のサイトの固有性がとなっている箇所と一致しています。これは、PHPのプログラムから書き込む必要があるディレクトリということになります*5
  5. index.php あるいは pukiwiki.php にブラウザからアクセスします。

    必要に応じて、さらに設定やデザインを調整して下さい。

セキュリティ対策

自宅にサーバを設置している方や、サーバを自由に設定できる方には、さらにセキュリティの強化を行う対策がなされています。その方法(LinuxなどUNIX系OSを前提としています。)を解説します。

例えば、PukiWiki Plus! を展開したディレクトリ名が、1.4.5-u1-utf8 となっている場合を例にして説明を進めます。

pkwk_split.sh.txtを実行します。
(注意)後述の確認・修正箇所を参考に、必ず pkwk_split.sh.txt の内容を確認して、修正するようにして下さい。
# sh ./1.4.5-u1-utf8/tools/pkwk_split.sh.txt

すると、contentswiki-commonwiki-dataの3つの
ディレクトリができます。

.
|-- contents
|   |-- doc
|   |-- image
|   `-- skin
|-- wiki-common
|   |-- init
|   |-- lib
|   |-- locale
|   |-- plugin
|   `-- tools
`-- wiki-data
    `-- contents
        |-- attach
        |-- backup
        |-- cache
        |-- counter
        |-- diff
        |-- init
        |-- log
        |-- trackback
        `-- wiki
ディレクトリ公開/非公開用途
contents公開/var/www/html/contents などに配置し公開
wiki-common非公開プログラムなどが配置される
wiki-data非公開contentsと対(一致させた名前)のサブディレクトリ毎に、データが配置される

contents という名前は、各サイトにあわせて変更してご利用下さい。その際は、contents および、wiki-data/contents の名前を一致させて下さい。

確認・修正箇所
変更不要 の欄までの設定について、各自の環境にあわせて修正して利用下さい。
#!/bin/sh

# PukiWiki Plus! アーカイブのディレクトリ名を指定
# ** 変更が必要 **
ARC_DIR=1.4.5-u1-utf8

# Apache の稼動設定
WEB_OWNER=apache
WEB_GROUP=apache

# 共通利用分
WIKI_COMMON=wiki-common
# Sample PukiWiki Plus! Directory
# 公開するファイル
# WIKI_CONTENTS=contents
# wiki-data の下に contents($WIKI_CONTENTS) が作成される上位ディレクトリ
WIKI_DATA_DIR=wiki-data

# #####################
# #     変更不要      #
# #####################
  • 補足
    名前説明省略値
    ARC_DIRPukiWiki Plus! のソース(svnやtar玉を展開した)ディレクトリ1.4.5-u1-utf8
    WEB_OWNERApache の稼動オーナーapache
    WEB_GROUPApache の稼動グループapache

配置と設定

Web公開できるように、分割されたディレクトリの配置と、PukiWiki Plus! の設定を行います。

配置

分割されたディレクトリの3つを配置します。以下の例は、
公開用ディレクトリとして /var/www/html 配下に配置。
非公開用ディレクトリとして /var/www 配下にディレクトリを作成する場合です。

# mv contents /var/www/html
# mv wiki-common /var/www
# mv wiki-data /var/www

wiki-common と wiki-data を1つのディレクトリに束ねて、wiki/common と wiki/data として管理するのも1つの方法だと思います。

オーナの設定

Webサーバが稼動しているユーザとグループに、パーミッションをあわせてあげます。
/etc/httpd/conf/httpd.conf などで構成ファイルの確認が行えます。

# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
#  . On SCO (ODT 3) use "User nouser" and "Group nogroup".
#  . On HPUX you may not be able to use shared memory as nobody, and the
#    suggested workaround is to create a user www and use that user.
#  NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
#  when the value of (unsigned)Group is above 60000;
#  don't use Group #-1 on these systems!
#
User apache
Group apache

この例の場合は、以下のようにしてオーナを変更しておきます。

# chown -R apache:apache /var/www/html/contents
# chown -R apache:apache /var/www/wiki-common
# chown -R apache:apache /var/www/wiki-data

設定

設定は、/var/www/html/contents/index.php を変更することで行います。
pukiwiki.php も同様な設定があります。

index.php
/////////////////////////////////////////////////
// Directory definition
// (Ended with a slash like '../path/to/pkwk/', or '')
//
define('SITE_HOME',     '../../wiki-common/');
define('DATA_HOME',     '../../wiki-data/contents/');
define('LIB_DIR',       SITE_HOME . 'lib/');

これで、よりセキュリティを高めたサイトの構築が完了しました。

SELinux

  • サイトが英語表示になってしまう

    SELinuxの機能が有効になっている場合で、ポリシーが適切に設定されていないと、英語混じりの表示になることがあります。

RHEL 4.0ベース

SELinux を有効にしているサイトでは、
SourceForge.jp
にある、newrules というパッケージを使うと、暫定的なポリシーの作成が簡単に行えます。

ポリシーの作成
# cd /etc/selinux/targeted/src/policy/domains; newrules.pl -i /var/log/messages > tmp.te
ポリシーの反映
# cd /etc/selinux/targeted/src/policy; make reload
ポリシー設定の例(/etc/selinux/targeted/src/policy/domains/tmp.te)
以下の内容は、安全性を保障するものでもありませんし、推奨するものでもありません。あくまでも、稼動サイトしているサイトでの設定例を示したものです。無関係なポリシーも含んでいます。
allow httpd_sys_content_t cifs_t:filesystem { associate };
allow httpd_sys_script_t devpts_t:chr_file { getattr ioctl read write };
allow httpd_sys_script_t devpts_t:dir { search };
allow httpd_sys_script_t fixed_disk_device_t:blk_file { ioctl read };
allow httpd_sys_script_t httpd_config_t:dir { getattr search };
allow httpd_sys_script_t httpd_sys_script_exec_t:dir { add_name create read remove_name rmdir write };
allow httpd_sys_script_t httpd_sys_script_exec_t:file { append create rename setattr unlink write };
allow httpd_sys_script_t httpd_sys_script_t:capability { chown dac_override dac_read_search fowner fsetid net_admin sys_rawio };
allow httpd_sys_script_t httpd_sys_script_t:file { getattr read };
allow httpd_sys_script_t httpd_sys_script_t:netlink_route_socket { bind create getattr nlmsg_read read write };
allow httpd_sys_script_t httpd_tmp_t:file { getattr read write };
allow httpd_sys_script_t krb5_conf_t:file { getattr read write };
allow httpd_sys_script_t ld_so_cache_t:file { execute };
allow httpd_sys_script_t removable_device_t:blk_file { ioctl read };
allow httpd_sys_script_t security_t:dir { search };
allow httpd_sys_script_t selinux_config_t:dir { search };
allow httpd_sys_script_t selinux_config_t:file { getattr read };
allow httpd_sys_script_t user_home_dir_t:dir { add_name create write };
allow httpd_sys_script_t user_home_dir_t:file { create getattr read write };
allow httpd_sys_script_t user_home_t:dir { getattr search };
allow httpd_t httpd_tmp_t:file { execute };
allow httpd_t ld_so_cache_t:file { execute };
allow httpd_t locale_t:file { execute };
allow httpd_t user_home_t:dir { getattr read search add_name remove_name write };
allow httpd_t user_home_t:file { getattr read append create lock setattr unlink write };
allow httpd_t usr_t:dir { write };
allow httpd_t usr_t:file { write };
allow mnt_t cifs_t:filesystem { associate };
allow user_home_t cifs_t:filesystem { associate };
allow user_home_t tmpfs_t:filesystem { associate };
allow usr_t cifs_t:filesystem { associate };

Fedra Core 5

newrules は、audit2allow というコマンドにマージされました。
policycoreutils という RPM が必要となりますが、
ユーザレベルでのポリシー変更ができなくなりましたので、レベルを下げて利用下さい。

WikiFarm(複数Wikiの構築)

注意:自動で複数Wikiの構築ができる環境にはなっておりません。

I18Nの場合には、簡単に WikiFarmの構築が可能な体制となっています。
この場合には、前述のセキュリティ対策に示されているようなディレクトリ構成に分割することから
はじめて下さい。プログラムなどの保守が、複数Wikiが構築されていても、単一ディレクトリとなり管理を簡単にすることができます。また、スキンなどサイト固有部分が分離されますので、間違えて配置し上書きしてしまうようなことからも防げます。

.
|-- contents1
|-- contents2
|-- wiki-common
`-- wiki-data
    |-- contents1
    `-- contents2

下位ディレクトリを含めて、必要な数だけコピーしてください。

index.php
前述のセキュリティ設定の説明に加えて、DATA_HOME の箇所を設定に応じて変更してください。
/////////////////////////////////////////////////
// Directory definition
// (Ended with a slash like '../path/to/pkwk/', or '')
//
define('SITE_HOME',     '../../wiki-common/');
define('DATA_HOME',     '../../wiki-data/contents1/');
define('LIB_DIR',       SITE_HOME . 'lib/');

なお、サーバを自由に設定できる方以外がWikiFarmの構築を行う場合は、セキュリティ対策配置と設定以降の操作を行わないので、WikiFarmを構築するためのSITE_HOMEおよびDATA_HOME の箇所の設定変更は以下のようになります。--質問箱/132?

index.php
/////////////////////////////////////////////////
// Directory definition
// (Ended with a slash like '../path/to/pkwk/', or '')
//
define('SITE_HOME',     '../wiki-common/');
define('DATA_HOME',     '../wiki-data/contents1/');
define('LIB_DIR',       SITE_HOME . 'lib/');

この場合セキュリティ対策は行われないので、できるのであればセキュリティ対策に示されている手順に従ってセキュリティ対策を行ったうえでWikiFarmを立てる方がより安全です。


*1 1.11から設定ファイルが別ファイルのpukiwiki.ini.phpになりました。
*2 1.4から設定ファイルが分割されました。
*3 1.4.4から携帯電話およびPDA向けの設定ファイルが一つに集約されました。
*4 (i_mode.ini.php, jphone.ini.php の設定+αを keitai.ini.php に集約)
*5 今後、ディレクトリなどが追加された場合で、これらドキュメントの更新が追随できていない場合は、この考えとなります。

リロード   新規 編集 凍結解除 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2007-01-15 (月) 04:23:29 (4953d)