phpが内部でアクセスするフォルダのパーミッション

このQ&Aのポイント
  • レンタルサーバーを試用中ですが、phpからデータフォルダにアクセスしようとしています。
  • データフォルダのアクセス権限に関して問題があり、706では正しく動作せず、707に設定する必要があります。
  • また、phpがアクセスするフォルダにも実行権限を与える必要があるかもしれません。サーバーはセーフモードで動作しています。
回答を見る
  • ベストアンサー

phpが内部でアクセスするフォルダのパーミッション

とあるレンタルサーバーを試用中なのですが IDとサブドメインが気に入ったものが利用できそうなので そのまま利用したいと考えています。 (他も試せといわれればそうですが、あまり個人情報あちこちの業者に書き込みたくないので) 契約しないとサーバーの質問掲示板を利用できないのでこちらに質問します。 他のサーバーでも同じなのかと? / | -public_html/ -data/ -public_html/においたphpから データフォルダにアクセスしようと思っています。 data/ は カウンタも置いているため ファイルに書き込みをするため phpからの 書き込みも許可にします。 data/ のアクセス権が 706(読み書き可)だと 意図通りうごきません。 707にしていると ローカルで試験した通りの意図した動作をします。 (ソースコードは長いのでここにはかけませんが) data/ には phpは置いていません。 phpがアクセスする(書き込みをする)フォルダにも 実行権を与えていないと動かない物でしょうか? (おそらく カウンタを書き込むときにエラーでとまっていると思います。) (書き込むファイルには書き込み許可しています。) ---------------------------------------- 試用中のサーバーは phpはセーフモードで動作していると書いてありました。

noname#13325
noname#13325
  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

ファイルの実行権に当たるものがフォルダではアクセス権になります そのためアクセス可のフォルダのパーミッションは普通1,3,5,7のいずれかを使います(3を使うことはほとんどないですが)。 パーミッションを絞りたければ701でも動くと思います。 この仕様はどのサーバも同じです。

noname#13325
質問者

お礼

701でも 動きました ファイルがないときは生成するようにしているので フォルダの書き込み を与えてないとファイルができないので 703か707にしてないと都合が悪いみたいです。 コントロール画面で フォルダの場合も 実行って書いてあったのでよくわからなかったのですが 実行権でなく、フォルダ内へのアクセス許可なんですね。 動かない理由が納得できました。 ありがとうございました。 m(_ _)m

