問題タブ [mod-perl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
89 参照

perl - フィルタが期待どおりに機能していません

mod_perl2フィルターについてです。

理想的には、フィルターの仕事は、入力データで何かを行い、そのデータを次のフィルターまたは実際に要求されたリソースに渡すことです。

私の場合、URLパターンに対してPerlInputFilterHandlerを定義しました。以下のロケーションタグを参照してください。

このフィルタ(Test10)は、要求データを変更し、制御をAServlet(WebLogic Serverにデプロイされたサーブレット)に渡すことになっています。

ただし、このフィルターは呼び出されていますが、フィルターに何を書き込んでも、AServletに制御を渡していません。なぜそうなのか?

ありがとう。

0 投票する
2 に答える
818 参照

apache - mod_perl セグメンテーション違反

こんにちは、

Oracle64 ビット (Red Hat クローン) で apache 2.2.3 を実行していますが、問題で壁にぶつかっています。MIME::Lite を利用して sendmail 経由でメールを送信するプログラムを持っています (申し訳ありませんが、実行している sendmail または mod_perl のバージョンはわかりませんが、すぐにわかるように、sendmail の部分は無関係だと思います)

時々、Apache は segfault (11) を起こし、MIME::Lite モジュールを深く掘り下げると、次の行にあることがわかります。

ここで、自動的に sendmail を疑いますが、同じ行で /bin/cat を使用すると (図のように):

Apacheはまだセグメンテーション違反です。

Apache プロセスに strace をアタッチすると、次のように表示されます: (クラッシュしない場合)

「SENDMAIL sent_by_sendmail」は私のコメントです。パイプが開いているのがはっきりとわかります。クラッシュすると、次のように表示されます。

ここで、パイプしないことに注意してください。GDB を試してみましたが、実際には何も表示されませんでした。

最後に、mod_perl と通常の cgi を実行する簡単なプログラムを作成しました。

mod_perl の下では正常にクラッシュしました。

私の分析によると、ファイル ハンドルを開こうとしていることに関係しているとのことです。パイピング関数は false または破損したファイル ハンドルを返します。

また、ファイル記述子の制限をサイコロなしで 2048 に増やしました。

私がどこを見るべきかについて誰か考えがありますか? 何かご意見は?

助けてくれてありがとう

0 投票する
2 に答える
676 参照

web-services - クライアントのmod_perlサーバーイベント

Webサービスを使用してサーバーからクライアントへのコールバック(イベント)を実装するための良い方法は何ですか?

Apache上で実行されているmod_perlによって公開されたSOAPベースのAPIがすでにありますが、これはクライアントからサーバーへの一方向です。他のクライアントによるサーバー上の特定の変更をクライアントに通知する必要があります。

これを機能させるための良い方法は何ですか?perlで利用可能なモジュール?

私たちが考えた1つのことは、イベントが発生したときに最終的に応答する長時間実行のWeb要求を作成することでしたが、これにより、多数のクライアントが接続されている場合、あまりにも多くのmod_perlプロセスが実行され続けるように見えます。

0 投票する
1 に答える
550 参照

perl - WindowsマシンにApache::Registryをインストールするためのヘルプが必要

WindowsマシンにApache::Registryをインストールしようとしています。しかし、私はそれをすることができませんでした。なぜなら、Apache.exeの場所を要求しているからです。私がそれに完全を与えるときpath("C:\Apache2.2\bin\httpd.exe")、それは次のエラーを通り抜けています。この問題を解決するのを手伝ってください。

前もって感謝します。

-あんじ

0 投票する
1 に答える
296 参照

perl - カスタムの die() ハンドラーを mod_perl SOAP ハンドラーに挿入する

$server = SOAP::Transport::HTTP::Apache->new; $server->dispatch_with(...)ここでは、JS ベースのアプリケーションへのバックエンドとしてを使用しています。基礎となるモジュールが停止すると、JS コードによって表示される適切なエラー メッセージが返されます。

問題は、より詳細なメッセージ (Carp::longmess など) と、STDERR にあるメッセージのハード コピーが欲しいことです。

最小限のコード変更でカスタム例外ハンドラーを SOAP::Transport::HTTP::Apache に挿入するにはどうすればよいですか?

(これは大規模で古いプロジェクトであり、書き直す余裕はありませんが、正直なところ、書き直す価値があります)。

更新: エラー メッセージの例を次に示します。

Tangram エラーが発生しますが、これは Tangram のバグである可能性は低く、とにかく完全なスタック トレースが必要です。OTOH、ダイメッセージは通常のダイアクションではないSOAPメッセージに入ったので、どこかにハンドラーがあります-少しカスタマイズしたいです。

0 投票する
1 に答える
164 参照

apache2 - ワイルドカードからサブドメインを取得するための Apache アドオン perl スクリプト

これに関して問題があり、この段階でなんとか修正できましたが、唯一の問題は、これを perl でどのように達成できるかを見つけることです。

これはリンクの現在の構造です:

そして、これは私が持っている現在の VirtualHost です:

上記は、現在の VirtualHost 構造と、サブドメイン パターンが必要な場所を示しています。mod_perl を調べて有効にしましたが、タグを追加するだけでよいこともわかりました。しかし、私の perl スキルは限られています。

私はここで答えを見てきましたが、それは私のものと多少似ていると思いますが、より多くの改造が必要です: https://serverfault.com/questions/85256/using-url-within-vhost-container-with-mod-perl-dynamically

誰かがこれを達成する方法を示したり、正しい方向に向けたりできますか?

どうもありがとう、ショーン

0 投票する
3 に答える
1807 参照

perl - mod_perl でデバッガーを使用する方法

Perl デバッガーを Apache と mod_perl に接続しようとしています。私たちの環境は非常に複雑で (Apache で構成された多くの追加要素 (Catalyst など))、それを構成したエンジニアはもう会社にいません。「PerlFixupHandler Apache::DB」を設定するなど、Apache Web サイトの指示に従いましたが、これまでのところ 、ページが配信された後にデバッガーを中断するだけです。ワーカープロセスではなく、ディスパッチプロセスで中断が発生したと思います。Apache の prefork MPM バージョンを実行しています。デバッグの手順では、httpd の起動時に -X パラメータを渡すと書かれています。しかし、私が実行している httpd は -X パラメーターを受け入れません。-X パラメータが実際に httpd の一部のバージョンをフォークしない原因になると思いますか?

すべてのガイダンスに感謝します。

0 投票する
1 に答える
200 参照

perl - Perl / mod_perl:使用されたモジュールを特殊文字を含むパスにマップします


おそらく私の質問は単純なものですが、ドキュメントで答えを見つけることができず、誰かが助けてくれることを願っています。

Q.:ファイル名とファイルシステムパスをマッピングして'd/ require ' dモジュールを使用するルールと、パッケージ宣言に使用される名前はどれですか。特に、ドットやコンマなどの非標準の記号が使用されている場合はどうでしょうか。また、これらのシナリオに関連するmod_perlのPerlModuleおよびPerlRequireApacheディレクティブに対する同様の答えを見つけることもできます。

具体的な例として、次のようなドットとコンマを使用したパスにmod_perlプロジェクトがあります。

して、Apacheのconfファイルにモジュールのコードをロードする必要があります。

私も自分のパッケージを次のように宣言する必要があります

(@INCから/ var / www / projectsへのカスタムパスの1つ)

もちろん、これは機能しません。これらのパスは、他のパスにマップする必要があります。または、それはまったく不可能であり、誰もが英数字記号とアンダースコアのみを含むパスを使用する必要がありますか?

ヘルプ/回答をよろしくお願いします。

0 投票する
2 に答える
482 参照

perl - Archive ::ZipzipファイルをApache2::RequestIOオブジェクトに印刷します

mod_perlを使用しているWebサイトがあります。

(を使用して)メモリ内にzipファイルを作成してArchive::Zipいますが、ディスクに書き込まずにそのファイルを提供したいと考えています。

Archive::Zip指定されたファイルハンドルにのみ出力され、提供されるとは思いませんApache2::RequestIO

現時点では、Zipファイルを*STDOUTに出力するだけで機能します。しかし、私はそれを行うためのより良い方法があると確信しています。RequestRecオブジェクトを介して他のすべてを印刷しています。$r->print(...)

0 投票する
2 に答える
2235 参照

perl - Perl の Log::Log4perl のログ レベルは、構成を更新せずに動的に変更できますか?

Log::Log4perl を使用している mod_perl で Mason テンプレートを実行しています。

特定のアペンダーのログ レベルを変更したいのですが、構成を変更するのは面倒です。デプロイ プロセスを通過してライブに移行する必要があるからです。

構成ファイルを変更せずに、Apache の起動後に実行時にアペンダーのログ レベルを変更し、その変更を新しい Apache スレッドに影響させる方法はありますか?