問題タブ [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 - mod_perl ハンドラで異なるモジュールのメソッドを使用する
異なる perl モジュール間で変数を共有したいと考えています。そこで、変数 (私の場合はハッシュ変数) を保存する MyCache.pm という perl モジュールを作成しました。
これで、2 つのハンドラーができました。1 つのハンドラーは set メソッドを呼び出し、もう 1 つのハンドラーは get メソッドを呼び出して情報にアクセスします。
そして、ここにゲッターハンドラーがあります:
これで、これらの perl モジュールにアクセスするように (http.conf を介して) Apache を構成しました。セッターハンドラーを実行してからゲッターを実行しましたが、出力はありませんでした。
error.log には、いくつかのエントリがあります。
この行は get メソッドの 3 つの呼び出しです。それで、私は何を間違っていますか?問題を修正し、異なるハンドラー間でキャッシュ変数を共有するにはどうすればよいですか?
perl - perl モジュールを mod_perl ハンドラに変換するには?
Web サーバーで実行される cgi スクリプトに組み込まれているいくつかの perl モジュールがあります。これらのモジュールを mod_perl ハンドラに単純に変換するにはどうすればよいですか?
ありがとう。
perl - 別の perl モジュールから mod_perl ハンドラーを開始する
mod_perl ハンドラ (MyCacheHandler.pm と呼ばれる) を別の perl モジュール (MyModule.pm と呼ばれる) から直接開始するにはどうすればよいですか。現在、Web ブラウザー経由でハンドラーを開始しているためですが、MyModule で呼び出す方が少し簡単です。
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モジュールをインストールする必要があります。返信ありがとうございます。
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
ではありませんが、パターンがわかりません: gawk
、tar
、およびping
も機能しません。それでも、、、df
そしてls
すべてそうですdir
。pwd
しかし:
したがって、それらはすべて「x」ビットがすべて設定されており (「s」が 1 つある ping を除きますが、以下のエラー コードを参照してください)、たとえば、同一の ACLssh
を持っています。dir
では、なぜ出力を与えるべきssh
であり、失敗しても成功するのでしょうか? (フルパスまたは番号)gawk
dir
ls
更新: さらに厄介な/bin/gawk
ことに、同じメッセージがコード 256 で失敗し、/bin/tar
同様/bin/ping
にコード 512 で失敗します。
更新: OK、この部分は理にかなっています: コマンド ラインから失敗したバイナリを実行し、そのecho $?
直後に実行すると、 ssh
255 が返され、 2が返され、1 が返されます。これらは、mod_perl2 で取得したものの縮小バージョンです。ですので、リターンコードが 0 以外のものは動作しないようです。おそらくSTDERRに出力しているため、STDOUTは何もキャプチャしないため、空白が返されます。ping
tar
gawk
ああ、それが答えです-投稿します。