プロが教える店舗&オフィスのセキュリティ対策術

xreaで以下のようなコードを書いたPHPファイルを実行しました。

if (($mixSource = fopen("../mail".$MailID.".htm","w")) === FALSE) { print("ファイルオープンでエラーが発生しました。");}
fwrite($mixSource,$str);
fclose($mixSource);

そうしましたところ、権限が足りないというエラーが発生しました。

パーミッションを0777に設定しても、しばらくすると0705に戻っているため問い合わせると、0777は許可していないとのこと。

調査した結果、PHPをCGIとして動作させると良いらしいので、

AddHandler application/x-httpd-phpcgi .php

と書いた「.htaccess」ファイルをアップロードしました。

そうするとファイル書き込みは正常に動作するようなのですが、
今度は

session_start();

を実行すると

Warning: session_start() [function.session-start]: open(/tmp/sess_igp2b7reu7aold9btdspuc2d57, O_RDWR) failed: Permission denied (13)

というエラーとなります。

単純にxreaで、ファイル作成を行いたいだけなのですが、
方法をご存知ありませんでしょうか。

よろしくお願いいたします。

A 回答 (3件)

    • good
    • 0

あれこれ調べて実験していませんので駄レスになるかもしれませんが、



■ phpで動かす場合
public_htmlの777禁止は確かにありえます。
ところで直下じゃないと駄目なのですか?(^^;
無理を通す方法より回避する方法を取って、専用ディレクトリ作って707にすれば解決するんじゃないかと思いますが、無理な話なのでしょうか?


■ cgiで動かす場合
sesssionのエラーに関しては、ブラウザをずっと開いたままで、phpファイルからCGIに変更して実行しませんでしたか?
もしそうならブラウザを一旦閉じて再チャレンジしてみてください。

cgiで実行すると権限がユーザー名になるので、それまでのphp(権限apache)で作られたセッションファイルにアクセスできないと思いますので。
    • good
    • 0

XREAの204サーバを利用している者です.


PHPをCGIとして動かさなくてもファイルの新規作成はできたはずです.
私の環境を確認したところ
・作成されるファイルを置くディレクトリのパーミッションは777
・書き込む処理を行うPHPファイルのパーミッションは644
となっていましたのでお試しください.

この回答への補足

さっそくのご回答ありがとうございました。
非常に助かります。

「作成されるファイルを置くディレクトリのパーミッションは777」
とのことですが、public_htmlの直下にファイルを作成したい場合、
public_htmlを777にする必要があると思います。

その場合、数分すると705に自動的に戻されるようなのです。

引き続きご回答いただければ幸いです。

補足日時:2008/02/06 00:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!