Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2004-10-03 05:51:01

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_PluginFiles

プラグイン・ディレクトリ下のファイルを管理するプラグインです。管理メニューから利用できます。本家で公開されているNP_SkinFilesのプラグイン版だと考えてください。というかコードも9割くらいリユースしています。

独自の機能として,ファイルをアップロードするときに文字コードを自動的に変換できるようにしています。後,ファイルの上書きをサポートしています。

インストール方法:圧縮ファイルを解凍する際には,ディレクトリ名を使う指定にしてください。pluginfilesというサブディレクトリができます。現状はUTF-8のファイルしか用意していないので,EUC-JPの方はNP_PluginFiles.phpとpluginfiles下のindex.phpをエディタでUTF-8として読みこみEUC-JPで保存し直してください。
プラグイン本体NP_PluginFiles.phpとサブディレクトリpluginfiles全体をプラグイン・ディレクトリにアップロードしてください。後は以下の注意点をお読みください。

注意点1:パーミッション関係は結構複雑です。プラグインのディレクトリを707など,オーナー以外も書きこめるようにしてください。それから,このプラグインのアップロード後,pluginfilesというディレクトリのパーミッションも707などにしてください。PHPがセーフ・モードで動いている場合にどうしたらいいのかは作者は不明です。

注意点2:pluginfilesにテンポラリのファイルを作ります。何らかの理由で途中で失敗したときなど,そこにゴミが残る可能性があります。テンポラリ・ファイルは数字.tmpの形式になっています。それが残っていたら削除してください。

注意点3:まだアルファ版であり,バグが残っている可能性は多大です。ご理解の上,お使いください。

将来はzipの直接アップロードをサポートしたいと思っていますが,コーディングの時間が取れないため,とりあえず,その機能は保留にしています。


配布を中止しました(2006/11/26)

オフライン

#2 2004-10-14 21:35:03

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_PluginFiles

まだzipのアップロードはできていないのですが,別の強化を行いました。
このプラグインの難点はパーミッションの設定が面倒なこと。
それを避けるためにプラグインからFTPを使ってファイルを読み書きするモードを加えました。これでPHPがセーフモードで動いている場合も多分大丈夫です。ただし,多少動作が遅くなります。
このモードを使う場合はパーミッションの設定は不要です。その代わりにプラグインの設定画面でFTPにアクセスするためのパラメータを入力します。
既にお使いの方は一回削除してから再インストールしてください。

その他の強化点

  • テキスト・ファイルとして扱うファイルの拡張子を設定画面で設定するようにした。

  • BOM付きのファイルでBOMを削除できるようにした。

  • テンポラリ・ファイルをシステムのテンポラリ・ディレクトリに作るようにした。


配布を中止しました(2006/11/26)

オフライン

#3 2004-10-18 20:03:41

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_PluginFiles

zip展開機能も入れたんだけど,うちの環境では動かない…
どこかにzipサポートしているところないかなあ。
phpdevのPHPを入れ直す?(そもそも今はMySQLが壊れているから再インストールしないとつかえないし)。 :cry:  :?

オフライン

#4 2004-10-29 15:17:45

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: NP_PluginFiles

導入してみました。
非常に便利そうなのですが、環境のせいか設定のせいか、うまく動作しません。
原因として何が考えられるでしょうか。

現象:
プラグイン・ファイル管理の画面から「編集」と「アップロード」が出来ません。
その他の、「ファイル作成」「ディレクトリ作成」「リネーム」は正常に動作しています。
これは、どのファイルで試しても同じ結果となります。

したこと:
/nucleus/plugins/ディレクトリのパーミッション→707でダメだったので777にしても同じ
/nucleus/plugins/以下の各ファイルのパーミッション→707(777)になっている事を確認
ファイルはUTF-8で開き直し、EUC-JPで保存したものを使用(文字化けの無いことも確認)
プラグインの管理から「FTPモードを使う」の切替を行い、動作検証→同じ結果
  「FTPのベース・ディレクトリ(最後の/不要)」設定内容(これ以外は私が意味を取り違えていなければ間違っていないかと・・)
   :  public_html


