自宅サーバー構築メモ/PukiWiki


目的 paraedit

現在は

 public_html (ホームディレクトリ)
    |
    +--  index.php
    +--  pukiwiki.php
    |
    +--  attach         777	添付ファイル格納ディレクトリ
    +--  backup         777	バックアップファイル格納ディレクトリ
    +--  cache          777	キャッシュファイル格納ディレクトリ
    +--  counter        777	カウンタファイル格納ディレクトリ
    +--  diff           777	差分ファイル格納ディレクトリ
    +--  image          755	画像ファイル
    +--  image/face     755 	(画像ファイル)フェイスマーク  
    +--  lib            755	ライブラリ
    +--  plugin         755	プラグイン
    +--  skin           755	スキン、CSS、JavaScirptファイル
    |     |
    |     +--  *.css.php
    |     +--  *.skin.php
    |
    +--  trackback      777	TrackBackファイル格納ディレクトリ
    +--  wiki           777	データの格納ディレクトリ

となっている。index.phpのディレクトリを公開すると、アクセス制限をかけない限り、その他すべてのファイルが公開されてしまう。なので、構成を

 (public_html/..)
    |
    +--  public_html (ホームディレクトリ)
    |     |
    |     +--  index.php
    |     +--  skin
    |     |     |
    |     |     +--  *.css.php
    |     +--  image
    +--  pukiwiki.php
    |
    +--  attach         777	添付ファイル格納ディレクトリ
    +--  backup         777	バックアップファイル格納ディレクトリ
    +--  cache          777	キャッシュファイル格納ディレクトリ
    +--  counter        777	カウンタファイル格納ディレクトリ
    +--  diff           777	差分ファイル格納ディレクトリ
    +--  image/face     755 	(画像ファイル)フェイスマーク  
    +--  lib            755	ライブラリ
    +--  plugin         755	プラグイン
    +--  skin           755	スキン、CSS、JavaScirptファイル
    |     |
    |     +--  *.skin.php
    |
    +--  trackback      777	TrackBackファイル格納ディレクトリ
    +--  wiki           777	データの格納ディレクトリ

とすることにより、indexのみを公開すれば、その他のファイルを直接見られる心配がなくなる。

デバッグ paraedit

index.phpをindex/index.phpとして、

- define('DATA_HOME',	'');
+ define('DATA_HOME',	'../');
- define('LIB_DIR',	'/lib/');
+ define('LIB_DIR',	'../lib/');

これだけで良くてもいいはずなのだが、いくつか問題があった。

index.php paraedit

define('DATA_HOME',	'../');
define('PUKIWIKI_HOME', '');
define('LIB_DIR',	PUKIWIKI_HOME . 'lib/');

として、データ(バージョン共通)とその他処理部とを、DATA_HOMEとPUKIWIKI_HOMEとして分離。これによってデータ部共通で処理部を別々に設ける等可能になる。

pukiwiki.ini.php paraedit

現在は修正済みの様だが、default.ini.phpでのSKIN_FILEの指定に、DATA_HOMEが二重に使用されている。pukiwiki.ini.phpにて

- define('SKIN_DIR', DATA_HOME . 'skin/');
+ define('SKIN_DIR', 'skin/');

とする。ついでに

- define('IMAGE_DIR', DATA_HOME . 'image/');
+ define('IMAGE_DIR', 'image/');

も。

paraedit関連 paraedit

lib/pukiwiki.php paraedit

paraeditを入れている場合。指示によってはDATA_HOMEが入っていない。

- include_once('plugin/paraedit.inc.php');
+ include_once(PLUGIN_DIR . 'paraedit.inc.php');

これよりも

- include_once('plugin/paraedit.inc.php');
+ exist_plugin('paraedit');

とするべきかな。

lib/pukiwiki.php paraedit

-   $post["msg"] = _plugin_paraedit_parse_postmsg($post["msg_before"], 
+   if(isset($post["msg"]))
+   {
+	 $post["msg"] = _plugin_paraedit_parse_postmsg($post["msg_before"], $post["msg"], $post["msg_after"]);
+}

pukiwiki.skin.php paraedit

-    <div id="body"><?php include_once 'plugin/paraedit.inc.php'; echo _plugin_paraedit_mkeditlink($body); ?></div>
+    <div id="body"><?php include_once PLUGIN_DIR . 'paraedit.inc.php'; echo _plugin_paraedit_mkeditlink($body); ?></div>

ここも

-    <div id="body"><?php include_once 'plugin/paraedit.inc.php'; echo _plugin_paraedit_mkeditlink($body); ?></div>
+    <div id="body"><?php exist_plugin('paraedit.inc.php'); echo _plugin_paraedit_mkeditlink($body); ?></div>

か。

init.php paraedit

UA関連部 paraedit

- define('UA_INI_FILE', DATA_HOME . UA_PROFILE . '.ini.php');
+ define('UA_INI_FILE', PUKIWIKI_HOME . UA_PROFILE . '.ini.php');

デバッグ paraedit

頭の方に

+ global $HTTP_SERVER_VARS;

が必要では?

default.ini.php paraedit

- if (defined('TDIARY_THEME')) {
-	define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'tdiary.skin.php');
- } else {
-	define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'pukiwiki.skin.php');
+ if (defined('TDIARY_THEME')) {
+	define('SKIN_FILE', SKIN_DIR . 'tdiary.skin.php');
+ } else {
+	define('SKIN_FILE', SKIN_DIR . 'pukiwiki.skin.php');
}

keitai.ini.php paraedit

- define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'keitai.skin.php');
+ define('SKIN_FILE', SKIN_DIR . 'keitai.skin.php');

lib/convert_html.php paraedit

pukiwiki.dev:BugTrack2/146

return new xxxx

$_ret_object = & new xxxx
return $_ret_object

とする。

誤っていた情報 paraedit

以前はこう記載していた。

$_ret_object = new xxxx
return $_ret_object

しかしこうするとphp5等では動くがphp4では

Fatal error:  Call to a member function on a non-object in ...../lib/convert_html.php on line 51

となってしまう。

c.f. plus:BugTrack/130


トップ 編集凍結差分バックアップ添付複製名前変更リロード 新規一覧 単語検索 最終更新  ヘルプ  最終更新のRSS
Last-modified: 2008-02-06 (水) 22:56:40 (3033d)