問題タブ [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.

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

perl - mod_perl ハンドラで異なるモジュールのメソッドを使用する

異なる perl モジュール間で変数を共有したいと考えています。そこで、変数 (私の場合はハッシュ変数) を保存する MyCache.pm という perl モジュールを作成しました。

これで、2 つのハンドラーができました。1 つのハンドラーは set メソッドを呼び出し、もう 1 つのハンドラーは get メソッドを呼び出して情報にアクセスします。

そして、ここにゲッターハンドラーがあります:

これで、これらの perl モジュールにアクセスするように (http.conf を介して) Apache を構成しました。セッターハンドラーを実行してからゲッターを実行しましたが、出力はありませんでした。

error.log には、いくつかのエントリがあります。

この行は get メソッドの 3 つの呼び出しです。それで、私は何を間違っていますか?問題を修正し、異なるハンドラー間でキャッシュ変数を共有するにはどうすればよいですか?

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

perl - perl モジュールを mod_perl ハンドラに変換するには?

Web サーバーで実行される cgi スクリプトに組み込まれているいくつかの perl モジュールがあります。これらのモジュールを mod_perl ハンドラに単純に変換するにはどうすればよいですか?

ありがとう。

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

perl - 別の perl モジュールから mod_perl ハンドラーを開始する

mod_perl ハンドラ (MyCacheHandler.pm と呼ばれる) を別の perl モジュール (MyModule.pm と呼ばれる) から直接開始するにはどうすればよいですか。現在、Web ブラウザー経由でハンドラーを開始しているためですが、MyModule で呼び出す方が少し簡単です。

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

perl - Apache2::Const モジュールをインストールできません

Debian 7.1.0 で動作する mod_perl 2.0.7 で Apache 2.2.25 をインストールしました。インストール中に mod_perl はApache2::Constという名前のモジュールをインストールする必要がありましたが、そうではありませんでした。mod_perl は、Apache2::Access、Apache2::Connection、Apache2::RequestUtil など、同じグループのモジュールをインストールしています。

したがって、cpan シェルでこのコマンド (i /Apache2::Const/) を使用すると、次のように出力されます。

そして、このコマンドを使用すると (Apache2::Const をインストールします):

私は実行しようとしました:

しかし、それは役に立ちませんでした。

また、次のスクリプトを実行すると:

それは出力します:

このモジュールを mod_perl パッケージから (Makefile.PL 経由で) 手動でインストールしようとしました。また、mod_perl を再インストールしようとしました。何も助けませんでした。

他のすべての Apache2::* モジュールは正しく動作します。

本当にApache2::Constモジュールをインストールする必要があります。返信ありがとうございます。

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

linux - mod_perl2 スクリプトから特定のバイナリが実行され、他のバイナリは実行されません (ls の可視性と +x にもかかわらず)

Perl 5.10.1 を使用する CentOS 6.4 上の Apache 2.2。

mod_perl スクリプト内からリモート ディレクトリ リストを取得しようとしてdie qx(id)apacheます。しかしssh、ヘルプ情報を出力するためだけに、パラメーターなしで実行できるようにはなっていません。それが私がこの質問でどうするかを尋ねていることです-それはssh接続できないことではありません.

死ぬ:

と:

死ぬ:

わかりました、それで、それを見つけて見ることができ、それに対する実行権を持っています (これは /usr/bin と /usr にも当てはまります)。

空の配列で死ぬので、試しました:

...これは次のように終了します:

どうしてこれなの?次の期待値を取得die qx(ssh)または終了するにはどうすればよいですか。die qx(/usr/bin/ssh)

興味深いことに、bash プロンプトから次のメッセージが表示されます。

では...ls利用できないアカウントから実行するにはどうすればよいsshですか? どちらもプログラムですが、なぜここで異なる動作をするのでしょうか?

更新: だけsshではありませんが、パターンがわかりません: gawktar、およびpingも機能しません。それでも、、、dfそしてlsすべてそうですdirpwdしかし:

したがって、それらはすべて「x」ビットがすべて設定されており (「s」が 1 つある ping を除きますが、以下のエラー コードを参照してください)、たとえば、同一の ACLsshを持っています。dirでは、なぜ出力を与えるべきsshであり、失敗しても成功するのでしょうか? (フルパスまたは番号)gawkdirls

更新: さらに厄介な/bin/gawkことに、同じメッセージがコード 256 で失敗し、/bin/tar同様/bin/pingにコード 512 で失敗します。

更新: OK、この部分は理にかなっています: コマンド ラインから失敗したバイナリを実行し、そのecho $?直後に実行すると、 ssh255 が返され、 2が返され、1 が返されます。これらは、mod_perl2 で取得したものの縮小バージョンです。ですので、リターンコードが 0 以外のものは動作しないようです。おそらくSTDERRに出力しているため、STDOUTは何もキャプチャしないため、空白が返されます。pingtargawk

ああ、それが答えです-投稿します。