• ベストアンサー

chmod  と 所有者apache

毎度、お世話になります。 phpでプログラムを組んでいます。 プログラム上で作成したフォルダに対しては、 ブログラム上で「chmod($dir, 0707)」を実行すると パーミッションが、「707」に変更されますが、 FTP上で新規作成したフォルダに ブログラム上で「chmod($dir, 0707)」を実行しても、 「Operation not permitted 」で出て、(権限がない?) パーミッションが、「707」に変更されません。 どうすれば、変更できますか? 参考、サーバは、ロリポップですが phpで作った場合は、所有者が apache になっています。 FTP上で新規作成した場合は、所有者はブランクです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • wp_
  • ベストアンサー率54% (132/242)
回答No.3

>これも「SAFE MODE」に関係しますが、自分でつくったフォルダ内にファイルを >作れないのですか? この状態ですと管理者からSAFE MODEを使って権限が与えられてない状態ですね。 httpd.confとphp.iniで設定されているので一般ユーザからは変更できません。 作成可能な階層なのか管理者様に問い合わせるといいかもしれません。 レンタルサーバの場合はファイル等を作成許可されている階層が指定されている場合が多いです。 // そうすることでファイルの容量制限とかを測りやすくしています。

参考URL:
http://jp2.php.net/features.safe-mode
miracle2006
質問者

お礼

ご回答、ありがとうござせいます。 自分でつくったフォルダ内にファイルを作れることが、 セキュリティ上問題があるとは、思えませんが・・・ それなら、フォルダを作ることも禁止すればいいと思います。 でも、そのサーバ会社の方針なら、仕方ありません。 先に、FTPソフトでファイルをアップロードしておき、 そのファイルを更新することにしました。

その他の回答 (2)

  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

apacheで動かすユーザとFTPでログインするユーザは別物です。 レンタルサーバですとそれぞれのユーザにそれぞれの制限をかけられるのが常です。 // 制限かけませんと同一サーバ内の別アカウントの人のファイルまで // 見れることになりますから。 php上で作成したファイルはphp上で、ftp上で作ったファイルはftp上でしか扱えないという認識でいきましょう。 FTPで作成したファイルはphp上で「読み込みは出来るけど書き込み・変更は出来ないもの」 という前提で開発を行うべきかと思います。 //別の要因も考えられなくはないですが、レンタルサーバなら単純にユーザの権限の問題だと思いますよ

miracle2006
質問者

補足

ご回答ありがとうございます。 関連する質問ですが、 今度は、別のサーバで、 PHP上でフォルダをパーミッションを707で作り、(mkdir) そのまま、 fopen() して書き込もうとすると Warning: fopen() [function.fopen]: SAFE MODE Restriction in effect. The script whose uid is 1078 is not allowed to access というメッセージができす。 $out = fopen("../$dir/a.txt", "w"); これも「SAFE MODE」に関係しますが、自分でつくったフォルダ内にファイルを 作れないのですか?

回答No.1

FTPで、作成したフォルダのパーミッションを変更すれば良いのでは? どんなFTPソフトを使用しているのかは知りませんが、 有名どころでFFFTPなどを使用しているのでしたら、 変更したいフォルダを右クリック→「属性変更」でパーミッションの変更ができます。

miracle2006
質問者

お礼

上の補足は間違いでした。変更はできます。 ただ、FTPでフォルダを作っても、書き込み権限をパーミッション設設定し忘れていた場合、スクりプト側で改めて、設定しようとプログラムを組んだのです。 では、パーミッションが「707」でない場合、変更を促すメッセージを出したのですが、パーミッションを取得する関数はありますか?

miracle2006
質問者

補足

所有者が異なるので、FTPのソフトからのパーミッションの変更もできません。

関連するQ&A