• ベストアンサー

PHPのパーミッションの設定について

PHPのパーミッションの設定について 自分でアパッチを設定したのですが、 自分のサーバーでPHPのテストをするには サーバーと同じようにパーミッションの設定をしないといけないです。 これはどうやったら出来るんでしょうか? また、詳しくファイルの性質ごとに属性を変える基準がかいてるページは無いでしょうか? 分かる方教えていただけますか?

  • PHP
  • 回答数7
  • ありがとう数8

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

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (740/5645)
回答No.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)
回答No.6

No1です 誤解を与えてしまったのであれば、私の説明の仕方が気に障ったのではないかと思います。謝罪いたします。 >パーミッションとPHPが関係ない >の意味が分からないんですが PHPを動かすためにパーミッションを変更しなくてはならない しかし、パーミッションを変更する方法は、PHPの知識や設定とはなんら関係ない という意味です。 つまり、PHPを全く知らない人でもPHPが動かないサーバーでもパーミッションという概念は存在しますし、設定も可能です。 あなたの質問が、このカテゴリ(PHP)で質問されていたため私は。 「PHPでパーミッションの変更を行えない、変更するにはPHPでどのようなコードを書けばよいのか」 という質問をしているのではないかと思った次第です。 このまま喧嘩状態ではあなたのにとって役に立たない回答のみしか投稿されない状態になっていますので、 サーバー(UNIXやLINUX)でパーミッションを変更するための方法は、Linuxカテゴリーで改めて質問しなおしてください。

hokagu
質問者

補足

> 「PHPでパーミッションの変更を行えない、変更するにはPHPでどのようなコードを書けばよいのか」 という質問をしているのではないかと思った次第です。 あなたの解釈の仕方をとおされても、それは私自身が望んでないので 回答と違うとしか言えませんがよろしいですか?それもダメだというのですか?

  • dell_OK
  • ベストアンサー率13% (740/5645)
回答No.5

PHPのテストをされようとしている「自分のサーバー」と、「サーバーと同じようにパーミッションの設定をしないといけない」のサーバーは異なるサーバーなんですよね。 後者のサーバーと同じような設定を自分のサーバーにもされたいと言う事でよろしいでしょうか。 質問の意味を間違えていたらお許しください。 私はパーミッションの設定にはFTPツールを使用しています。 多分、FTPコマンドを実行すればできる事なのだと思いますが、FTPコマンドには詳しくないのでFTPツールを使用しています。 私の環境はWindowsでXAMPPによりApacheとPHPとFTPを動作させています。 FTPツールと言うのは「FFFTP」と言うもので、これを使うと、フォルダやファイルに対してパーミッションの設定ができます。 また、レンタルサーバーも使用していますが、レンタルサーバーのフォルダやファイルに対してもこれで設定しています。 設定方法は、対象のフォルダやファイルを右クリックして「属性変更」の画面を出して設定するだけです。 ご利用のOSはわかりませんが、どのOSでも似たようなFTPツールがあると思いますので、それを使えば簡単にできると思います。 先にも言いましたが、たぶんFTPコマンドを実行するだけだと思いますので、そのやり方がわかれば、ツールは無用かと思います。 私はFTPコマンドをどうやって実行させるのかもわかりません。 最近、パーミッションの事を知って設定したばかりなので、詳しい事も詳しくない事もまったくわかりません。 Windowsでしたら、PHPを実行させるだけなら、ApacheとPHPをインストール(XAMPPなどは利用せず)しただけで実行できました。 他のOSですと、パーミッションの設定をしないと実行させられないと言う事は知りませんでした。 ファイルタイプごとの基準属性がわかるようなホームページも探してみたのですが、見つかりませんでした。 そのような基準が何かしらありそうな気はするのですが、「実行して動かなかったら設定する」しかないかなと思って、やって学ぼうかなと思っていたところです。 素人の投稿でお役に立てなくてすみません。

回答No.4

Vertrigoは Apache以外のhttpdでは有りません APACHEとMYSQL PHPが一緒にインストールされるものです。 他に同じようなパッケージとしてXAMPPというものも有ります。 それから私自身のApacheに対する理解は確かにそれほど深いものではないかもしれませんが Apache1.2の頃よりFreeBSD、Linux、Windowsにインストールして使っており 勿論インストーラーを使うばかりでなく 自分でコンパイルなどもしておりますし httpd.confの書き換えも、不便を感じないほどには設定できます。 したがってあなたに講義を受けるいわれは御座いません。

回答No.3

先に、、 あんまり環境構築で苦労するようなら 今の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にするか聞いてきたはずです。

hokagu
質問者

補足

