**[[質問箱4/305]] [#l38df7ae]
#author("2018-03-11T20:11:18+09:00;2008-12-07T11:05:26+09:00","","")
**[[質問箱/4305]] [#l38df7ae]
|RIGHT:70|LEFT:410|c
|~カテゴリ||
|~サマリ|BBCloneでアクセス解析|
|~バージョン|PukiWiki1.4.7|
|~投稿者|[[うま]]|
|~状態|完了|
|~投稿日|&new{2008-05-11 (日) 04:33:53};|
***質問 [#tc172ddd]
[[BBClone>http://www.bbclone.de/]]からダウンロードしたBBClone 0.4.9cをpukiwikiにはめこんで、アクセス解析を試みています。導入方法は[[こちら>http://musou.s55.xrea.com/pukiwiki/index.php?PukiWiki%A5%AB%A5%B9%A5%BF%A5%DE%A5%A4%A5%BA%B5%AD%CF%BF%2FBBClone%A4%CE%C6%B3%C6%FE]]を参考にしました。~
おおむね、成功しているのですが、私のpukiwikiサイトは[[質問箱3/53]]のような編集用ページhoge.phpを入れており、BBCloneがどういうわけか、閲覧専用のindex.phpではなく、編集用のhoge.phpのアクセス解析しかしていないという状況です。~
おおむね、成功しているのですが、私のpukiwikiサイトは[[質問箱/3053]]のような編集用ページhoge.phpを入れており、BBCloneがどういうわけか、閲覧専用のindex.phpではなく、編集用のhoge.phpのアクセス解析しかしていないという状況です。~
どうすれば、閲覧専用のindex.phpを解析対象とすることができるのでしょうか?

***回答 [#oba3ecdc]
- PHP_SELFを見て、hoge.phpの場合だけ解析コードが有効になるようにするとか。 --  &new{2008-05-11 (日) 11:08:35};
-- ご回答ありがいとうございます。PHP_SELFを見るとはどういうことでしょう? -- [[うま]] &new{2008-05-11 (日) 11:25:31};
- [[$_SERVER>http://www.php.net/manual/ja/reserved.variables.server.php]]の内容から判断して、hoge.phpの場合は解析用コードを出さないようにするか、index.phpの場合だけ出すようにするかのどっちかです。REQUEST_URIの方が良いのかもしれません。条件文で挟むだけです。PHPの文法とかについて一々書くのはこのサイトの本旨と違うと思いますので、ここまでです。後は自分で調べるなり、他の方にお願いするなりしてください。 --  &new{2008-05-11 (日) 11:40:07};
- ↑の回答が理解できないので、どなたか分かる方、解説いただけませんか? まず、どのファイルに対して作業をすればいいのでしょうか? BBCloneのファイル? 編集用ページのファイル? -- [[うま]] &new{2008-05-11 (日) 12:15:22};
- うまさんの環境が分からないので推測ですが、bbcloneのvar/内はhttpd 実行ユーザーが書き込み可能なパーミッションになってますよネ ?((.htaccess以外のファイルです)) -- [[hirokasa]] &new{2008-05-11 (日) 17:53:05};
-- hirokasaさん、ありがとうございます。var/内は.htaccessを644、他を606に設定しています。varフォルダそのものは、あるサイトで777に設定するようにとあったので、その通りにしています。 -- [[うま]] &new{2008-05-12 (月) 01:22:04};
- 家のdebian test環境でBBClone 0.4.9cをセットアップしてみましたが特に問題はなかったですねぇ。但し、var/内の*.incと*.phpは666にしましたが。 -- [[hirokasa]] &new{2008-05-12 (月) 22:03:42};

pukiwiki.ini.phpは~
 if (! defined('PKWK_READONLY'))
 	define('PKWK_READONLY', 1); // 0 or 1
 if (! defined('PKWK_SAFE_MODE'))
 	define('PKWK_SAFE_MODE', 1);
index.phpはデフォルト~
hoge.phpは~
 <?php
 // PukiWiki - Yet another WikiWikiWeb clone.
 // $Id: hoge.php,v 1.00 2008/05/12 22:00:00 hoge Exp $
 // Copyright (C) 2004-2005 PukiWiki Developers Team
 // License: GPL v2 or (at your option) any later version
 
 /////////////////////////////////////////////////
 define('PKWK_SAFE_MODE', 0);
 define('PKWK_READONLY', 0);
 /////////////////////////////////////////////////
 // Error reporting
 
 // error_reporting(0): // Nothing
 error_reporting(E_ERROR | E_PARSE); // Avoid E_WARNING, E_NOTICE, etc
 // error_reporting(E_ALL);
 
 /////////////////////////////////////////////////
 // Directory definition
 // (Ended with a slash like '../path/to/pkwk/', or '')
 define('DATA_HOME',	'');
 define('LIB_DIR',	'lib/');
 
 /////////////////////////////////////////////////
 require(LIB_DIR . 'pukiwiki.php');
 ?>
 
pukiwiki.phpは~
L30あたり~
 $useragent
  = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
 if (! defined('DATA_HOME')) define('DATA_HOME', '');
最後~
 // Output
 catbody($title, $page, $body);
 $ua = 'HTTP_USER_AGENT';
 ${$ua} = $useragent;
 $_SERVER[$ua] = $useragent;
 $HTTP_SERVER_VARS[$ua] = $useragent;
 $ua = $useragent;
 define("_BBC_PAGE_NAME", $page);
 define("_BBCLONE_DIR", "../../bbclone/");
 define("COUNTER", _BBCLONE_DIR."mark_page.php");
 if (is_readable(COUNTER)) include_once(COUNTER);
 exit;
 ?>

bbcloneのconfig.phpは~
 $BBC_MAINSITE = "http://test.com/pukiwiki/";
-- hirokasaさん、ご丁寧にありがとうございます。しかし、hirokasaさんのスクリプトと私のスクリプトの間に「ほぼ」違いは見られず、原因が分からないままです。どうして、/hoge/下でのみ解析してしまうのか…。「ほぼ違いがない」というのは、hirokasaさんのスクリプトでは、pukiwiki.phpの末尾で
  define("_BBCLONE_DIR", "../../bbclone/");
となっており、私のは[[ここ>http://musou.s55.xrea.com/pukiwiki/index.php?PukiWiki%A5%AB%A5%B9%A5%BF%A5%DE%A5%A4%A5%BA%B5%AD%CF%BF%2FBBClone%A4%CE%C6%B3%C6%FE]]にあるとおり、
  define("_BBCLONE_DIR", "../bbclone/");
です。フォルダ構造が違うのでしょうか? 私のフォルダ構造は下のとおりなのですが、特に問題はないですよね? hoge.phpはBASIC認証をかけるために、index.phpと同じディレクトリ下ではなく、/hogeディレクトリ下に置いています。-- [[うま]] &new{2008-05-14 (水) 23:20:50};

  +-index.php
  +-pukiwiki.ini.php
  +-/lib
     +-pukiwiki.php
  +-/hoge
     +-hoge.php
  +-/bbclone
     +-conf
     +-doc
     +-images
     +-language
     +-lib
- define("_BBCLONE_DIR", "../bbclone/");は''index.phpから見た/bbclone/への相対パス''ですので各人で違いますよね。 &br; 私はindex.phpとhoge.phpを同じディレクトリに置いています。 &br; そんで、apacheの方で<Files "hoge.php">~</Files>でBASIC認証をすれば良いですね。 &br; この利点は複数のPukiWikiを設置した場合、全てのhoge.phpがBASIC認証の対象になりますので、簡単だと考えました。 -- [[hirokasa]] &new{2008-05-15 (木) 08:53:39};
-- ということは、私のディレクトリ構造の場合であれば、私の define("_BBCLONE_DIR", "../../bbclone/");も正しいはずですよね。/hoge/ディレクトリ下にのみ反応してしまう原因、何が考えられそうでしょうか? -- [[うま]] &new{2008-05-16 (金) 22:03:13};
- _BBCLONE_DIRがindex.phpからの相対パスに設定されてなくhoge.phpからのパスになっているのが原因と言いたかったのですが。。。 -- [[hirokasa]] &new{2008-05-16 (金) 22:19:30};
-- うまさんのディレクトリ構造ではindex.phpからのアクセスをアクセス解析する場合、 &br; define("_BBCLONE_DIR", "./bbclone/");或いはdefine("_BBCLONE_DIR", "bbclone/");となり、 &br; hoge.phpからのアクセスをアクセス解析する場合、define("_BBCLONE_DIR", "../bbclone/");となりますよね。 -- [[hirokasa]] &new{2008-05-16 (金) 22:26:22};
-- だから・・・と言うか私の考えではどちらのアクセス解析も欲しいと思い、index.phpとhoge.phpを同じディレクトリに置き、 &br; <Files "hoge.php">~</Files>でBASIC認証をすれば良いと↑に書いたつもりです。 -- [[hirokasa]] &new{2008-05-16 (金) 22:32:06};
- ご指摘のとおり、bbcloneへのパス表記が誤っていて、これを直すと解決しました。ありがとうございました。 -- [[うま]] &new{2008-05-18 (日) 23:32:12};
-- 宜しければ状態を質問から完了にしておいて下さい。 -- [[hirokasa]] &new{2008-05-18 (日) 23:50:57};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.039 sec.

OSDN