問題タブ [psgi]

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 投票する
2 に答える
515 参照

perl - Catalyst 以外に最新の (Moose/PSGI) Web フレームワークはありますか?

次のような Catalyst 以外の Perl Web 開発フレームワークはありますか?

  • で書かれたMoose
  • PSGI 用にネイティブに記述されています (一部の PSGI エミュレーションではありません)。
  • Unicode対応/安全 - Perl 5.10以降
  • 小さく、拡張可能で素晴らしい

それとも町Catalyst唯一の男ですか?:)

私の知る限り、、、、ムースコアでDancerMojoliciousありJiftyません

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

perl - Plack::Handler::Apache2 を使用して Apache2 を使用する PSGI アプリケーションが「見つかりません」という結果になる

初めてのポスター、長い間ここに潜んでいます。

plackup で小さな PSGI アプリケーションを使用していますが、サブドメイン用に Apache2 に切り替えたいと考えています。「 plackup /home/ath88/work/kolle/script/dir.psgi -port 80 」でアプリケーションを実行します。それはplackupで完全に動作します。アプリケーションは非常にシンプルで、https://github.com/ath88/Kolletilmelding/blob/master/script/dir.psgiにあります。

しかし、明らかな理由から、plackup の代わりに Apache2 を実行したいと考えています。このために、Plack::Handler::Apache2 を使用したいと考えています。私の VirtualHost は次のようになります。

Apache2 は正常に再起動します。しかし、aths.dk にアクセスしようとすると、単に 404 が見つかりません。500 内部エラーが発生するため、アプリケーションのディレクトリは正しいです。apache2/error.log を見ると、次のようになります: [無関係、編集を参照]

これは、Apache2 を再起動するたびに発生します。

これをデバッグするのに4時間費やしました。私は完全に頭がおかしいです。

編集: SIGTERM は、再起動のために Apache2 を停止することによるものであることが判明しました。起動すると発生しません。愚かな私。

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

perl - dotcloudにpsgiでbugzillaをデプロイする方法は?

dotcloudにbugzillaをデプロイしたいのですが、perl環境はpsgiです。

ドキュメントには、「PSGIフックをレガシーCGIまたはFastCGIアプリケーションに追加するためのモジュール」を使用する必要があると書かれています。

CGI :: Emulate :: PSGIモジュールを見つけましたが、その方法がわかりませんでした。

私はPythonプログラマーであり、Perlの経験はありません。

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

perl - Starman を使用した plackup での動的パッケージのロード

starman を使用して plackup で Web アプリを実行しており、ユーザーの要求に基づいてパッケージを動的に読み込んでインスタンス化しようとしています。「require $packageName;」を使用しています $packageName にパッケージの名前が含まれるパッケージをロードするには、名前が構成ファイルに保存されます。次に、すべてのクラスが基本クラスから継承され、一連の既知のメソッドが含まれているため、インスタンスで既知の一連のコマンドを実行します。

これは Apache では問題なく動作しますが、何らかの理由で、@INC にライブラリ パスが含まれていて、パッケージ名が lib パスの最後のディレクトリからの絶対パスであるにもかかわらず、plackup がパッケージを見つけることができないと言っています。つまり、パッケージ名は Base::My::Package になります。

誰でもこの問題が発生しますか? Starman 内の他のパスを更新する必要がありますか? -I フラグを指定して plackup を実行し、環境の PERL5LIB 変数を更新しています。'use lib /...'メインアプリクラスでも試しましたが、どれも機能しません。

ありがとう

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

perl - PSGI ロギング (Perl)

不十分で不明確なドキュメントと初心者向けの効果的なハウツーにもかかわらず、私は PSGI が好きになり、現在、私のアプリケーションの 1 つでそれを使用しています。私が知りたいのは、マルチノード アプリケーション全体でログを管理する方法です。PSGI でのログインに関する「ベスト プラクティス」と見なされるものは何ですか?

0 投票する
3 に答える
3584 参照

perl - Perl アプリケーションのデプロイ

Perl アプリケーションをデプロイするためのベスト プラクティスは何ですか? CPAN モジュールをほとんどインストールせずにバニラ ボックスにデプロイしているとします。理想的なビルド、デプロイ方法は何ですか? Module::Build、ExtUtils::MakeMaker、その他? 大規模なアプリケーションでこれを繰り返し行った人からのベスト プラクティスのアイデアを探しています。