使用サーバーではIPアドレスによるFTP接続制限をしていますが、それ以外の制限はなさそうです。
サーバーOS:Free BSD
ウェブサーバー:Apache
CPU:Intel系
PHPバージョン:4.3.8
セーフモード:オフ
最初mbstring.script_encoding = autoを設定してありましたが今は外してあります。


Attachments:
gif plugin.gif, Size: 13.76 KiB, Downloads: 953

オフライン

#5 2004-10-29 15:59:03

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_PluginFiles

cha_cya さんの発言:

現象:
プラグイン・ファイル管理の画面から「編集」と「アップロード」が出来ません。
その他の、「ファイル作成」「ディレクトリ作成」「リネーム」は正常に動作しています。
これは、どのファイルで試しても同じ結果となります。

共通するのはテンポラリ・ファイルに書き込むところですかねえ。


cha_cya さんの発言:

  「FTPのベース・ディレクトリ(最後の/不要)」設定内容(これ以外は私が意味を取り違えていなければ間違っていないかと・・)
   :  public_html

FTPモードでファイルの一覧が出ていれば,間違っていないはずです。

以下のことをFTPモードと通常モードの両方で試していただけますでしょうか。
・存在していないバイナリ・ファイル(例えばjpg)をアップロードする
・存在していないテキスト・ファイル(例えばphp)をアップロードする
・存在しているテキスト・ファイルをアップロードする
・新しいファイルを作ってそれを編集する

オフライン

#6 2004-10-29 17:10:42

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: NP_PluginFiles

FTPモードでファイルの一覧が出ていれば,間違っていないはずです。

すいません、こちら理由わからないのですが今試したら出ませんでした・・。
昨夜は出ていたような気がしたのですが、いろいろ試していたので勘違いだったかもしれません :oops:

以下のことをFTPモードと通常モードの両方で試していただけますでしょうか。

・存在していないバイナリ・ファイル(例えばjpg)をアップロードする
   →アップロードできました。
     (リネーム)  (削除)   (画像表示)  (ダウンロード) いずれも出来ています。
     もちろん画像は×になってしまいますが・・

・存在していないテキスト・ファイル(例えばphp)をアップロードする
   →アップロードできませんでした。(上で添付したのと同じ画面が表示されます)

・存在しているテキスト・ファイルをアップロードする
   →同上

・新しいファイルを作ってそれを編集する
   →同上。編集以外は可能です。

最初に書いたとおりFTPモード:オフでやっています :oops:

オフライン

#7 2004-10-29 17:50:36

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_PluginFiles

cha_cya さんの発言:

すいません、こちら理由わからないのですが今試したら出ませんでした・・。
昨夜は出ていたような気がしたのですが、いろいろ試していたので勘違いだったかもしれません :oops:

なるほど。FTPモードのディレクトリの指定ですが,例えばconfig.phpに設定してあるNucleusのディレクトリが「/home/andy/public_html/nucleus/」だとします。このディレクトリがFTPでログインしたときに「/public_html/nucleus/」として見えるとしたら「/home/andy」と設定してください。
この辺り,インストール時のように半自動化できるといいのですが,FTPでログインしたときのルートがどこになるか分からないので,ちょっと難しいです。public_htmlがあると仮定して決め打ちでデフォルト値を作ることはできますが。

cha_cya さんの発言:

・存在していないバイナリ・ファイル(例えばjpg)をアップロードする
   →アップロードできました。
     (リネーム)  (削除)   (画像表示)  (ダウンロード) いずれも出来ています。
     もちろん画像は×になってしまいますが・・

了解です。

cha_cya さんの発言:

・存在していないテキスト・ファイル(例えばphp)をアップロードする
   →アップロードできませんでした。(上で添付したのと同じ画面が表示されます)

えーと,このとき確認画面(例えば文字コードを変換するかどうか)を経由していますか?

それから,存在しているバイナリ・ファイルを上書きするとどうなりますか?

オフライン

#8 2004-10-29 20:19:07

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: NP_PluginFiles

Andy さんの発言:
cha_cya さんの発言:

すいません、こちら理由わからないのですが今試したら出ませんでした・・。
昨夜は出ていたような気がしたのですが、いろいろ試していたので勘違いだったかもしれません :oops:

