
サーバー(リモート): 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ファイルを「読むだけ」というのが、
どのような動作なのか、よく分からなかったもので。。。
どうぞ、よろしくお願い致します。
(レスポンスは確実に致します。)
No.1ベストアンサー
- 回答日時:
XREAサーバの場合、phpはモジュールとして動作するのではなかったですかね(CGIとして動かす方法もあったハズですが、そういう細工はされていませんよね)。
であれば、phpスクリプトを実行するユーザーは「Apache」です。つまりファイルのowner(ftpユーザー)とは別の権限であり、「other」です。phpスクリプトで読み書きするファイルは606である必要がありますし、ファイルを作成・削除するような場合にはディレクトリが707でないといけません。
suExecなどで「ownerの権限で動作する」のか「Apache(other)の権限で動作する」のかによって、データファイル(ディレクトリ)のパーミッションが変わるだけです。
phpスクリプトなどは「読めればいい」だけなので、どんな設定のサーバでも604 or 644にしますから違いはありません。
なおgroupなんて「設定しない」ので気にする必要はありません(汗
回答をありがとうございます。
(CGI版ではなく、モジュール版で動かしています。)
>つまりファイルのowner(ftpユーザー)とは別の権限であり、「other」です。
すみません、ここの意味がよく分かりませんでした。(>。<)。。
自分、グループ、他人、
で言うと、Apacheは、他人なのでしょうか?
他人がphpスクリプトを実行しているわけですね?
じゃぁ、その場合、自分とは誰なのでしょう?
その自分というのが、phpスクリプトを実行する状況についても、
併せて教えて欲しいなと思います。
どう考えても、いつだってApache経由でしか、
phpスクリプトは実行できないと思うのです。
つまり、phpスクリプトを実行するのは毎回、
Apacheになるということでしょうか。
(↑かなり混乱していますでしょ。笑)
>groupなんて「設定しない」ので
設定しない とは、誰がでしょうか?
レンタルサーバー利用者個人が、ということでしょうか?
それとも、サーバーの運営者側が、かな。。?
いずれにしても、groupの所は、「0」で良さそうですね。。?
またよろしければ、どうか教えて下さい。(笑)
No.2
- 回答日時:
>じゃぁ、その場合、自分とは誰なのでしょう?
phpスクリプトのownerは「ftpユーザー」です。ご自分のftpアカウントですね(でないとftpでファイル操作が出来ませんから)。
>その自分というのが、phpスクリプトを実行する状況についても、
>併せて教えて欲しいなと思います。
CGIで動作するサーバ(+suExec)ではApacheではなくftpユーザーの権限で実行します。なので604とかのパーミッションのままでもファイルの読み書きが可能です。ownerの権限ですからね。そういうレンタルサーバもいくつかあります。さくらがそうだったと思いますし、ロリポップもphp5に切り替えるときにCGIになったハズです。
XREAサーバでも、.htaccessでCGI動作にする設定があります(下記URL参照)。
http://sb.xrea.com/showthread.php?t=10744
回答をありがとうございます。
>ご自分のftpアカウントですね(でないとftpでファイル操作が出来ませんから)。
なるほど、とてもよく分かりました。
>CGIで動作するサーバ(+suExec)ではApacheではなくftpユーザーの権限で実行します。
こちらも大変勉強になりました。
>XREAサーバでも、.htaccessでCGI動作にする設定
こちらも、ありがとうございます。
(先日、そちらのページを参考に、CGI版にしようとしたのですが、
上手く行かず断念しましたw)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- UNIX・Linux ファイル・フォルダーの削除方法 2 2022/05/19 14:04
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- Windows 10 指定したファイルを任意の範囲のディレクトリ内に上書き保存したい 1 2022/11/24 10:42
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpinfoの内容が見れない
-
PHPでフォルダ選択ダイアログを...
-
【file_exists】ファイルが存在...
-
htmlspecialcharsが機能してい...
-
「include()」関数の使い方につ...
-
PHPで、エラーがない場合のみ画...
-
PHPで吐き出した画像にリンクを...
-
フォントの色を変えるには?
-
findfirst("*",&ffblk,FA_DIREC...
-
xamppというWebサーバを使用し...
-
ロリポップのサーバでのPEARイ...
-
Borland C++ Builder
-
さくらサーバーでsessionが使え...
-
phpで時間を増やしていくにはど...
-
.phpのファイルを開けない!
-
SSI される .inc ファイル内に ...
-
PHP8を使うと、大量のWarningが...
-
タイマー機能を使って指定時間...
-
ジュエリー店の4℃
-
PHPでOut of memoryのエラー解...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.phpと.incファイルの違いはな...
-
【file_exists】ファイルが存在...
-
.phpファイルが、表示されない
-
session_start()でwarningが表...
-
サーバー間のファイルの移動(コ...
-
URLが.PHPってどういう...
-
apacheで拡張子を省略してアク...
-
PHPを使ってのサーバ上ファイル...
-
file(), file_get_contents(), ...
-
「temp.ppd」という添付ファイル
-
コマンドプロンプト エラー
-
fputs()はfwrite()のエイリアス...
-
use と requireの違いは?
-
PHPでフォルダ選択ダイアログを...
-
バイナリーデータをGIFで表示さ...
-
Xamppでindex.phpだけしか表示...
-
PHPファイルの中身が見られるこ...
-
sqlite_open、SQLite3::open
-
HTMLに埋め込んだPHPがうまく出...
-
phpでgifアニメかどうかチェッ...
おすすめ情報