Apache HTTP Server(アパッチ エイチティーティーピー サーバ)は、世界中でもっとも使われているWebサーバソフトウェアであり、大規模な商用サイトから自宅サーバまで幅広く利用されている。単にApacheとも称されている。 開発は、Apacheソフトウェア財団のApache HTTPサーバプロジェクトで行われている。Apacheライセンスの下でソースコードが公開および配布されており、代表的なオープンソース・ソフトウェアの一つである。 それ以外のホストサーバのソフトは設定が簡単なもののセキュリィティの甘さから敬遠される事がほとんどです。なにしろ企業が安心して使えるのですから個人でも問題ない訳なんですね。それで話は戻りますが英語の出来る方なら設定の仕方も一通り理解できるので面倒とかそういう話は出ないんですよね。つまり UNIXを使うくらいのスキルを持っている人はウィンドウズでアパッチを使うことは少ない。理解できますね?だからオープンソースは数あります

回答No.2

>サーバーと同じようにパーミッションの設定をしないといけないです。 モジュールとしてお使いでしょうか? それとも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 なのか 以上を補足にお書きください

hokagu
質問者

補足

ありがとうございます。 質問の仕方が悪かったのか、ピントがずれてしまい申し訳ありません。 自分のサーバーの パーミッションの設定についてです。 WINDOWS系ではパーミッションの設定は不可能なんでしょうか?

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

パーミッションの設定の仕方や概念は、PHPとは全く関係ないです。 書き込みや読み込み権限が無ければ正常に動作しない というだけ。 こういった権限の事をパーミッションという。 通常であれば、phpはapacheの一部として動いているわけですから、apacheの動作ユーザーに対して、パーミッションを設定する。 「パーミッション 設定」 とか検索すれば、沢山でてきますので、自分が分かりやすいサイトの説明を熟読してみてください。 >自分のサーバーでPHPのテストをするには どのようなPHPスクリプトを構築しているのか定かではありませんが、ファイルなどを書き込みなどをするようなスクリプトであれば、なにかしらのパーミッション設定を行う場合がほとんどです。 自分で構築したサーバーであれば、そのくらいの知識はお持ちかと思いますが・・・・ それとも、windowsなどの自分のPCで という意味でしたら、apacheの起動用アカウントとか特殊な設定をしてなければ、通常はパーミッション設定はしなくとも動きます。 LinuxやUnixでサーバーを構築しているのであれば、パーミッションの概念が分からずにサーバー構築できるとは到底思えないので、説明を割愛させていただきます。