なるほど。FTPモードのディレクトリの指定ですが,例えばconfig.phpに設定してあるNucleusのディレクトリが「/home/andy/public_html/nucleus/」だとします。このディレクトリがFTPでログインしたときに「/public_html/nucleus/」として見えるとしたら「/home/andy」と設定してください。

すいません、今出先なものでFTP接続制限下にあり、config.phpが見れません :oops:
最終的にはどんな環境からでも更新できるように持って行きたいのでもう少しお付き合いくださいませ・・

サーバー仕様を確認したところ、絶対パスは「/home/httpd/アカウント名」とのことでした。
私のところはpublic_html/blog/index.phpが表紙ページですので、
/home/httpd/アカウント名/public_html/blog/
にインストールされているのだと思います。ここはFTPでは
/public_html/blog/
と表示されますので、設定欄に
/home/httpd/アカウント名
と入れましたが、やはり真っ白な画面になってしまいます。
ためしに、
/home/httpd/アカウント名/public_html
としてみても同じでした :cry:

Andy さんの発言:
cha_cya さんの発言:

・存在していないテキスト・ファイル(例えばphp)をアップロードする
   →アップロードできませんでした。(上で添付したのと同じ画面が表示されます)

えーと,このとき確認画面(例えば文字コードを変換するかどうか)を経由していますか?

それから,存在しているバイナリ・ファイルを上書きするとどうなりますか?

このとき確認画面などは表示されていません。
もしかしてポップアップなのかと思い、Googleツールバーなど切ってみましたが、関係ないようでした。何か間に出るはずなんでしょうか :?:

バイナリファイルの上書きは、

現在のディレクトリ: /
_ERROR_UPLOADMOVE

という表示が出ます。ただ、リネームで名前をかぶらせると、ファイルのリネームに成功してしまいます。(1.jpgと言うファイルと2.jpgと言うファイルがあり、2.jpgを1.jpgとリネームすると、1.jpgと言う名前の2.jpgの画像1つだけになり、元の1.jpgは無くなります) この際警告などは出ません。

あと、これはお伝えしていなかったと思うのですが、ファイルのアップロードを行った際(追記:アップロード成功時)「プラグイン・ファイル管理」の下には

現在のディレクトリ: /
/home/httpd/アカウント名/public_html/blog/nucleus/plugins//

と表示されています。


なんか言われてることと違うこと試してたら教えてください。
結構抜けが多い人なので :oops:

オフライン

#9 2004-10-30 03:45:14

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_PluginFiles

cha_cya さんの発言:

/home/httpd/アカウント名
と入れましたが、やはり真っ白な画面になってしまいます。

cha_cya さんの発言:

このとき確認画面などは表示されていません。
もしかしてポップアップなのかと思い、Googleツールバーなど切ってみましたが、関係ないようでした。何か間に出るはずなんでしょうか :?:

文字コードの変換の必要がある場合などは確認が出ます。出ない場合は基本的にバイナリ・ファイルのアップロードと同じ処理(上のコメントでアップロードできたというもの)なので,失敗した理由が?です。

cha_cya さんの発言:

バイナリファイルの上書きは、

現在のディレクトリ: /
_ERROR_UPLOADMOVE

という表示が出ます。

やっぱりテンポラリ・ファイル関係があやしい感じがします。

cha_cya さんの発言:

ただ、リネームで名前をかぶらせると、ファイルのリネームに成功してしまいます。(1.jpgと言うファイルと2.jpgと言うファイルがあり、2.jpgを1.jpgとリネームすると、1.jpgと言う名前の2.jpgの画像1つだけになり、元の1.jpgは無くなります) この際警告などは出ません。

リネームはrename関数呼んでいるだけなんですけどねえ? これも要調査ですが,上の症状とは多分関係ないので,後回しにさせてください。

現在のディレクトリ: /
/home/httpd/アカウント名/public_html/blog/nucleus/plugins//

最後スラッシュが重なっているのが気になりますが,多分今の問題とは関係ないような気がします。

それで,最新版を添付しますので,それでまたお験しいただけますでしょうか。index.phpとftp.phpだけ上書きしていただければ大丈夫です。
ロジックは変えていないので現象は変わらないと思いますが,いくつかエラー・メッセージを変えています。FTPのログ表示機能も付けようと思ったのですが,やっていると朝になってしまいそうなので,また時間があるときにやります(明日は子供の運動会)。 wink


