問題タブ [cgi-application]
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 - CGI::Application アプリの nginx fastcgi 設定
C::A アプリを nginx fastcgi 環境 (debian 6.0) で動作させ、spawn-fcgi を使用しようとしています。
C::ルートは次を使用して構成されます$self->mode_param( path_info=> 1, param => 'rm' );
example.com/cities
問題は、example.com/profile/99
私が要求しているC::A アプリの URL ( など) が何であれ、それが常にホームページを表示することexample.com/index.pl
です。
私のnginxのセットアップは
同様の方法でいくつかのphpアプリを正常にセットアップしました。
fastcgi_param
ただし、この場合、必要な C::A にエッセンシャルを渡していないのではないかと思います。
あなたの考えは何ですか?
perl - Perl CGI::Session save_param はすべてのパラメータを配列として 1 つのキーの下に保存します
CGI::Session
セッションデータを保存するために使用していますCGI::Application
(具体的CGI::Session
には、モジュールを介して使用していCGI::Application::Plugin::Session
ます)。アプリケーション モードの 1 つで、次のようにします。
パラメータをセッション データに保存するには、パラメータを使用して取得すると、他のパラメータがサーバー側に送信され、セッションから取得されたユーザ パラメータ$self->session->param('user')
を介してアクセスできる場合でも、データが含まれているのはユーザ パラメータだけであることがわかります。パラメータの配列です。$q->param()
ただし$self->session->param('user')
、パラメーター「ユーザー」の内容を含む単一の文字列が返されると思います。
この動作は予期されたものですか?
もしそうなら、なぜですか?
perl - Perl nginx REST CGI::アプリケーション
シンプルな CGI::Application::Dispatch ベースの REST アプリケーションを Apache サーバーから Nginx に変換しようとしています。アプリケーションは Apache の下で問題なく動作しますが、Nginx の下で実行すると、Dispatch リクエストのルート レイヤー (/app) のみが機能します。パスに /app/doit などの追加部分があると、呼び出しが Forbidden で失敗します。
URL を fastcgi に渡す方法を変更する必要があると思われますが、URL を分割する方法が明確ではありません。私が見つけたほとんどの例は、dispatcher.cgi タイプのスクリプトがある場合の分割用ですが、C:A:D は /app として呼び出されることを想定し、URL の /doit 部分を参照することを想定しているため、それを達成する方法がわかりません。
現在のロケーション ブロックは次のとおりです。
Apache でのセットアップは非常に簡単でした。
perl - Perl - CGI::Application - データベースからセッション変数を作成する
データベース内に一連の構成変数が保存されており、次のクエリを介してキーと値のペアにアクセスできます。
これらのキーと値のペアを CGI::Applicaiton セッションにロードしたいと考えています。現時点では、これは手動で行われます (データベースからではなく、ハードコードされています)。
キーと値のペアの束。DBI とループのいくつかの形式でこれを行うより賢明な方法はありますか?
ありがとう
perl - CGI::Application param() が設定されていません
をベースとして使用するコードがありますCGI::Application
が、何かが正しく機能していません。
何かを設定しようとすると$Template->param()
、一見設定されません。
$Template
に等しい$self->load_tmpl($template);
そして、私が保存したい作品は次のとおりです。
\%a_hash_ref
期待値が含まれていることはわかっています。同様の形式があります。
また、もしそうなら
保存されませんが、
は、$Pagination
hash_ref でもあります。
すべての値が本来あるべきものであることはわかっています。また、機能するはずの単純な文字列でも試してみましたが、設定されていません。私が実行するとき、私はこれを知っています:
設定する必要があるすべての変数を出力しますが、期待される変数 ('Hey!xD'
文字列を含む) がありません。また、このダイ ダンパーは値を設定しようとした後であるため、実際にコードが実行されることもわかっています。
テンプレート ファイルには、次のコードが含まれています。
$(document).ready(function () { mainFunction('[%symbol%]'); });
どんな助けでも大歓迎です。
編集:
これは、パラメータに与えられているものです:
[ { 'date' => '2006-07-05', 'avg_gain' => undef, 'bollinger_mid' => '32.80000', 'symbol' => 'BBQ' }, { 'date' => '2006- 04-04', 'avg_gain' => undef, 'bollinger_mid' => '34.55656', 'symbol' => 'AAPL' } ... ]
perl - Perl CGI::Fast はデータを送信せずに接続を閉じます
CGI::Application
FastCGI を使用して Nginx 間で通信する Perl アプリケーションをデプロイしようとしています。
Nginx は「502 Bad Gateway」を返し続け、エラー ログには次の情報が記録されます。
2015/02/03 12:40:03 [エラー] 11209#0: *2 アップストリームからの応答ヘッダーの読み取り中に接続が途中で閉じられました, クライアント: 10.1.1.23, サーバー: www.example.com, リクエスト: "GET /test .fcgi HTTP/1.1"、アップストリーム: " http://127.0.0.1:5001/test.fcgi "、ホスト: "www.example.com"
Nginx サイトの構成は次のとおりです。
CGI::Fast
問題が Perl アプリケーション自体にあるかどうかを確認するために、ドキュメントにあるテスト コードに基づいて新しい fcgi アプリケーションを作成しました。
を実行する./test.fcgi
と、ポート 5001 にバインドされていることがわかりnetstat
ます。ブラウザで URL にアクセスすると、この非常にシンプルなアプリでも 502 が返されます。Carp
書き込み中のエラー ログには何もありません。
アプリケーションの起動時間が長いため、プレーン CGI (ラッパー スクリプト経由)を使用したくありません。また、アプリケーション全体を Plack/PSGI に変換することもできません。
CGI::Fast
ドキュメントの単純な例であっても、Nginx が Perl と通信しない理由をどのように理解できますか?