製作・改造なんでもやっちゃう広くて浅い活動日誌

2017/081234567891011121314151617181920212223242526272829302017/10

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ロリポップ等、CGIとしてPHP5を動かしているサーバーなどでは、Pukiwikiから呼び出すベーシック認証が正常に動作しないために、そのままでは管理人だけ、もしくは特定の人だけがwikiを編集できるという状態に持っていけません。

そこで、閲覧用のページと編集用のページに分け、編集用のページに.htaccessでベーシック認証を設けることでどうにかしてみます。Pukiwikiのバージョンは1.4.7とし、実際に設置しているアドレスは仮にhttp://example.comとします。

まず、Pukiwikiの設定から。
pukiwiki.ini.phpをテキストエディタ等で開き、26行目付近の'PKWK_READONLY'を1にします。

define('PKWK_READONLY', 1); // 0 or 1

これにより普段アクセスする側(http://example.com もしくは http://example.com/index.php)は閲覧のみ可能、編集は不可(メニューからも隠される)となります。

次に、index.phpを同じフォルダにedit.phpというファイル名にしてコピーします。
さらに、edit.phpをテキストエディタ等で開き、適当な場所に次の一行を加えます。

define('PKWK_READONLY', 0); // 0 or 1

これにより、http://example.com/edit.phpでは誰でも編集が可能な状態になります。

次に、.htaccessを使って、edit.phpのみをベーシック認証の対象にさせます。
index.php、edit.phpがあるフォルダの.htaccessに以下を修正して加えます。
.htaccsess

AuthUserFile /edit.phpがあるフォルダの絶対パス/.htpasswd
AuthGroupFile /dev/null
AuthName "Account and Password"
AuthType Basic
<Files edit.php>
require valid-user
</Files>

最低限ファイルの絶対パスだけ直せばいいはずです。
(ちなみに、ロリポップではユーザー専用ページのアカウント情報からフルパスが見れます。)

最後に.htaccessと同じフォルダにある.htpasswdにユーザー名とパスワードの組み合わせを追記します。

パスワードは暗号化させなければなりませんが、ウェブ上のツールを使うと簡単です。
.htpasswd - Google 検索

閲覧者は普段通りhttp://example.comを使い、編集者はhttp://example.com/edit.phpで認証を受けた後、編集できるようになります。


レンタルサーバ活用ガイドレンタルサーバ活用ガイド
アヴァンテ

技術評論社
売り上げランキング : 219892

Amazonで詳しく見る
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。