pukiwikiデータの移行

pscpを使ってwindowspukiwiki-1.4.5_1ディレクトリをサーバにuploadする。

C:\bin\putty>pscp -p -C -r -l susa c:\htdocs 192.168.10.38:/home/susa

最初やったとき、-pオプションを付け忘れたため、uploadしたファイルの日付が全て、転送した日付時刻になってしまった。ファイルの内容は変化ないが、wikiのメニューに出てくる更新日関連の内容が全部、現時点になってしまうので、よろしくない状態になってしまいました。

  • pを使ってファイルの属性(最終更新日など)を保ったままコピーしましょう。

これを/var/www/html以下にコピーし、ファイルオーナーもapacheに変更しておきます。

[root@linux38 html]# cp -pr /home/susa/htdocs/pukiwiki-1.4.5_1 ./
[root@linux38 html]# chown -R apache:apache pukiwiki-1.4.5_1/

ここまでやると、
http://192.168.10.38/pukiwiki-1.4.5_1/pukiwiki.php
にアクセスできるようになります。
ただし、こんなエラーが/var/log/httpd/errorに出てます。

[Fri Nov 03 15:27:06 2006] [alert] [client 192.168.10.23] /var/www/html/pukiwiki-1.4.5_1/.htaccess: order not allowed here

肝心のアクセス制御ファイル.htaccessの中身はこんな感じ。

[root@linux38 pukiwiki-1.4.5_1]# more .htaccess
## Access control needs 'AllowOverride Limit' at httpd.conf.

        Order allow,deny
        Deny from all


## Using zlib.output_compression per directory (via .htaccess),
## needs 'AllowOverride Options' at httpd.conf.
#php_flag zlib.output_compression On

同様のファイルがあちこちにあります。

[root@linux38 pukiwiki-1.4.5_1]# find ./ -name .htaccess
./attach/.htaccess
./backup/.htaccess
./cache/.htaccess
./counter/.htaccess
./diff/.htaccess
./lib/.htaccess
./plugin/.htaccess
./plugin/code/.htaccess
./skin/.htaccess
./trackback/.htaccess
./wiki/.htaccess
./.htaccess

これの意味は・・・


        Order allow,deny
        Deny from all

ファイルの末尾が .ini.php .lng.php .txt .gz .tgz .zipというファイルへのアクセスはどこからのものであってもdenyするよ、という意味。
で、これは、pukiwikiの設定ファイルである pukiwiki.ini.phpなどが
http://192.168.10.38/pukiwiki-1.4.5_1/pukiwiki.ini.php
とかで覗かれたりしないように、との意図。

なので削除することで

[Fri Nov 03 15:27:06 2006] [alert] [client 192.168.10.23] /var/www/html/pukiwiki-1.4.5_1/.htaccess: order not allowed here

を出なくしようなんていう安直な処置はNG。
エラーを読むと、ここの.htaccessファイルではorderを書いちゃいけない、と書いてある。

ここでは.htaccessによる対策をムダにしないため、上位の設定ファイルを修正する。

[root@linux38 pukiwiki-1.4.5_1]# more /etc/httpd/conf/httpd.conf

   Options Indexes FollowSymLinks
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#    AllowOverride None
    AllowOverride Options

    Order allow,deny
    Allow from all

全体の設定で、AllowOverride(下位の設定ファイルで設定の上書きをしていいものリスト) Optionsだけとなっているので、

     AllowOverride Options Limit

ここにLimitを加えてあげる。
httpd.confを書き換えたので、httpdを再読み込み(restartでもいいけど)

[root@linux38 pukiwiki-1.4.5_1]# /etc/init.d/httpd reload
httpd を再読み込み中:                                      [  OK  ]

すると、きちんとpukiwikiが見られるようになりました。