問題タブ [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.
ubuntu - VM 上の Apache 2 で、mods が有効なディレクトリが見つからないことがある
Ubuntu 10.04 サーバー VM (ESXi 4.1) で Apache 2 を実行していますが、非常に奇妙な結果が得られます。
mods が有効なディレクトリが見つかることがあります。
そうでない場合もあります。見つからないのは75%くらいじゃないようです。
その間に何も変更されません。
何が起こっているかを示すために、error.log からの抜粋をコマンド ラインと組み合わせて以下に示します。
そこで、ログ内の情報を見つけやすくするために、Apache を停止することから始めます。
それから私はそれを開始します:
それから私はそれを再起動します:
次に、ディレクトリを1つ戻して、シェルパスを使用しているという理論をテストします
これまでのように見えます...ちょっと..
まだそれのように見えますが、今回はログエラーはありません。Apache ディレクトリに戻り、もう一度試してください。
うーん、そうだったようですね。理由は・・・わかりません。
そのDNSのことを除いて、別のOK再起動...
ここまでは順調です... 待ってください... おっと、これはディレクトリを変更していないときにログに表示され、Apache が起動しようとしてもシャットダウンします。
私はそれを再起動しに行きます...
そして、それはバックアップです。そして、私は当惑しています。
なぜこれが起こっているのかわかりません。これを行うべきだとは意味がありません。私の本能は、どういうわけか正しい道をたどっていないことを教えてくれました.Modが有効になっているのは、何らかの理由で、シェル内の私がいた場所に関連していると予想していました.この同じ「エラー」のために実行中にApacheがシャットダウンしたとき
これが私のhttpd.confです:
ここに私のapache2.confがあります:
そして、これが私のデフォルトの仮想ドメインです。
そして私のenvarsファイル:
私は困惑しています。
ここで何が起こっているのですか?
apache2 - ワイルドカードからサブドメインを取得するための Apache アドオン perl スクリプト
これに関して問題があり、この段階でなんとか修正できましたが、唯一の問題は、これを perl でどのように達成できるかを見つけることです。
これはリンクの現在の構造です:
そして、これは私が持っている現在の VirtualHost です:
上記は、現在の VirtualHost 構造と、サブドメイン パターンが必要な場所を示しています。mod_perl を調べて有効にしましたが、タグを追加するだけでよいこともわかりました。しかし、私の perl スキルは限られています。
私はここで答えを見てきましたが、それは私のものと多少似ていると思いますが、より多くの改造が必要です: https://serverfault.com/questions/85256/using-url-within-vhost-container-with-mod-perl-dynamically
誰かがこれを達成する方法を示したり、正しい方向に向けたりできますか?
どうもありがとう、ショーン
html - CGI::escapeHTML() が機能しない
私はCGIが初めてで、私のコード出力は次のとおりです。
動作escapeHTML()
しないようです。
winxpでXAMPP 1.7.2を使用してcgiコードを開発しています。どうすれば修正できますか。現在の XAMPP 用に追加の CGI プラグインをダウンロードしてインストールする必要がありますか? ご協力ありがとうございます。
perl - PSGI: それは何ですか?
私の Web プロジェクトが PSGI を使用した実装の候補であるかどうかを判断しようとしてきましたが、この段階ではアプリケーションにどのような効果があるかわかりません。
私はすべての大騒ぎを本当に理解していません。私には、PSGI は異なる Apache モジュール間でアプリケーションを移動できる共通のインターフェースを提供するフレームワークのように思えます。たとえば、アプリケーションを mod_perl で実行するものから fastcgi に簡単に移行し、両方のオプションで実行するためのアプリケーション サポートを提供します。
そうですか、それとも何か見逃しましたか?
私と私が所属するチームは、アプリケーションを開発するだけでなく、サーバーのメンテナンスとセットアップも行っているため、fastcgi、cgi、および mod_perl で実行できることの価値はわかりません。 mod_perl だけで問題ありません。
PSGI の機能を誤解していますか、それとも単に私のプロジェクトに適していないのでしょうか?
file-io - mod_perl で実行すると、CGI で実行した場合よりもファイル操作が遅くなる
私は cgi で動作するアプリケーションを持っています。mod_perl2 (apache2::compat を使用) に移植し、cgi ファイルを mod_perl ハンドラーに書き直しました。不思議なことに、mod_perl によって得られたパフォーマンスは、ロギングのレイテンシーによって影が薄くなります。
アプリケーションのロギング メカニズムは、logger->logmsg(msg) のようなものです。
logger::logmsg { my $msg = shift; LOGFILEを開く、">>logfile"; print LOGFILE $msg close LOGFILE; }
アプリケーションによって多数のロギングが行われ、さまざまなレベルのロギングによって制御されます。ロギングをオフにすると、トランザクションは cgi よりも mod_perl で 80% 速く動作します (コード ベースは同じです。mod_perl のハンドラーと cgi のゲートウェイ スクリプトを使用して実行しているだけです)。mod_perl でログ アプリケーションをオンにすると、実行速度が 80% 遅くなります。
ログから、同じログ モジュールを cgi スクリプトとして実行するとファイルに msg を追加するのに 0.01 秒かかり、mod_perl ハンドラを介して実行すると 0.03 秒かかることがわかりました。
STDOUT を使用して同じものをログ ファイルにリダイレクトする、request_obj->log メソッドを使用するなど、さまざまな方法を試しましたが、cgi にかかる時間に勝るものはありません。このアプローチで間違っていることはありますか?
同じ apache サーバーで mod_perl スクリプトを使用して実行すると、ファイル操作が 3 倍遅くなるのはなぜですか。
どんなポインタでも大歓迎です。
ありがとう。
perl - リクエストの有効期間オブジェクト
リクエストの有効期間を持つオブジェクトを作成したいと思います。さらに、異なるハンドラーからアクセスする必要があります。例: PerlMapToStorageHandler で作成し、PerlResponseHandler でアクセスできます。
PS「メモ」について読みましたが、適切ではありません(IMHO)。
PSS。私の英語は下手でごめんなさい。
perl - Perl、mod_perl2、または Web スクレイピング サービス用の CGI?
複数 (現在 3 つ) の Web サイトからデータを収集 (「Web スクレイプ」) するオープンソースの Web サービスを設計する予定です。
Web サイトは Web サービスや API を公開せず、Web ページを公開するだけです。
データは、クライアントの要求に応じてすべての Web サイトから並行して収集され、XML に解析されてクライアントに返されます。
サーバーのオペレーティング システムは Linux です。
クライアントは、最初は私の Android アプリケーションにすぎません。
プロジェクトが成功すれば、同時クライアントはおそらく 100 以上になるでしょう... ;-)。
現在、私の好みは次の採用に行きます:
- perl (サービス言語用)
- ModPerl::Registryを使用したmod_perl2 (Apache 組み込み高速 perl インタープリター用)
- perl モジュールCHI::Driver::FastMmap (最新の高速キャッシュ ハンドラ用)
- perl モジュールCoro (多くのリクエストを並行して配置するための非同期イベント ループ用)
プロジェクトの仕様は一般的に使用でき、興味深いものになると思います。Coroとmod_perl2を組み合わせて使用すると多くの問題が発生するため、質問します。
私の養子縁組の好みは十分に一致していますか?
非互換性や潜在的な問題はありますか?
強化するための提案はありますか (この順序で):
- コンポーネント間の互換性
- 実装のきちんと
- メンテナンスのしやすさ
- 公演
apache2 - Apache2 の子プロセスごとに mod_perl2 の下に永続的な接続ハンドル (MySQL および memcached 用) を作成するにはどうすればよいですか?
私は機知に富んでいます。私の現在の (失敗した) MySQL ベースの小さな Web ページの実装は、Project::Connection への呼び出しで初期化される 2 つのパッケージ スコープ (私たちの) ハンドル (mysql_handle および memc_handle) を格納するモジュール Project::Connection に大きく依存しています。 :child_init PerlChildInitHandler フェーズ中。同様に、PerlChildExitHandler フェーズで接続を切断します (切断したい)。問題は、ChildInit サブルーチン中にハンドラーが適切に作成されていることをデバッグで確認したことですが、「GET /」を要求すると、要求を処理するモジュール (Project::Web::Home、これは Project::Connection を使用します) が報告します。両方のハンドルが未定義です!
関連するコードは次のとおりです。
startup.pl (サーバー構成で PerlRequire を使用して呼び出されます):
Project/Connection.pm (接続ハンドルを保持):
Project.pm:
プロジェクト/Web/home.pm:
ここで、Apache の起動時に、startup.pl をコンパイルして実行すると、すべてのモジュールが親プロセスにコンパイルされることを理解しています。次に、親プロセスは子プロセスにフォークし、コンパイルされたコードをコピーして、子が親のコピーになるようにします。その後、子プロセスは、mysql と memcache のハンドルを初期化する Project::Connection::child_init を実行する必要があります。これにより、子プロセスが「GET /」を処理するときに、Project::Web::home モジュールが「Project::Connection を使用できる」ようになります。 " それらのハンドルを取得します。最後に、これらのハンドルは、子プロセス全体で定義されたままにする必要があります。
あなたが知りたいかもしれない余分な情報を分けてください:
ログから: "Apache/2.2.16 (Debian) mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 構成" /etc/apache2/sites-available/project から:
linux - Apache2/mod_perl2 の作業ディレクトリを変更するにはどうすればよいですか?
いくつかのファイルを作業ディレクトリに書き込む mod_perl2 モジュールがあります。mod_perl2 や Apache2 の標準作業ディレクトリは「/」のようです。もちろん、Apache はこのディレクトリにファイルを書き込むことはできません。
作業ディレクトリまたは mod_perl2 が書き込むディレクトリを変更する方法を教えてもらえますか?
SLES 10 で Apache2 Prefork を使用しています。