- ベストアンサー
PHPのパーミッションの設定について
PHPのパーミッションの設定について 自分でアパッチを設定したのですが、 自分のサーバーでPHPのテストをするには サーバーと同じようにパーミッションの設定をしないといけないです。 これはどうやったら出来るんでしょうか? また、詳しくファイルの性質ごとに属性を変える基準がかいてるページは無いでしょうか? 分かる方教えていただけますか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
ANo.5です。 書き忘れていましたので補足します。 WindowsではOSでのパーミッション管理がないようです。 先に書いたFTPツールもFTPサーバーに対して行いますので、 私が利用しているXAMPPではFTPサービスとして、 「FileZilla」と言うサービスが起動しています。 あらかじめFTPの対象となるフォルダの設定をしておく必要がありますが、 そこではパーミッションに関する設定がなさそうでした。 あるのかも知れませんが英語なのでよくわかりません。 FileZillaからFTPアクセスできるフォルダを用意しておけば、 FTPツールでそのフォルダ以下のファイルやサブフォルダに対してパーミッションの設定ができます。 まとめますと、 Windowsでは、ApacheとFTPサービスとFTPツールがあればパーミッションの設定ができるのと、 PHPを実行するにはPHPのサービスが必要。 PHPとパーミッションの関係についてはよくわかりませんが、 これだけあれば、PHPも動作し、必要に応じてパーミッションの設定ができる事になります。
その他の回答 (6)
- inu2
- ベストアンサー率33% (1229/3720)
No1です 誤解を与えてしまったのであれば、私の説明の仕方が気に障ったのではないかと思います。謝罪いたします。 >パーミッションとPHPが関係ない >の意味が分からないんですが PHPを動かすためにパーミッションを変更しなくてはならない しかし、パーミッションを変更する方法は、PHPの知識や設定とはなんら関係ない という意味です。 つまり、PHPを全く知らない人でもPHPが動かないサーバーでもパーミッションという概念は存在しますし、設定も可能です。 あなたの質問が、このカテゴリ(PHP)で質問されていたため私は。 「PHPでパーミッションの変更を行えない、変更するにはPHPでどのようなコードを書けばよいのか」 という質問をしているのではないかと思った次第です。 このまま喧嘩状態ではあなたのにとって役に立たない回答のみしか投稿されない状態になっていますので、 サーバー(UNIXやLINUX)でパーミッションを変更するための方法は、Linuxカテゴリーで改めて質問しなおしてください。
- dell_OK
- ベストアンサー率13% (766/5720)
PHPのテストをされようとしている「自分のサーバー」と、「サーバーと同じようにパーミッションの設定をしないといけない」のサーバーは異なるサーバーなんですよね。 後者のサーバーと同じような設定を自分のサーバーにもされたいと言う事でよろしいでしょうか。 質問の意味を間違えていたらお許しください。 私はパーミッションの設定にはFTPツールを使用しています。 多分、FTPコマンドを実行すればできる事なのだと思いますが、FTPコマンドには詳しくないのでFTPツールを使用しています。 私の環境はWindowsでXAMPPによりApacheとPHPとFTPを動作させています。 FTPツールと言うのは「FFFTP」と言うもので、これを使うと、フォルダやファイルに対してパーミッションの設定ができます。 また、レンタルサーバーも使用していますが、レンタルサーバーのフォルダやファイルに対してもこれで設定しています。 設定方法は、対象のフォルダやファイルを右クリックして「属性変更」の画面を出して設定するだけです。 ご利用のOSはわかりませんが、どのOSでも似たようなFTPツールがあると思いますので、それを使えば簡単にできると思います。 先にも言いましたが、たぶんFTPコマンドを実行するだけだと思いますので、そのやり方がわかれば、ツールは無用かと思います。 私はFTPコマンドをどうやって実行させるのかもわかりません。 最近、パーミッションの事を知って設定したばかりなので、詳しい事も詳しくない事もまったくわかりません。 Windowsでしたら、PHPを実行させるだけなら、ApacheとPHPをインストール(XAMPPなどは利用せず)しただけで実行できました。 他のOSですと、パーミッションの設定をしないと実行させられないと言う事は知りませんでした。 ファイルタイプごとの基準属性がわかるようなホームページも探してみたのですが、見つかりませんでした。 そのような基準が何かしらありそうな気はするのですが、「実行して動かなかったら設定する」しかないかなと思って、やって学ぼうかなと思っていたところです。 素人の投稿でお役に立てなくてすみません。
- umasikajiro
- ベストアンサー率67% (545/803)
Vertrigoは Apache以外のhttpdでは有りません APACHEとMYSQL PHPが一緒にインストールされるものです。 他に同じようなパッケージとしてXAMPPというものも有ります。 それから私自身のApacheに対する理解は確かにそれほど深いものではないかもしれませんが Apache1.2の頃よりFreeBSD、Linux、Windowsにインストールして使っており 勿論インストーラーを使うばかりでなく 自分でコンパイルなどもしておりますし httpd.confの書き換えも、不便を感じないほどには設定できます。 したがってあなたに講義を受けるいわれは御座いません。
- umasikajiro
- ベストアンサー率67% (545/803)
先に、、 あんまり環境構築で苦労するようなら 今のApacheもPHPもアンインストールして Vertrigoとか入れたほうが速いかもしれませんよ。 http://japanese.osstrans.net/software/vertrigo.html 私も普通のApache+PHP手動インストールのほかにVertrigoを入れていますが PHPを動かすと言う点については、問題にならないぐらいVertrigoの方がインストール&初期設定が楽です >WINDOWS系ではパーミッションの設定は不可能なんでしょうか? 不可能ではなくて不必要です。 普通のWindows版Apache で有ればCGIを動かす場合に .cgiの属性を変更しなくても初期状態のままで動きます。 ##PHPの問題とは別にWindows上でパーミッションを設定するには ##Cygwinという物をインストールすれば出来ますが この件の場合ややこしくなるだけですね また #2の参考リンク先でPHPにはモジュール版とCGI版が有ることについて触れていますが モジュール版であればUnix系のサーバー上でも 初期状態のパーミッション(644か604)のままで動きます。 (CGI版PHPはUNIX系なら 勿論パーミッション変更が必要です) で、#2の >3. PHP はモジュール なのか CGI なのか にお答えいただいていませんが そもそもPHPをインストールするのにどういう手順でされましたか? http://www.dream-seed.com/pukiwiki/index.php?Windows%2FPHP%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB(Apache) のような手順で httpd.confを書き換えたのなら モジュール版ですし http://www.php.net/downloads.php にあるPHP 5.2.6 installer をダウンロードして インストールした場合は 途中で モジュールにするかCGIにするか聞いてきたはずです。
補足
Apache HTTP Server(アパッチ エイチティーティーピー サーバ)は、世界中でもっとも使われているWebサーバソフトウェアであり、大規模な商用サイトから自宅サーバまで幅広く利用されている。単にApacheとも称されている。 開発は、Apacheソフトウェア財団のApache HTTPサーバプロジェクトで行われている。Apacheライセンスの下でソースコードが公開および配布されており、代表的なオープンソース・ソフトウェアの一つである。 それ以外のホストサーバのソフトは設定が簡単なもののセキュリィティの甘さから敬遠される事がほとんどです。なにしろ企業が安心して使えるのですから個人でも問題ない訳なんですね。それで話は戻りますが英語の出来る方なら設定の仕方も一通り理解できるので面倒とかそういう話は出ないんですよね。つまり UNIXを使うくらいのスキルを持っている人はウィンドウズでアパッチを使うことは少ない。理解できますね?だからオープンソースは数あります
- umasikajiro
- ベストアンサー率67% (545/803)
>サーバーと同じようにパーミッションの設定をしないといけないです。 モジュールとしてお使いでしょうか? それともCGIとして動かそうとしているのでしょうか? (CGI版のPHPについては http://oshiete1.goo.ne.jp/qa4116414.html ) ・モジュール版の場合は 604でOKです。 もしアクセスしても PHP部分が動いておらず ソースを表示すると <?php phpinfo(); ?> なんてのがそのまま表示されるのであれば httpd.conf ,有効な.htaccess のどちらかに AddHandler application/x-httpd-php .php または mime-types に application/x-httpd-php .php と記述します ・CGI版の場合は拡張子を .cgi にしてパーミッションは取り合えず 755ですね ( Suexecだと700でも動く 逆に777ではエラー) 755にしても 403エラーに成る場合は httpd.conf または 有効な .htaccessで Options ExecCGI の設定が必要です CGI版の場合で ソースがそのまま表示される場合は AddHandler cgi-script .cgi また、もしWindows上のApacheならば #1さんも触れているようにパーミッションの必要は有りません (但し Cygwin上のApacheは別かもです) #### 以上を読んでも良く判らなければ 1.サーバーの OS 2. httpd のバージョン 3. PHP はモジュール なのか CGI なのか 以上を補足にお書きください
補足
ありがとうございます。 質問の仕方が悪かったのか、ピントがずれてしまい申し訳ありません。 自分のサーバーの パーミッションの設定についてです。 WINDOWS系ではパーミッションの設定は不可能なんでしょうか?
- inu2
- ベストアンサー率33% (1229/3720)
パーミッションの設定の仕方や概念は、PHPとは全く関係ないです。 書き込みや読み込み権限が無ければ正常に動作しない というだけ。 こういった権限の事をパーミッションという。 通常であれば、phpはapacheの一部として動いているわけですから、apacheの動作ユーザーに対して、パーミッションを設定する。 「パーミッション 設定」 とか検索すれば、沢山でてきますので、自分が分かりやすいサイトの説明を熟読してみてください。 >自分のサーバーでPHPのテストをするには どのようなPHPスクリプトを構築しているのか定かではありませんが、ファイルなどを書き込みなどをするようなスクリプトであれば、なにかしらのパーミッション設定を行う場合がほとんどです。 自分で構築したサーバーであれば、そのくらいの知識はお持ちかと思いますが・・・・ それとも、windowsなどの自分のPCで という意味でしたら、apacheの起動用アカウントとか特殊な設定をしてなければ、通常はパーミッション設定はしなくとも動きます。 LinuxやUnixでサーバーを構築しているのであれば、パーミッションの概念が分からずにサーバー構築できるとは到底思えないので、説明を割愛させていただきます。
補足
> 「PHPでパーミッションの変更を行えない、変更するにはPHPでどのようなコードを書けばよいのか」 という質問をしているのではないかと思った次第です。 あなたの解釈の仕方をとおされても、それは私自身が望んでないので 回答と違うとしか言えませんがよろしいですか?それもダメだというのですか?