関連するQ&A

  • パーミッションの考え方。

    サーバー(リモート): XREAのレンタルサーバー(Linux系) テストサーバー(ローカル): Windows版XAMPP (Version: 1.8.1) FTPソフト: FFFTP DB: SQLite3 ----- 使用するディレクトリ、ファイルのパーミッションの設定のしかたがよく分からず、 困っています。 使用するファイル、ディレクトリは以下の通りです。 phpスクリプトファイル(3種類) (1)全ての人からウェブブラウザ経由でアクセスされて動く --- a1 (2)phpスクリプトから呼ばれた時にのみ使われる --- a2 (3)管理者のみがアクセス --- a3 DBファイル(.sqlite3) --- b1 画像ファイル --- c1 <位置関係(Document Root を基準に書かせてもらいます。)> Document Root --- a1.php Document Root --- sub --- a2.php Document Root --- admin --- a3.php Document Root --- db --- b1.sqlite3 Document Root --- img --- c1.jpg 上記のような場合、 (ディレクトリ) sub admin db img (ファイル) a1.php a2.php a3.php b1.sqlite3 c1.jpg これら、4つのディレクトリと、5つのファイルは、 それぞれ、具体的には、どのようにパーミッションの設定をしたらよろしいでしょうか。 (考え方も含め、ご教示頂けますと助かります。) それと、 パーミッションの話で出てきます、 「自分」、「グループ」、「他人」 とは、一般的に、 レンタルサーバー(特に知りたいのはXREAの場合。)においては、 それぞれ具体的には誰を指しますでしょうか? (「グループ」に属すユーザというのは誰のことなのでしょうか?  もし存在しないという場合には、「グループ」のユーザの権限は、  すべて「0」でも大丈夫でしょうか。) また、細かい話にはなりますが、 あるユーザに、DBファイルへの書き込み権限を与え、その一方で、 そのDBファイルへの書き込みを実際に実行するPHPスクリプトファイルの 実行権限を与えない、なんていう場合には事実上、 そのユーザは、「そのDBファイルへの書き込みはできない」 ということになりますでしょうか。 また、phpファイルを「読む」 と、「実行する」では、 動作上、どのような違いがあるのでしょうか。 phpファイルを「読むだけ」というのが、 どのような動作なのか、よく分からなかったもので。。。 どうぞ、よろしくお願い致します。 (レスポンスは確実に致します。)

    • ベストアンサー
    • PHP
  • 共有フォルダーのアクセス者

    教えて下さい。 各サーバの共有されているフォルダーのアクセス利用者の一覧を 作成しようとしているのですが"net share" や"cacls"では フォルダーのプロパティで言うところの 『セキュリティー』-【アクセス者】の表示がされて 『共有』-【アクセス許可】されている人の分までが表示されません。 『共有』の【アクセス許可】されている人を表示させるにはどういう コマンドにすればよろしいのでしょうか? 共有フォルダーが多数ある為、ファイルとして出力したいのですが。 OSはWindows2000を使用しております。

  • 【PHP】アクセス過多でファイル書き込み失敗時ならどうすれば?

    PHP初心者です。現在ファイル書き込みについて勉強しています。 アクセスの多いサイトの場合、アクセスカウンターや書き込みなど、重なる場合一体どうするのでしょうか? 検索してみましたが意外とみつかりません。 単純に何度かリトライすればいいのか、それとも他に一般的な方法があるのか気になります。 PHPを理解してる方、常識的な方法をよろしくお願いいたします。 *使用レンタルサーバーはPHP4.4.4です。

    • ベストアンサー
    • PHP
  • Windowsアクセス許可が正常に稼働しない

    フォルダーの中身のエクセル等のファイルの書き込みや変更はできて、削除はできない設定にしたいと思っています。 フォルダーがあるのは同じネットワーク内のWindowsNTサーバーになります。 ユーザーはXP PROを使用しています。 http://www.teppi.com/solution/file_mgmt/008_filing_win_acl03.htm ↑のサイトを参考にし、試してみたのですが上手くいきません。 フォルダのスキャン/ファイルの実行 ● フォルダの一覧/データの読み取り ● 属性の読み取り ● 拡張属性の読み取り ● ファイルの作成/データの書き込み ● フォルダの作成/データの追加 ● 属性の書込み ● 拡張属性の書込み ● サブフォルダとファイルの削除 削除 ● アクセス許可の読み取り ● アクセス許可の変更 所有権の取得 ↑にすると、書き込み、変更、削除すべて出来ます。 フォルダのスキャン/ファイルの実行 ● フォルダの一覧/データの読み取り ● 属性の読み取り ● 拡張属性の読み取り ● ファイルの作成/データの書き込み ● フォルダの作成/データの追加 ● 属性の書込み ● 拡張属性の書込み ● サブフォルダとファイルの削除 削除 アクセス許可の読み取り ● アクセス許可の変更 所有権の取得 ↑にすると、書き込み、変更、削除すべてできなくなります。 Windowsアクセス許可が壊れているのでしょうか? どなたか何か良い方法がないかご教授願います。m(_ _)m

  • Windows10 共有フォルダにアクセスできない

    Windows10 をバージョン2004にアップデートしました。 今まで見れていたサーバの共有フォルダにアクセスできなくなりました。 正確には、サーバのフォルダ一覧は見れますが、フォルダの中に入れなくなりました。 もちろんアクセス許可はしてあります。 サーバは、Windows Server 2016 Essentials です。 メッセージは、 \\サーバ\フォルダにアクセスできません \\サーバ\フォルダに対するアクセス許可がありません。ネットワーク管理者にアクセス許可を要求してください。 です。 対策として、Windowsの機能で「SMB 1.0/CIFS ファイル共有のサポート」を無効にして再起動するとアクセスできますが、その後、再起動やシャットダウンすると、アクセスできなくなります。 そして、「SMB 1.0/CIFS ファイル共有のサポート」を有効にして再起動すると、一時的にアクセスできるようになりますが、再起動するとまたアクセスできなくなります。 SMB関係が原因なのはなんとなくわかりますが、恒久的な対策はないでしょうか。

  • phpが動作しているフォルダで、composerを

    phpが動作しているフォルダで、composerを使用してインストールするという意味が分かりません。 下記のURLはPHPMailerを利用するまでの記事なのですが。 https://mebee.info/2020/08/04/post-13418/ このURLの説明にある、 phpmailer/phpmailerインストール 「phpが動作しているフォルダで、composerを使用してインストールします。」  とあるのですが、ここの部分のやり方が分からなくて困っています。一様、 composerをインストールし、この記事に書いてあるように、同じファイルに保存しました。PHPもApacheもダウンロードしました。 画像参考 htdocs/vendor/composerと記事に書いてある通り同じ場所に保存しています。 記事に書いてあるphpが動作しているフォルダで、composerを使用してインストールします。の下のコードは、プログラミングソフトでphpファイルを作成して保存するとう意味でしょうか? 私はXREAのサーバーを契約していて、PHPが動作する環境はあります。 記事のさらに下にある「自分の場合は、下記にインストールしました。」とありますが、どういう意味というかやり方したら良いのでしょうか? 回答よろしくお願いします。

    • ベストアンサー
    • PHP
  • パーミッションの Owner、Group、Other とは?

    パーミッションの Owner、Group、Other について「ファイル・ディレクトリの所有者」とか「そのグループ」「その他の第三者」と説明されていますが、具体的にどういう者のことか分かりません。 使用環境は以下の通りです。 ・共有レンタルサーバ(ロリポップ)利用 ・Apache2.x ・PHP5(CGI版) ・suEXECが動作している Q.1 「 Owner・Group・Other 」の違いは、ファイルやフォルダにアクセスする経路の違いのことですか? Q.2 「ファイル・ディレクトリの所有者(Owner)」とは具体的に誰を指すのでしょうか?どこからアクセスする者のことですか? Q.3 設定や環境によってApacheがOwnerになる場合があるようですが、上記環境では自分のみがOwnerと考えて問題ありませんか? Q.4 上記環境において「ファイル・ディレクトリの所有者が属しているグループ(Group)」とは、同一サーバを利用している人たちのことですか?また、ルートディレクトリが同じという意味ですか? そうだとすると共有レンタルサーバではGroupは赤の他人同士ですよね?Groupはすべて0に設定してもいいと思うのですが、上記環境ではデフォルトでフォルダは755でファイルは644になっています。なぜですか? Q.5 「その他の第三者(Other)」とは、ウェブ経由でファイルやフォルダにアクセスしてくる人のことですか? Q.6 ディレクトリに置かれたPHPファイルがファイルAに読み書き等した場合、PHPファイルは何権限でファイルAにアクセスしているのでしょうか? 尚、勘違いしている部分があれば訂正をお願いします。

  • フォルダへのアクセス権の設定方法を教えてください

    Webサーバ上のプログラムからファイルサーバへアクセスしてフォルダの作成やファイル保存をしたいのですが、フォルダへのアクセス権がないためにエラーになります。 フォルダへのアクセス権の設定方法を教えてください。 ■環境等の詳細 ■Webサーバ OS:Windows Server 2016   WORKGROUP WEB:InternetInfomationServer 10 (IIS 10) PHP:7.2.1 このサーバのPHPプログラム内からファイルサーバにある共有フォルダへアクセスして、フォルダの作成やファイルの保存を行いたい。 ■ファイルサーバ OS:Windows Server 2016   WORKGROUP このサーバ上に共有フォルダを作成している。(\\fileserver\work) Webサーバ上のIISのアプリケーションプールは 名前       :"abcdefg"(DefaultAppPoolから変更してある) .Net CLRバージョン:v4.0 マネージパイプラインモード :統合 ID        :ApplicationPoolIdentity Webサーバのタスクマネージャでw3wp.exeのユーザ名を見ると"abcdefg"になっている。 WebサーバOSにログインしてからファイルサーバ上の共有フォルダへアクセスすると問題なく閲覧・フォルダの作成・ファイルの作成ができます。 PHPのログに書かれるエラーメッセージ mkdir(): Permission denied {"userId":6,"exception":"[object] (ErrorException(code: 0): mkdir(): Permission denied at C:\\-(PHPファイルのパス)-XXXXXXX.php:60) C:\\-(PHPファイルのパス)-XXXXXXX.php(60): mkdir('\\\\\\\\fileserver\\\\work...', 511) エラーになった箇所のPHPのソースコードはmkdir("\\fileserver\work\123",0777)としてあります。 ちなみに、Webサーバ上に作成した共有フォルダには問題なくアクセスできて閲覧・フォルダの作成・ファイルの作成はできます。 (PHPプログラムのバグではないと思っています。) ネットでいくつか調べてやってみたのですが、うまくいきません。 https://technet.microsoft.com/ja-jp/library/ee886292.aspx 共有フォルダに対してIISユーザ(abcdefg)の権限が付与されていないのでは?と思い、"IIS AppPool\abcdefg"を設定したのですが、設定後に確認すると追加設定した箇所が"不明なアカウント(s-1-5-82-...)"となってしまいます。

  • HTMLとSSIが同じフォルダに無いと表示しない?

    ホームページにアクセスカウンタをつけようとしています。 表示はSSIで行うのですが、1つ問題が… 表示させたいHTMLファイルとSSI動作させるCGIが同じフォルダに無いと表示しないんです。 CGIはフォルダを整理するため「cgi-bin」の中に入れておきたいです。でも、そうすると動かなくなる(表示しなくなる)んです。 もちろんですが、サーバでのSSIの使用は許可されています。(じゃないと、同一フォルダでも動かないですよね) パスは、いくらなんでも間違えようが無いです。 フルパス(http://~)で書いてもだめです。 何か方法があるのでしょうか?

    • ベストアンサー
    • CGI
  • フォルダにアクセスできなくなりました…

    PC内臓のハードディスクに保存していたExcelのデータに直接アクセスすることができず困っております。 フォルダの中にさらにフォルダが複数あり各フォルダにExcelデータが入っているという構成です。 本日PCを起動してそのフォルダを開いたところ、中のフォルダが全て消え、空になり容量も0になっていました。 昨日まで普通にデータはあり、アクセスもできていました。 記憶をたどっていくつか思い出せるファイル名があったので、アドレスにフォルダ名を直接入力してみると開くことができ、データもちゃんとありました。 ファイルとデータはちゃんと存在しているものの、その上のフォルダからアクセスするとフォルダが表示されず空になっていて直接アクセスすることができないという状態です。 ファイル表示の問題かと思い、下記の方法は試してみましたが効果はありませんでした。 ・フォルダオプションの「すべてのファイルとフォルダを表示する」のチェックを入れる。 ・フォルダオプションの「保護された保護されたオペレーティングシステムファイルを表示しない」のチェックを外す。 通常通り表示する方法は何かございますでしょうか? よろしくお願いいたします。

専門家に質問してみよう