• ベストアンサー

PHPにおいてJAVAのWEB-INFに対応するもの

PHP4、apache2.0でWebアプリケーションを作ろうと思っているPHP初心者です。 Javaでwebアプリケーションを構築するときには、WEB-INFディレクトリにclassファイルやライブラリファイル、プロパティファイルなどを格納しますが、PHPの場合にはどのようなディレクトリ構成にするのが一般的なのでしょうか? また、classとして定義したPHPファイルを外部からのアクセス不可にするためには、apacheの.htaccessで該当ディレクトリをアクセス不可にするなど、HTTPサーバの設定で行うものなのでしょうか? ご存知の方、いらっしゃいましたらご回答よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
回答No.2

PHPでは一般的に、アクセスされて欲しくないファイルはwebroot配下に置かないのが定石になっていると思います。 PEAR、Ethna、ZendFrameworkはそれを推奨しています。Symfony、cakePHPあたりは興味なくていじってないので不明です。 それがムリなら.htaccessで制限、それもムリなら同ディレクトリに index.htmlを用意しておいてjavascriptでhistory.back()させる、とかくらいですね。 (xoopsが確かそんな事をしていた・・・)

counter_class
質問者

お礼

返事が遅くなってしまい、申し訳ありません。 回答ありがとうございます。 とりあえずは.htaccessで制限をする対応としました。

その他の回答 (1)

回答No.1

PHPにもJAVAのようにフレームワークが存在します。 PHP4で動作するフレームワークもございますので、その辺を一度調べてみてはどうでしょうか? JAVAのStrutsの概念を受け継いだフレームワークも確かあったと思います。(PHP4で動作するかは覚えていませんが) フレームワークの機能として外部からのアクセスを不可にすることもできたと思います。 有名なライブラリとしてPEARなんてものもあります。 参考までに。

counter_class
質問者

お礼

返事が遅くなってしまい、申し訳ありません。 回答ありがとうございます。 とりあえずは.htaccessで該当ディレクトリをアクセス不可に する対応を行いました。

