問題タブ [apache2-module]
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.
c - C を正しく学習する: はいまたはいいえ?
私の主な言語は PHP ですが、他の言語で (あまり多くはありませんが) プログラミングを行ったことがあります。
私は C で Apache 用の 2 つのモジュールを作成しました。C で作成したのは、パフォーマンスが問題になるものの 1 つだったからです。(オンザフライで投影された世界地図を生成し、.png に出力します)。
これらのモジュールは機能します。これは、コードの品質を保証できる限りです。誤解しないでほしいのですが、私は正しいコードを書くために最善を尽くしましたが、改善の余地がたくさんあると確信しています。
現在のモジュールをスレッド化するように変更することを考えていますが、スレッド化されたソフトウェアの経験がなく、バグを追跡するなどの作業にはまだ多くの時間がかかります。
私の質問は、
最初に C で適切にプログラミングすることを学ぶべきか ( The C Programming Languageのコピーを入手する)、それとも別のアプローチをお勧めしますか?
注:
現在、Apache モジュール以外に C を使用する予定はありません。
c - Apacheモジュールをデバッグする方法
私は最近Apacheモジュールを書いています。メモリプールパラダイムを使用することは興味深いことですが、私は明らかに正しいことをしていません。セグメンテーション違反が発生しましたが、見つからないようです。私の現在のデバッグサイクルには、ap_rprintfsと、Apacheを再構築して再ロードするmakeスクリプトが含まれます。
このタイプの環境で作業するために利用できるツールの種類は何ですか?
apache2 - Apache 2.2.14 で mod_proxy_ajp を有効にするには?
Apache 2.1.14 をインストールして運用環境で実行しています。新しい要件により、モジュール mod_proxy_ajp の使用を開始する必要があります。
「./httpd -l」スクリプトを実行しても、コンパイル済みモジュール「mod_proxy_ajp」が表示されません。
Apache インスタンスを再コンパイルせずに mod_proxy_ajp を有効にする方法はありますか?
ありがとう。
perl - Apache 2 および Perl での認証モジュールの問題
Perl モジュールを Subversion で動作させようとしている SharePoint 開発者ですが、構文に問題があると思います。ユーザー名とパスワードを取得して Web サービスに渡し、true/false を取得して、その情報に基づいて認証するだけです。Perl でのモジュールのコードは次のとおりです。
誰か提案があれば教えてください。Apache Config ファイルで次のようなエラーが表示されます: Can't call method "value" on an undefined value at C:/usr/site/lib/Apache2/AuthGetUser.pm line 30. ありがとうございます。これが機能するようになったら、ブログ記事を近日中に投稿する予定です。
c - Apacheモジュール:各リクエストで出力が増え続ける
ApacheモジュールAPIに基づくプロジェクトのアイデアがあります。だから、私はAPIを学ぶための最初のApacheモジュールを書いています-単純なホスト名ルックアップ:
リクエストにハンドラパスの後にホスト名が含まれていない場合は、レスポンスデータに次のように伝えたいだけです。
「リクエストにホスト名が見つかりません。」
これはすべて機能していますが、1つだけ例外があります。それは、エラー結果を生成する後続のリクエストでエラー応答が追加され続けることです。これは、ホスト名ルックアップの結果では発生しません(ホスト名が指定されている場合)。問題の例:
エラーの場合、出力バッファに何か問題があったと確信しています。問題を指摘できる人はいますか?コードは次のとおりです。
前もって感謝します、
-aj
c - Apache モジュールは実行時に構成を挿入できますか?
Apache モジュールがグローバル構成構造を変更できるかどうか疑問に思います。
私が達成したいのは、Apache を再起動せずに新しい仮想ホストを注入することです。もちろん、すべてのワーカーがリサイクルされた後に変更が完全に有効になることは承知していますが、私にとっては、それでも再起動よりはましです。
以前にApacheモジュールを書いたことがありますが、構成は私にとって未知の土地です。config.c を読んでいるときに、ap_build_config() という関数が役立つことに気付きましたが、必要なことを行うためにどのように呼び出すのでしょうか? それはまったく可能ですか?
apache2 - Apache 2モジュールは、SSL要求を介して呼び出されているかどうかをどのように判断できますか?
ペイロードで参照URIを返す必要があるモジュールがあります。SSL接続を介して呼び出される場合は、httpsプレフィックスを持つURIを作成する必要があります。リクエストからポート番号を簡単に取得できますが、問題は、ユーザーがSSL用の任意のポートを選択できた可能性があることです(実際、この特定のApacheインスタンスは常に非標準のSSLポートで始まります)。
リクエスト構造内の解析されたURIはすべて、すでにhttp/httpsプレフィックスが削除されています。r-> server-> defn_nameフィールドに頼ることを考えています。このフィールドには、リクエストの仮想サーバーのconfファイルが実際に含まれています。それがhttpd-ssl.confで終わっているのを見ると、これはSSL接続であると推測できます。それでもハックのように感じます。実際には、ユーザーはそのconfファイルに別の名前を付けることができ、このアプローチを破ることになります。
別のアプローチは、構成ファイルを読み取ってSSL VirtualHost Listenポートを見つけることですが、私もこれを達成できませんでした。
リクエストがhttps経由で行われたかどうかを判断する非常に簡単な方法がないようですが、request_recから利用できるすべての構造をスキャンしたので、明らかなものは何も表示されません。
c - CのApacheモジュール:クライアントソケットにデータを書き込む方法は?
ポート 843 に接続しているFlash クライアントに 0 で終わる文字列を書き込むシンプルな mod_perl モジュールを作成しました。
そのため、モジュールを C で書き直そうとしていますが、プロトコル ハンドラが受け取るconn_rec構造体を介してクライアント ソケットにアクセスする方法がわかりません。
メーリング リストで質問し、#define CORE_PRIVATEを追加してap_get_module_config(conn->conn_config, &core_module)を使用しようとしましたが、これにより Web サーバーが壊れます。文字列はポート 843 (これで問題ありません) の両方に提供されますが、ポート 80 (これは問題ありません)。
誰かここで提案してください。
これが私の SocketPolicy.pm です (正常に動作しますが、大量のメモリが必要です):
これが壊れた mod_socket_policy.c です (ポート 80 をハイジャックします):
また、mod_perl のソースを調べたところ、同じメソッドを使用してクライアント ソケットにアクセスしているようです。
では、なぜ私の Perl モジュールは機能し、C モジュールは機能しないのでしょうか?
perl - mod_perl2 を使用した Strawberry Perl: CPAN から Apache2 モジュールを構築する
mod_perl メーリング リストの手順に従って、Strawberry Perl 5.10 と mod_perl2を問題なくインストールしました。Apache2::
ただし、スクリプトが使用するさまざまなモジュールをインストールしようとすると、エラーが発生します。1 つ ( Apache2::Reload
) これにもかかわらず、インストールできました。
...いくつかの .pm ファイルを にコピーするだけですsite/lib
。ただし、他のものについてはあまりよくわかりません。たとえばApache2::RequestRec
、次のエラーが表示されます。
Apache2::
Strawberry Perl でモジュールをコンパイルするコツはありますか? 自分の Apache バイナリもコンパイルする必要がありますか? (もしそうなら、Strawberry に付属の make ツールでそれを行うことはできますか?)
apache - Apache 2.2 および/または win32 で mod_libpq を使用できますか?
mod_libpqを Apache 2 用にコンパイルできた人はいますか? かなり大きな変更があったので、ソースを更新する必要があるかもしれませんが、それは誰かによって既に行われていますか?
また、win32 用にコンパイルされていますか (Apache のバージョンか、別の Web サーバー全体か)。