問題タブ [mod-perl2]
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.
perl - メソッドが見つかりません Apache2::RequestUtil->request
SOAP::Lite に小さな問題があります。次のコードを実行しようとすると、このエラーが発生します (b.pl 行 3 のパッケージ「Apache2::RequesUtil」を介してオブジェクト メソッド「request」が見つかりません)。
何か案が ?
perl - Apache2 で Apache::VMonitor を動作させることができません
Apache 1.3 から Apache 2.063 に移行しようとしていますが、 Apache::VMonitor の動作に問題があります。
古いApacheでセットアップしたのと同じように、次のようなセットアップを試みました。
サーバーを起動しようとすると、次のエラーが発生します。
ap_scoreboard_image が存在しません ...
Apache::VMonitor のドキュメントで次のようなメモを見つけました。
注意 Apache バージョン 2.0.53 以降 (2.0.54、2.0.55、および 2.0.58 で検証済み) の場合、Apache::VMonitor をセクションおよび/または PostConfigRequire ファイルにロードすると、Apache がスコアボード オブジェクト。
問題は、それ以降のバージョンの Apache でいつスコアボード オブジェクトを初期化できるかが示されていないことです。「use」ステートメントを省略しようとしたところ、次のエラーが発生しました。
パニック: グローバル破壊中の del_backref。
*エラーコード 255
これを機能させる方法を知っている人はいますか?私は Apache::VMonitor の使用に固執していません。誰かが Apache のスコアボードからデータを解析して表示する別の方法を提案できるなら、私は提案を受け入れます。
perl - mod_perl を使用して新しいデータベース ハンドルを作成する
mod_perl のストレス テスト中に、データベース接続が失われるという問題に遭遇しました。プロセスがデータベース接続を共有しているため、問題が発生していると思われます。
しかし、私は Apache::DBI のすべての指示に従いましたが、これがわかりません。
startup.plではなく、子プロセスで接続を行っています。しかし、DBI->connect から各子によって返された $dbh を調べると、アドレスはすべての httpd プロセスで同じです。まず、これが適切に機能し、プロセスごとに再接続する場合、DBI->connect によって返されるアドレスは子プロセスごとに異なるはずですか? 私はそう仮定していますが、DBI (dbih_setup_handle) のコア C コードがこれを管理しており、同じアドレスを返していることがわかります。ですから、子供の中で再接続することの意味を理解していないのかもしれません.
$dbh ハンドルが同じ場合、適切に再接続していますか?
perl - mod_perl の下で Mason で NYTProf を使用する
HTML::Mason の上に書かれた Web アプリケーションをプロファイリングしようとしています。プロファイラーを設定することはできましたが、コンポーネント内のコードを取得していないようです。NYTProf を使用して Mason アプリケーションをプロファイリングする方法はありますか?
perl - mod_perl-2.0.7 を Apache httpd-2.4.2 にインストールする
perl で apache をインストールしようとして、腹立たしい時間を過ごしています。ここにある mod_perl サイトの指示に従っています: http://perl.apache.org/docs/2.0/user/install/install.html
このコマンドを実行するように求められる部分まで取得しますが、エラーが発生します。
Apacheをインストールするために提案されたコマンドを実行して、Apacheをインストールしました。
しかし、apache2 フォルダーのどこにもないように見えるため、この apr-config がどこにあるのかわかりません。
問題になる可能性がある場合は、Mac OS X 10.7.3 を使用しています。Apache サーバーが Mac OS X に付属していることは知っていますが、このインストールを別のコンピューターで最初から行う必要があるため、このインストール全体を自分のコンピューターで最初から開始する必要があります。
あなたが提供できる助けを前もって感謝します。
php - mod_perl と oracle vs php と oracle のパフォーマンス
大規模な Perl アプリを高速化する必要があります。実行時間のほとんどを DB との通信に費やしていることに基づいて、適切に作成された SQL ステートメントを実行してパフォーマンス目標を達成できる数を知りたいと考えました。これを行うために、SELECT と INSERT を実行する非常に単純なハンドラーを作成しました。300 の同時要求 (合計 10,000) でベンチマークしたところ、結果は非常に貧弱でした (平均 1900 ミリ秒)。
クライアントから与えられたパフォーマンス目標は、彼らが使用する PHP で書かれた別のアプリに基づいているため、単純な mod_perl テスト ハンドラーと機能的に同じことを行う簡単な PHP スクリプトを作成したところ、平均 400 ミリ秒でした!
PHPコードは次のとおりです。
Perl コードは次のとおりです。
mod_perl には、「使用」されたすべてのモジュールをロードする apache 構成内の PerlRequire で呼び出される startup.pl スクリプトがあります。すべてが正常に機能し、そうでないと考える理由がない場合、各リクエストは「サブ ハンドラー」の行のみを実行する必要があります。つまり、Perl と PHP はほぼ同じことを行う必要があります。
サーバーの詳細:- ハードウェア ノードはクアッド コア Xeon L5630 @ 2.13GHz、24Gb RAM、Apache 仮想マシンの OS は Gentoo、Oracle の OS は Centos 5 です。
バージョン: 過去 2 週間以内に更新された OS、Apache バージョン 2.2.22、mod_perl バージョン 2.0.4、DBI バージョン 1.622、DBD::Oracle バージョン 1.50、Oracle インスタント クライアント バージョン 10.2.0.3、Oracle Database 10g Express Edition リリース 10.2.0.1 .0、PHP バージョン 5.3
Apache MPM 構成は、ServerLimit 2000、MaxClients 2000、および MaxRequestsPerChild 300 です。
私がチェックしたこと: テスト中、唯一の負荷はテストアプリ/オラクルからのもので、どちらの仮想マシンも Bean カウンターの制限 (メモリなど) に達しませんでした。オラクルは常に Apache の子ごとに 1 つのセッションを示しました。走る。
だから、私の質問は; mod_perl のバージョンを速くすることはできますか?
perl - Apache PerlModuleディレクティブがカスタム環境変数を設定しないのはなぜですか?
mod_perl Webサイトを構築していますが、Perlコードで使用される環境変数を設定する必要があります。
これまで、PerlSetEnv
この変数を設定するためにディレクティブを使用していました。
これは問題なく動作しますが、最初の呼び出しが非常に遅いため、mod_perlハンドラーをプリロードしたいと思います。そこで、Apache仮想ホストファイルを次のように変更しました。
しかし、これを行うと、MYVAR
プリロード時にカスタム環境変数が設定されずmyhandler
、コードが失敗します。
PerlModule
では、ディレクティブによってエクスポートされる環境変数を設定することは可能ですか?
perl - CGIからmod_perlへの移行。私、私たち、地元の人々を理解する
私は数年の間apachemod_cgiを使用しています。今、私はmod_perlに移動していますが、特にサブルーチンに関していくつかの問題が見つかりました。今まで私は使用していmy
ませour
んでしlocal
た。CGIスクリプトは問題なく動作しました。ドキュメントとここに投稿された以前の質問を読んだ後、私は多かれ少なかれその方法を理解しmy
、機能our
しlocal
ます。私の懸念は、次のリクエスト間でどのような情報が共有されるかです(正しく理解していれば、それがmod_cgiではなくmod_perlを実行しているときに必要な主な懸念事項です)。
our
スカラーで使用することと、スカラーなどの特別なことを宣言せずにスカラーだけで使用することの間に違いはありますmy
か?両方ともグローバルではありませんか?- スカラーをプライベートとして宣言しない場合、次のリクエストで共有されますか?同じサーバー内の別のperlスクリプトの別の要求でも?
- サブルーチン内のスカラーの値をそのサブルーチンの外と共有できますが、同じファイルや同じリクエストの外では共有できませんか?
- ファイルの同じレベルまたは同じサブルーチン
my
内のスカラー内でaを使用し、その後、同じスカラーを使用する別のスカラーを作成する場合。そのスカラーは両方の間で共有されますか、それともそれぞれが異なるブロックを意味しますか?とはどうですか、以前にスカラーとして宣言されたものとは異なるブロックですか、それともサブルーチンとファイルに対してのみ機能しますか?if
if
if
if
while
for
my
perl - Set-Cookie は、perl CGI で動作するようにリダイレクトしますが、mod_perl では動作しません
Cookie を設定してから mod_perl にリダイレクトする際に面白い問題が発生しました。私はこれまで通常の cgi 環境を使用してきましたが、Cookie/リダイレクトの設定が問題になったことはありません。すべてが期待どおりに機能しました。ただし、mod_perl をオンにすると、ステータス 200 が表示され、リダイレクト URL を含む HTML 本文が送信されます。リダイレクトの前に印刷しているにもかかわらず、Cookie は常にヘッダーの後、ドキュメント本文の前に配置されます。私が言いたいことがわかるように、スクリプトを必要最小限に切り詰めました。
通常の CGI で curl を使用してこれをテストすると、次のようになります (簡潔にするためにドメイン名を置き換えて省略しています)。
...これは私が期待するものです。これを mod_perl でテストすると、次のようになります。
ログに警告が表示されません。mod_perl がこのような奇妙な方法でこのリダイレクトを処理することを決定した理由は何ですか?