配布を中止しました(2006/11/26)

オフライン

#10 2004-10-30 04:28:23

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: NP_PluginFiles

調べれば調べるほど???が増えていきますねぇ :cry:
テンポラリ・ファイルの方だけでも解決したら糸口になりそうですが(最悪FTPモードが使えなくてもセーフモードオフだし sad

最新版でバイナリファイルの上書きを試してみました。
前回、_ERROR_UPLOADMOVEだった部分は

/var/tmp/PF_IMDBMk に移動できませんでした

という表示に変わりました。(上書きで無いアップロード時は前回と文面同じです)

テキストファイルの編集はエラーメッセージ自体表示できていないので(一番最初の添付画像と同じ状態)どうなっているのかわかりませんが。。

あとほんと、情報小出しにするつもりは無いのですがすっかり忘れていまして、関係ないかとは思いますが.htaccessファイルを/public_html/blog/nucleus/に設置しています。内容は

LayoutIgnoreURI *.html
LayoutIgnoreURI *.php

の2行だけです。
管理エリアでは広告を挿入しないようにという設定(のつもり)です。

Andy さんの発言:

明日は子供の運動会

楽しんできてください wink

オフライン

#11 2004-10-30 12:27:50

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_PluginFiles

cha_cya さんの発言:
Andy さんの発言:

明日は子供の運動会

楽しんできてください wink

雨で中止になりました。 roll

それで,やはりテンポラリ・ファイルに書き込めていない可能性が高いです。
書き込めるはずのMediaディレクトリにテンポラリを作ってみるのはどうかと考えています。具体的には
・uploadfile関数の冒頭のglobalに$DIR_MEDIAを加えてください。
・uploadfile関数の中を検索してtempnam関数の第1パラメータを$DIR_MEDIAにしてください(いくつかあります)。

これでうまくいかないかなあ…

オフライン

#12 2004-11-02 13:32:15

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: NP_PluginFiles

Andy さんの発言:

雨で中止になりました。 roll

あらら。
次回?は晴れるといいですねー(お弁当も大変だし :!:

Andy さんの発言:

それで,やはりテンポラリ・ファイルに書き込めていない可能性が高いです。
書き込めるはずのMediaディレクトリにテンポラリを作ってみるのはどうかと考えています。具体的には
・uploadfile関数の冒頭のglobalに$DIR_MEDIAを加えてください。
・uploadfile関数の中を検索してtempnam関数の第1パラメータを$DIR_MEDIAにしてください(いくつかあります)。

うーん・・global内の$DIR_MEDIAの位置を変えてみたりパラメータの確認もしてみましたが変わらないかも・・・
こうなってくるとサーバー側の設定とかその辺になってくるんですかねぇ・・・
(そもそも私の設定が間違っている可能性も :oops:

あの後いろいろ調べた限りでは他にも、
register_globalsがオフ、MySQLのlocalhost以外からの接続不可、PHPは基本的にEUC推奨などの(サーバー側の)設定もあるようですが、何か関係しているのでしょうか・・。

オフライン

#13 2004-11-22 19:35:45

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_PluginFiles

マイナー・チェンジですが,
・テンポラリ・ファイルを$DIR_MEDIAに作成するようにした
・FTPモードでのベース・ディレクトリ設定を不要にした
の2点を改良(?)したバージョンです。
これで動いてくれるといいなあ sad


配布を中止しました(2006/11/26)

オフライン

#14 2004-11-25 16:24:38

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: NP_PluginFiles

「返信が投稿されたら通知する」にチェック入れ忘れてました :oops:

何でつまづいてたのか分からないほどすっきり解決してます big_smile

ありがとうございます~

直ってないのはパスの表示だけでしょうか。今回のとは違うようですし動作に支障はないのですけど。

オフライン

#15 2006-11-26 11:07:28

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_PluginFiles

このプラグインは管理画面の脆弱性を持っています。
Katsumiさんのプラグインでも解決できないものがあるので,[size=200:1shfykka]使用を中止していただきたいと思います。
筆者が現在はこれを使っていないので更新する予定がないからです。
ご迷惑をおかけしてすみません。

オフライン

Board footer