人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpについて

レンタルサーバで、例えばあるディレクトリにファイルを生成しようとする際、
そのディレクトリのパーミッションが707でないと生成できないサーバもあれば、
パーミッションに関係なくできるサーバもありますが、
これをあらかじめ確認する方法を教えてください。

よろしくお願いします。

●質問者: worldtravel
●カテゴリ:ウェブ制作
✍キーワード:PHP サーバ ディレクトリ パーミッション ファイル
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● emu2929
●26ポイント

質問の主旨がよくわからないのですが、

phpスクリプトでファイルを作成するようなロジックを書いた際、

作成されるファイルのパーミッションはどうなるの?

と、言う質問でしょうか?


上記の様な質問だと仮定しての回答ですが、

サーバのOSがlinuxやunixだと仮定すると、

それぞれのユーザにumask値という値があります。

コマンドで

$ umask

と入力すると

0022

のように4桁の数値が表示されるます。

一番左の1桁については別途調べてもらうとして、

左3桁の数値がデフォルトパーミッションからマスクされたものが

そのユーザのデフォルトのパーミッションになります。

仮にapacheユーザのumaskが0022として、

ファイルの場合デフォルトパーミッション666から

022を引いて644がapacheユーザのデフォルトパーミッションに

なります。


全然求められている回答ではないかもしれませんが、

参考になれば幸いです。


参考:

http://www.stackasterisk.jp/tech/engineer/permission01_02.jsp

◎質問者からの返答

ありがとうございます。

せっかく教えていただいたのに申し訳ありません。

ディレクトリのパーミッションが000でもphpからファイルを生成できるサーバもあれば、707や777にしておかないとファイルを生成できないサーバもあるのですが、そのようなサーバの設定をphpinfo()のような感じで見ることはできないかなと思っています。

php自体も同じで 705、755などとしないと動かないサーバもあれば

そうでないサーバもあります。

その設定をレンタルサーバを借りる自分が確認できないのかなと思っております。

よろしくお願いします。


2 ● palo
●25ポイント

サーバの apache の実行ユーザと、対象ディレクトリのディレクトリ所有者が一致していれば、

ディレクトリのパーミッションが700でファイルが生成できるはずです。

違っていれば、707でないと生成できないのでしょう。

apache の実行ユーザは、phpinfo() の apache2handler - User/Group で確認できます。

◎質問者からの返答

ありがとうございます。


3 ● emu2929
●25ポイント

>ディレクトリのパーミッションが000でもphpからファイルを生成できるサーバもあれば、707や777にしておかないとファイルを生成できないサーバもあるのですが、


上記の内容をみると、

そもそもパーミッションとはなんぞやということを理解されていないように

思えます。

要するに#2の方が書いておられるように、apacheの実行ユーザとディレクトリのオーナーが

同じか否かです。

共有サーバだとその辺の設定はサーバ会社によりますが、

専用サーバだとSSH等でログインし、設定を変えることでapacheの実行ユーザを設定することも

できると思います。


>php自体も同じで 705、755などとしないと動かないサーバもあれば

>そうでないサーバもあります。


これはPHPスクリプトをCGIとして動作させているか否かによると

思われます。

CGIとして動作させているのであれば実行権限が必要なため、

755や777等のパーミッションを付与してやらないと動作しません。

これについても上記同様httpd.confやphp.iniの設定を変えることで

設定可能です。


http://blog.enjoitech.jp/article/51

◎質問者からの返答

なるほど!

ありがとうございました。


4 ● snow_leopard
●12ポイント

phpのセーフモードがオンに設定されていると、ディレクトリ作成に際して所有者権限などがうるさくチェックされます。

確認するには、

こう書かれただけのファイルをアップして、読み込ませると、apache, phpの設定が全部表示されます。

◎質問者からの返答

ありがとうございました。


5 ● snow_leopard
●12ポイント

肝心なところが表示されなかったので、

http://php5.seesaa.net/category/1633936-1.html

phpinfoのところです。

◎質問者からの返答

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