関連するQ&A

  • パーミッションの設定

    質問1: 通常、フォルダ、HTMLファイル又はPHPファイルをサーバへFTPでアップロードする時は、パーミッションの設定をどのようにすればよいのでしょうか?現時点の構成では、フォルダのパーミッションが765で、全てのファイルのパーミッションが664でもサイト自体は動作はしますが、これでセキュリティ上問題ないですか? 特に「オーナー」と「グループ」のパーミッションというものが何なのだか良く理解できていません。サーバは、レンタルサーバを使用しています。「オーナー」がサーバを借りている自分ということは検討がつくのですが(オーナー=サーバを借りている人ですよね??)、いくら自分がオーナーでも自分が通常のブラウザーから自分のサイトにアクセスした場合、それが一般の人なのかそれともオーナーなのかなんて私のサイトに分かるはずもないと思います。 それでは、オーナーのパーミッションとはどのような時のために設定するのでしょうか?また、グループってだれのことですか? 質問2: ベーシック認証をかけたフォルダー内のパーミッションの設定に関する質問です。 通常、.htpasswd、.htpasswd及びベーシック認証がかかっているフォルダ内のパーミッションは765に設定して、そのフォルダ内のの全てのファイル(.htpasswd及び.htpasswdも含めて)の属性(アクセス権)は604に設定するのですよね? それとも、.htpasswd及び.htpasswdのファイルの属性を604に設定すれば、ベーシック認証がかかっているフォルダ内の他のファイルの属性は604にする必要はないのでしたっけ(664などでも良いのでしたっけ?)? よろしくお願いします。

  • PHPのパーミッションについて

    ロリポで自作PHPスクリプトを運用しています。 他のプログラムを見て、PHPなのにパーミッションが 書いてありました。 自分はそのへん(セキュリティ)が疎くて、盲点でした。 1.PHPでパーミッションを設定する必要があるか? ロリポップの場合は? 2.パーミッションを設定することで脆弱性が解消されるのか? PHPでもパーミッションを設定しないと動かないサーバもあるよう ですが、セキュリティ面についてパーミッションを設定すると 大きなプラスがあるのでしょうか?

    • ベストアンサー
    • PHP
  • akiraインターネットのパーミッション設定

    akiraインターネットとレンタルサーバー契約をしています。PHPを使ってWebアプリを作ろうとしているのですが、パーミッション設定に泣かされています。。。 ./test (707) ./test/test.php (705) ./test/test2.txt (700) というファイル構成、パーミッション設定になっています。 test.php では test2.txt が存在するかどうか、書き込み可能かどうか、パーミッションはどうなっているかを出力するようにしてみました。 ----test.php------------------------ if ( (file_exists('test2.txt') )) { print "ファイルは存在します。"; }else{ print "ファイルは存在しません。"; } if ( (is_writable('test2.txt') )) { print "書き込みできます"; }else{ print "書き込みはできません"; }   $perms=fileperms('test2.txt');   var_dump($perms);   printf("%o\n",$perms); --------------------------------- 実行すると「ファイルは存在します。書き込みはできません。int(33216) 100700」 と表示されてしまいます。たぶんパーミッションの設定が悪いのだと思いますが、どうやったら書き込みできるようになるのかよくわかりません。 akiraのFAQでは 「モジュール版の PHP をご利用される場合は拡張子を PHP4 は .php 、PHP3 は .php3 として、パーミッションを 604 に設定してください。 モジュール版の PHP スクリプトを格納するディレクトリのパーミッションは 701(または705) に設定してください。PHPスクリプトからディレクトリ内のファイルに書き込みされる場合は 707 としてください。」 という記述があるのですが、?!?!です。 http://www.akira.ne.jp/support/start.htm#4 対処法などを教えていただけないでしょうか? お手数ですがよろしくお願いします。

  • パーミッションの設定について

    初めまして、こんばんわ 今、自宅サーバーでpukiwikiを動作させています。 そこで、プラグインやユーザー認証等を使いたいのですが、 パーミッションの設定方法がよく分かりません。 pukiwikiを動作させる上で公式ページなどを参考にしましたが、 あまり要点をつかめず、迷走しております。 また、ユーザ認証などはパーミッションの設定は不要なのでしょうか? pukiwikiのパーミッションの設定方法をご指導いただいてもよろしいでしょうか? 自宅サーバーには、 Active Perl 5.8.8 Build 822 Apache HTTP Server 2.0.63 pukiwiki1.4.7 をインストールして動かしています。

    • 締切済み
    • PHP
  • 所有者apacheでパーミッション644

    PHP初心者です レンタルサーバーを使ってます 自分のサイトの更新をパソコンを使わないでもPSPのブラウザからすることができるPHPのプログラムを作っています エディタや、ファイラーのようなものはうまく作れたと思うのですが、それを使ってページを作ってそのページをFFFTPで見てみると所有者がapache、パーミッションが644になっていました。 apacheとはPHPのことですか? 644ということはapacheから書き込みができるということでしょうか? 同じサーバーを使っている人がPHPなどを使ってこのページを改ざんしたりすることができてしまったりするのでしょうか?

    • ベストアンサー
    • PHP
  • パーミッションの設定

    最近 PHP と MySQL の勉強をはじめました。 パーミッションについて教えてください。 サーバをレンタルしてPHP で MySQL に接続してデータを読み込んでいます。MySQL に接続する際の サーバ名,ユーザ名,パスワード,データベース名 は info.php という別のPHPファイルに書き込み、それを require_once(info.php) で読み込んでデータベースに接続しています。 info.php は data というディレクトリに格納していますが、セキュリティのためにパーミッションを設定したほうがいいと聞いたのですが data と info.phpのパーミッションはいくつにしたらよいのでしょうか?

    • ベストアンサー
    • PHP
  • ApacheとPHPの設定で

    Apacheの設定は「あなたの予想に反して、このページが見えているでしょうか?」と初期画面が出たのですが、PHPは「ページが表示されません」と出てしまい、 その後、http://localhost/につなげると、 Forbidden You don't have permission to access / on this server. Apache/2.0.54 (Win32) Server at localhost Port 80 と表示されました。 何がどう悪いのかわかりません。

    • 締切済み
    • PHP
  • PHPパーミッションについて

    さくらインターネットを利用してます。 マニュアルにはPHPパーミッションは ファイルパーミッション 755 または 705(どちらでも可) ディレクトリパーミッション 755 または 705(どちらでも可) とあります。ファイルパーミッションを604でも十分に問題なく、PHPが稼動します。705よりは604の方がいいと思いますが、問題がありますか?ちなみにいろいろと実行ファイルでも604でも動きます。 PERLと違ってPHPはラフなのでしょうか?

    • 締切済み
    • PHP
  • PHPのパーミッション変更の方法

    借りているサーバーが新しく移行しまして、 セキュリティの向上のため、PHP は Apache のモジュ ールとしてではなく、自動的にCGIとして動作します。 PHPが正常に動作しない場合は、PHPのパーミッションやPHPを設置しているディレクトリのパーミッションを [755] にしてお試しください。 と言われました。 使っているのはsmartFTPです。 パーミッション変更の方法を教えてください!

    • ベストアンサー
    • PHP
  • PHPとDW8の関係と設定について

    自分の持っているPHPの参考書の通りにApache2.0.59とPHP5.1.6をダウンロードして、PHPの勉強を始めようと思いました 。PHPの簡単なファイルを作成しました。開いてみると、DW8 が開きました。しかもprint 部分に関しては緑色の枠で囲まれたPHPという文字になっています。その部分はちゃんとPHPのプログラムができているのかを調べるためにブラウザで表示しようとすると、「サーバーサイドコードを含むページをプレビュ-するには、テストサーバーが必要です。テストサーバーを今すぐ指定しますか?」という文字が出てきます。しかし、DW8の参考書でこのあたりは出てこないので、どうしたら良いのかわかりません。設定の仕方とかわかる人がいましたら教えてください。

    • ベストアンサー
    • PHP

専門家に質問してみよう