アプリケーションがサーバーにデプロイされています。CPAN やスクリプトではありません。これは実際には PSGI Web アプリケーションです。つまり、大量の Perl パッケージです。

私は現在、Net::SSH::Expect を使用して新しいサーバーに SSH 接続し、いくつかのツールをインストールしてサーバーを構成し、ソース管理から目的のアプリケーション ブランチをプルダウンするデプロイ スクリプトを持っています。これは正しいと思いますが、これはベストプラクティスですか?

次のステップは、アプリケーションの構築です。依存関係を追跡および管理し、CPAN からそれらの依存関係をインストールし、アプリケーションを実行する準備ができていることを確認するためのベスト プラクティスは何ですか?

ありがとう

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

perl - 静的 CGI スタイルの perl スクリプト (xxx.pl) を動的 PSGI アプリケーションに変換するには?

CGI スタイルの perl スクリプトは、このスタイルではテストが困難です。

(注: コードは ruby​​ で、 を使用していますRack::Test)。

$envしかし、静的ファイルを PSGI アプリケーション (コード参照、パラメーターとして受け入れ、 return ) に変換できれば[$status, $header, $body]、物事は簡単になりPlack::Test、残りはすべて実行されます。

私は PSGI 仕様を読んでいますが、一般的にこれへのルートを見ることができます。しかし、私はまだ知りたいのですが、これには存在する車輪がありますか?

Plack::Testまた、のインターフェイスは ほど美しくないと思いますがRack::Test、代替案はありますか?

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

windows - Windows 上の永続的な事前分岐 (ブロック) Perl Web サービス

Windows (2008 R2 x64 を想定) で適切な速度/容量で Perl Web アプリケーションを実行したいと考えています。

現在、私のアプリは Mojolicious に基づいており、Strawberry Perl を使用し、Apache 2.2-win32 を介して CGI として実行しています。約 20000 行のコードで、perl プロセスの作成には多くの時間がかかります。実際の処理はほんの一瞬ですが、ほぼ 1 ~ 2 秒です。アプリが Fast CGI または永続的なスタイルで構成されている場合、はるかに高速に実行され、はるかに多くの要求/秒を提供できると思います。

私が Linux を使用している場合、おそらく PSGI/Plack/Starman および Nginx リバース プロキシを使用していたでしょう。残念ながら、Starman/Starlet は Win32 をサポートしていません。

Morbo/Twiggy は、webapp がブロック (DB 呼び出し) を行い、一部の要求では完了するまでに時間がかかるため、私のニーズを満たしていません。

だから私は今、Fast CGI ソリューションを検討しています。残念ながら、Apache と mod_fcgid は Perl ( Stackoverflow )では動作しません。また、2.4 の mod_fastcgi と互換性のあるバイナリをまだ見つけたり、作成したりできません。まだ試していないのは mod_fastcgi + Apache 2.2 ですが、Apache 2.4 のままでよかったと思っています。

また、Mojo::Server::FastCGI と一緒に独自の FCGI プロセス マネージャー (プリフォークを管理するもの) を実行し、代わりに mod_proxy_fcgi を使用してリバース プロキシを実行できるかどうかも考えています。Perl モジュール FCGI::ProcManager も Win32 をサポートしていません。おそらくC#で、他のプロセスマネージャーはありますか?(できれば、さらにハッキングするためにC#で)

質問を要約しましょう -

  • Windows で Perl Web アプリを CGI よりもはるかに高速に実行する最良の方法は何ですか?ただし、ノンブロッキング スタイルではありません。
  • そしておそらくそれは、mod_fcgid を Perl で動作させる方法は? それとも、fcgi プロセス マネージャーはありますか?
0 投票する
1 に答える
281 参照

perl - Plack::Builder ポストを取得

特定のメソッド (GET または POST) のビルダー セクションで指定する方法はありますが、両方を同時に指定することはできませんか? ビルダーセクションの私の例。

get および post リクエストを処理しますが、GET リクエストの処理を無効にするにはどうすればよいですか?

ありがとう。