トップページ > 過去ログ > 記事閲覧
Warning:fopen() failed to open
日時: 2005/07/10 15:52
名前: 集計人
参照: http://www.usamimi.info/~shukeisho/

集計人と申します。

http://stm.on.pc1.jp/http://www.usamimi.info/~shukeisho/
へPHPサイトの移転作業をしています。

2chのスレの内容を読み込んで結果をhtml表示する
スクリプトを組んでいるのですが、
PC1と同じようにスクリプトを実行すると、警告が表示されてしまい、うまく動きません。対策が分からず、困っております。どうすればいいのでしょうか?

Warning: fopen(0fileinput1.txt) [function.fopen]: failed to open stream: Permission denied in /usr/home/shukeisho/public_html/shukei22.php on line 172

その他fwrite fclose file等のファイル操作関連の関数が警告が発生している状態です。
全メッセージ
http://www.usamimi.info/~shukeisho/warning20050710_1.html


きちんと動いた場合の実行結果はこのようになります。
http://stm.on.pc1.jp/usr/local/bin/php/shukei22.php?fName=http%3A%2F%2Fstm.on.pc1.jp%2F050622bra%2F050622bra723to1000.html&fName2=http%3A%2F%2Fstm.on.pc1.jp%2F050622bra%2F050622bra2_1to396.html&fName3=http%3A%2F%2Fstm.on.pc1.jp%2Fusr%2Flocal%2Fbin%2Fphp%2Fjisho.txt

Page: 1 |

Re: Warning:fopen() failed to ( No.1 )
日時: 2005/07/10 22:54
名前: phantom2k

fileinput1.txtのアクセス権限が適切に設定されていないだけではないでしょうか?
SuEXECが実装されているので、600か660にしてみては?
Re: Warning:fopen() failed to open ( No.2 )
日時: 2005/07/10 23:24
名前: 集計人
参照: http://www.usamimi.info/~shukeisho/

>>phantom2k
返答ありがとうございます。
属性を変えてみましたが、駄目でした。
ちなみにPC1では、すべてのファイルの属性は644です。

ちなみに0fileinput1.txtは、読み込んだスレの内容を保存するファイルなのですが、
このファイルの作成&書き込みがうまくいっていない
状態です。
Re: Warning:fopen() failed to ( No.3 )
日時: 2005/07/11 06:49
名前: kouji  <kouji-su@mth.biglobe.ne.jp>
参照: http://game.usamimi.info/

よくわからないですが、PHPのセーフモードにひっかかってるんじゃないでしょうか?
Re: Warning:fopen() failed to open ( No.4 )
日時: 2005/07/11 07:48
名前: 集計人
参照: http://www.usamimi.info/~shukeisho/

どうもです。スクリプトの書き換えを試して
みようかな。
Re: Warning:fopen() failed to open ( No.5 )
日時: 2005/07/13 02:19
名前: 集計人
参照: http://www.usamimi.info/~shukeisho/

解決しました。
fopen,fwrite,fcloseを使わない
ようにスクリプトを書き換える事で
Warningを回避できました。
ありがとうございました。
Re: Warning:fopen() failed to open ( No.6 )
日時: 2005/07/13 14:56
名前: ごりゅ  <sakura@usamimi.info>

解決してしまってからになりますが、ふと気が付いたので書き込みます。

PHPにはSuEXECを適用させる事が出来ません。
よって、実行はwwwサーバー権限で行われます。
パーミッションは、所有者、グループ、その他
に分けられていますが、この場合
所有者=集計人さん本人
グループ=usamimi.infoのユーザー
その他=その他のユーザー(wwwサーバー権限含む
になります。

つまり書き込まれるファイルのパーミッションは
666などが妥当です。
また、PHPのセーフモードは、ファイルを書き込む際
書き込まれるファイルの所有者、グループを確認し、アカウントの所有者と同一であることを確認しています。
<実行時も同じ
故にパーミッションなどは見ていません。
これによって、他のアカウントのPHPを自分のアカウントから実行させたり書き換えたり出来ないようにしています。

セーフモードで影響を受ける関数一覧
http://php.s3.to/man/features.safe-mode.functions.html

既に時遅し><
Re: Warning:fopen() failed to open ( No.7 )
日時: 2005/07/13 22:22
名前: 集計人
参照: http://www.usamimi.info/~shukeisho/

>>ごりゅ
対応ありがとうございます。
パーミッション666でちゃんと動きますね。

fwrite廃止バージョンはなんか動きが鈍いし、
結果表示が怪しい時があるので、
従来のバージョンを使うことにします。

Page: 1 |