VPSサーバーを初めて利用しているのですが、phpを利用してファイルの生成ができません!

同じフォルダ内に「aaa.txt」という、テキストファイルを生成するプログラムなのですが、以下のようなエラーが出ています。

Warning: fopen(aaa.txt) [function.fopen]: failed to open stream: Permission denied in /var/www/vhosts/abcdefg.com/httpdocs/test.php on line 6

ソースコードはこちらです。

<?php
$filename = "aaa.txt";
//ファイル生成&書き込み
$handle = fopen( $filename, 'w');
fwrite( $handle, $honbun);
fclose( $handle );
?>

パーミッションが原因だと考え、実行ファイルがあるフォルダのパーミッションを「777」にしても実行不可でした。
普通のレンタルサーバーで、同じ実行ファイルを試したところ、「aaa.txt」が無事に生成できたのも確認しました。
これはVPS独特の症状なのでしょうか??
どこの設定を変えればいいのかわかららず困っています。

ちなみに契約しているVPSは「使えるねっと」と「ラピッドサイト」です。
どちらも試しましたが、エラーがでて実行できませんでした。

以上よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2008/07/18 20:00:30
  • 終了:2008/07/18 22:36:25

回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/07/18 20:41:38

ポイント35pt

VPSでは、セキュリティ上、パーミッション777を許可していない場合があります。


基本的なことですが、スクリプトを設置するフォルダと、データを保管するフォルダは分けてください。前者のパーミッションは705、後者は600です。

詳細は下記を参考にしてください。

id:pismo No.2

pismo回答回数91ベストアンサー獲得回数92008/07/18 21:06:04

ポイント35pt

PHPのプログラムを実行した際のカレントディレクトリに書き込み権限がないからエラーになっているんですね。

ファイル名をフルパスで記述すれば、問題ないと思います。


$filename = "/var/www/vhosts/abcdefg.com/httpdocs/aaa.txt";


と言うようにすればOKのハズです。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません