Tomcat に PHP をサポートさせよう
JSP 動的 Web ページ技術を使用した Web サイトを担当していたとき、たまたま PHP で書かれた関数がいくつかあったため、Tomcat に PHP をサポートさせようとすぐに思いつきました。 Tomcat も Apache によって作成されていますが、JSP のみをサポートしていますか? Tomcat で PHP を使用できますか?オンラインで検索すると、最初の質問に対する答えがすぐに見つかりました。Tomcat は Perl などの CGI をサポートできます (具体的な設定については添付を参照してください)。しかし、検索を続けても、Tomcat に PHP を使用させる方法は見つかりませんでした。PHP+JSP をサポートするいわゆる Web プラットフォームを構築するには、Apache と Tomcat を共存させてインストールする方法が一般的に使用されます。
もちろん実際には、PHP 自体も CGI の使用をサポートしているので、自分で試してみました (Windows オペレーティング システム上で)。まず、添付ファイルの指示に従って、Tomcat が CGI をサポートするようにし、次にサーブレット内の web.xml を変更します。 - CGI の設定セクションに名前が追加されます:
-value > init-param >
を追加し、Tomcat が PHP.exe を実行できるようにします。 Tomcat を再起動した後、WEB-INF ディレクトリに新しい cgi ディレクトリを作成し、ここに PHP ファイルを配置し、仮想的にマップされた cgi-bin ディレクトリを使用してこれらの PHP ファイルにアクセスします。
ただし、PHP ファイルに何も変更を加えないと、出力がない場合があります。 PHP ファイルのヘッダーに行を追加し、2 つの改行を出力する必要があります:
ただし、この設定では、PHP (4.1.0 以降) の $_REQUEST、$_GET、$_POST などの変数は、サーバー変数または環境変数 $_SERVER["QUERY_STRING"], からのみ取得できます。 $_ENV["QUERY_STRING"]。フォームのPOST送信はサポートされていないのかもしれません...まだ試していません。
私は Tomcat に詳しくないので、これらは現在の方法の単なる修正です。良い実践方法があるかもしれません。アドバイスをいただければ幸いです。
添付ファイル:
Tomcat での CGI スクリプトの使用
Tomcat は主にサーブレット/JSP コンテナーであることを目的としていますが、従来の Web サーバーに匹敵する多くの機能を備えています。その 1 つは、Common Gateway Interface (CGI) のサポートです。 CGI は、ブラウザのリクエストに応じて外部プログラムを実行するための手段で、通常は Web ベースのフォームを処理します。これは、Perl、Python、awk、Unix シェルなど、ほぼすべてのプログラミング言語またはスクリプト言語でプログラムを呼び出すことができるためです。スクリプト、および Java さえもすべてサポートされているオプションです。ただし、起動時のオーバーヘッドのため、おそらく Java アプリケーションを CGI として実行することはありません。サーブレット仕様の元の設計は、このオーバーヘッドを排除することによって行われました。誰かがリンクやボタンをクリックするたびに新しいオペレーティング システム レベルのプロセスを起動する必要がないため、ほとんどの場合 CGI よりも効率的です。
Tomcat にはレガシー CGI スクリプトを実行できるオプションの CGI サーブレットが含まれています。新しいバックエンド処理のほとんどは、ユーザー定義のサーブレットと JSP によって実行されます。
Tomcat の CGI サーブレットを有効にするには、次の手順を実行する必要があります。 ファイル servlets-cgi.renametojar (CATALINA_HOME/server/lib/ にある) の名前を次のように変更します。 servlets-cgi.jar を作成し、CGI スクリプトを処理するサーブレットが Tomcat の CLASSPATH に配置されるように、Tomcat の CATALINA_BASE/conf/web.xml ファイルで、cgi という名前のサーブレットの定義のコメントを解除します (これはディストリビューションの 241 行目あたりです)。また、Tomcat の web.xml で、CGI サーブレットのサーブレット マッピング (配布されたファイルの 299 行目付近) のコメントを解除します。これは、CGI スクリプトへの HTML リンクを指定するか、WEB-INF/cgi ディレクトリに配置します。 (WEB-INF は、セキュリティ上の理由から、ユーザーに表示されたくないものを非表示にする安全な場所であることに注意してください)。または、それらをコンテキスト内の他のディレクトリに置き、cgiPathPrefix 初期化パラメータを調整します。これにより、CGI スクリプトの実際の場所が指定されます。通常、Tomcat を再起動すると、CGI 処理が動作できるようになります。実際のスクリプトを見つけるためのサーブレットは WEB-INF/cgi です。前述のとおり、WEB-INF ディレクトリはブラウザからの偶発的な覗き見から保護されているため、パスワードやその他の機密情報が含まれる可能性のある CGI スクリプトを配置するのに適しています。ただし、他のサーバーとの互換性を確保するために、スクリプトを従来のディレクトリ /cgi-bin に保存することをお勧めしますが、このディレクトリ内のファイルは、好奇心旺盛な Web サーファーによって表示される可能性があることに注意してください。 Tomcat を実行しているユーザーが CGI スクリプト ファイルを実行できることを確認してください

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。