関連するQ&A

  • TomcatのWEB-INFディレクトリ

    お世話になります。 外部から直接アクセスさせないデータを格納しているWEB-INFディレクトリ配下にweb.xmlファイルとclassesディレクトリを作成して、その配下にJavaファイルではなく、Htmlファイルを作成してTomcatをブートして、http://localhost:8080で実行させたいのですが、ポート番号8080以降のアドレスには、Javaファイルはweb.xmlファイルのServletをコールして、<url-pattern>タグで定義できますが、Htmlファイルはどのように定義すれば良いですか? また、別の方法はございますか? 以上 宜しくお願いします。

  • scalaやjavaをwebアプリとして動かす

    scalaやjavaをwebアプリケーションとして、本番で運用するのに、よく使われるサーバーは何になりますか? PHPなら、apache+mod_phpやnginx+php-fpmですが、javaやscalaは何で動かすのがいいでしょうか。 tomcatやjettyなどあるようですが、触ったことないのでこの界隈の標準が分かりません。 詳しい方色々教えてください。よろしくお願いいたします。

  • クラスにアクセスできません。

    いつもお世話になっております。 ・windows2000 ・j2sdk-1_4_1_07-windows-i586 ・jakarta-tomcat-4.1.31 で、 Daykeisan.java というのを作成し、コンパイル後 作成されたclassファイルを c:\Plogram Files\Apache Group\Tomcat4.1\webapps\examples\WEB-INF\classes\javahello に格納しました。 <%@ page contentType="text/html;charset=Shift_JIS" %> <%@ page language="java" %> <%@ page import="java.util.*" %> <jsp:useBean id="syuu" class="javahello.Daykeisan" />           ・             ・           ・ とjspファイルを作成し、表示させようとすると、 HTTP Status 500 - C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\javahello\calendar2_jsp.java:45: javahello.Daykeisan にアクセスできません。 クラスファイル C:\Program Files\Apache Group\Tomcat 4.1\webapps\examples\WEB-INF\classes\javahello\Daykeisan.class は不正です。 クラスファイル Daykeisan に不正なクラスがあります。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 javahello.Daykeisan syuu = null; ^ エラー 1 個 とエラーがかえってきます。 <jsp:useBean・・・> の使い方がよくないのだろうと思い調べていますが、解決に結びつきません。 どなたかご教授お願いいたします。

    • ベストアンサー
    • Java
  • pukiwiki php8のインストールについて

    pukiwiki-1.5.4_utf8.zipをダウンロードをしてphp8.1のレンタルサーバーにインストールしましたがエラーになりました。 エラーメッセージは以下です。 Parse error: syntax error, unexpected token "new" in /home/サーバー名.jp/public_html/lib/func.php on line 546 https://pukiwiki.sourceforge.io/?PukiWiki/Download/1.5.4 サーバ上のファイルおよびディレクトリのパーミッションを確認します。 専用サーバーの場合の例を以下に例を示します。 共有サーバーで他のユーザーからの読み書きを禁止したい場合は 777->771, 755->750, 644->640, 666->660 等、適切なパーミッションを設定してください。 ディレクトリ パーミッション attach 777 添付ファイル格納ディレクトリ backup 777 バックアップファイル格納ディレクトリ cache 777 キャッシュファイル格納ディレクトリ counter 777 カウンタファイル格納ディレクトリ diff 777 差分ファイル格納ディレクトリ image 755 画像ファイル image/face 755 (画像ファイル)フェイスマーク lib 755 ライブラリ plugin 755 プラグイン skin 755 スキン、CSS、JavaScirptファイル wiki 777 データの格納ディレクトリ ファイル パーミッション .htaccess 644 .htpasswd 644 */.htaccess 644 ファイル パーミッション *.php 644 */*.php 644 attach/* 666 (はじめは存在せず) backup/*.gz 666 (インストール時は存在せず) backup/*.txt 666 (多くの環境では存在せず) cache/* 666 (一部のプラグインはバイナリファイルを保存します) counter/* 666 (はじめは存在せず) diff/*.txt 666 (はじめは存在せず) wiki/*.txt 666 image/* 644 image/face/* 644 lib/* 644 plugin/* 644 skin/* 644 よろしくお願いします。

    • 締切済み
    • PHP
  • WEBサーバーのapacheの設定について

    WEBサーバーをたてていますがつまってしまい困っています。 困っているのは、apache2.2系のルートディレクトリでディレクトリを指定するのではなく、プログラムファイルを指定できないことです。 つまりweb上からあるディレクトリの中の複数のファイルに直接アクセスするのではなく、必ずあるCGIファイルを通して間接的にアクセスしたいのです。 apache2.2におけるその方法がわからなくて困っています。 本当に困っています。 誰かご教授下さい。

  • EclipseでHTTP404エラーが出る。

    EclipseでJAVAの練習してるのですが、 ここ最近HTTP404エラーが頻発して困ってます。 何が原因かわかりません。ちなみに参考書として使ってるのは、著:国本大吾さんのスッキリわかるサーブレット&JSPです。 <詳細> [URL]http://localhost:8080/docoTsubu/WEB-INF/classes/model/User.java HTTPステータス 404 - type ステータスレポート メッセージ 説明 The requested resource is not available. Apache Tomcat/7.0.54 このようにエラーが出てしまいます。 気になったのが、私はUser.javaをWEB-INFディレクトリーに入れてません。 URLに間違いがあるのかもしれないと思い、URLのWEB-INF/classes/を消して実行しましたが、だめでした。 次はWEB-INFに入れないといけない物なのかもしれないと思いモデルごとWEB-INFに入れて実行しましたが、だめでした。 この後、全部削除してもう一度やり直すってこともやってみましたが、だめでした。 もうどうしたらいいのかわかりません。どなたかお助けください。

    • ベストアンサー
    • Java
  • apache+phpにおいてリクエストにHTTP/1.0で応答させたい

    apache+phpにおいてリクエストにHTTP/1.0で応答させたい apache1.3.29+php4.3.11環境において クライアントからのリクエストに対して、常にHTTP/1.0 で応答させたく httpd.confファイル中で LoadModule php4_module "D:\php\sapi\php4apache.dll" の前行に SetEnv downgrade-1.0 force-response-1.0 を追記しました。 しかし、 テスト用htmlファイルを作成し クライアントPCからhtmlファイルにアクセスした時はHTTP/1.0を応答するのですが テスト用phpファイルを作成し クライアントPCからphpファイルにアクセスした時はHTTP/1.1を応答してしまいます。 (確認はネットワーク解析ツールにて行っています。) ネットで調べるとphp.iniのcgi.rfc2616_headersが関係しそうだったのですが デフォルト(0)であればapacheの設定が有効らしく、そののままにしてあります。 php.iniやhttpd.conf、もしくは他のファイル等で何か設定しなければいけないのでしょうか? ご存知の方がいらっしゃいましたらお手数ですがお教えください。

  • javaコマンドが実行できません。

    C:\Work\workspace\createMaster\src\main\webapp\WEB-INF\classes>java C:\Work\workspace\createMaster\src\main\webapp\WEB-INF\classes\createMaster\util\M ain.class と実行すると Exception in thread "main" java.lang.NoClassDefFoundError: C:\Work\workspac e\createMaster\src\main\webapp\WEB-INF\classes\createMaster\util\Main/class とExceptionが発生します。 .class拡張子を除いて C:\Work\workspace\createMaster\src\main\webapp\WEB-INF\classes>java C:\Work\workspace\createMaster\src\main\webapp\WEB-INF\classes\createMaster\util\M ainと実行すると Exception in thread "main" java.lang.NoClassDefFoundError: C:\Work\workspac e\createMaster\src\main\webapp\WEB-INF\classes\createMaster\util\Main とExceptionが発生します。 classファイルはC:\Work\workspace\createMaster\src\main\webapp\WEB-INF\classes\ createMaster\util\Mainに存在します。 javaコマンド命令文の利用方法が分からなくて投稿します。 お答え宜しくお願いします。

  • ApacheとPHPについて

    Apache2とPHP質問です。 .phpのファイルをどこのディレクトリに入れれば、ブラウザから見れるのか わからず困っています。 現在の状況は VineLinux4.2をインストール。 VineLinuxに入っている(アップグレードで取ってくる?) Apache2とPHPをインストール。 Apache2起動後、rootディレクトリに「~~.php」を作る。 ブラウザから「http://localhost/~~.php」エンター エラーが出る。 1、Apache、PHPが正しくインストールされてるかの確認方法 2、どこのディレクトリにソースファイルを入れればいいのか この2点お願いします。

    • ベストアンサー
    • PHP
  • iniファイルをウェブ経由でアクセス不可にする方法

    .iniファイルをウェブ経由でアクセス不可にするには、どうすればよろしいのでしょうか? ホームページ閲覧者が.iniファイルにアクセスしたり、ダウンロードすることを出来ないようにするのが目的です。 ドキュメントルートディレクトリには.iniを置けないので、.htaccessを使った方法、もしくは他の方法をご存知でしたら、是非ご教示ください。 よろしくお願いします。

専門家に質問してみよう