問題タブ [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.
perl - Catalyst 以外に最新の (Moose/PSGI) Web フレームワークはありますか?
次のような Catalyst 以外の Perl Web 開発フレームワークはありますか?
- で書かれた
Moose
- PSGI 用にネイティブに記述されています (一部の PSGI エミュレーションではありません)。
- Unicode対応/安全 - Perl 5.10以降
- 小さく、拡張可能で素晴らしい
それとも町Catalyst
で唯一の男ですか?:)
私の知る限り、、、、ムースコアでDancer
はMojolicious
ありJifty
ません
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 を停止することによるものであることが判明しました。起動すると発生しません。愚かな私。
perl - dotcloudにpsgiでbugzillaをデプロイする方法は?
dotcloudにbugzillaをデプロイしたいのですが、perl環境はpsgiです。
ドキュメントには、「PSGIフックをレガシーCGIまたはFastCGIアプリケーションに追加するためのモジュール」を使用する必要があると書かれています。
CGI :: Emulate :: PSGIモジュールを見つけましたが、その方法がわかりませんでした。
私はPythonプログラマーであり、Perlの経験はありません。
perl - Starman を使用した plackup での動的パッケージのロード
starman を使用して plackup で Web アプリを実行しており、ユーザーの要求に基づいてパッケージを動的に読み込んでインスタンス化しようとしています。「require $packageName;」を使用しています $packageName にパッケージの名前が含まれるパッケージをロードするには、名前が構成ファイルに保存されます。次に、すべてのクラスが基本クラスから継承され、一連の既知のメソッドが含まれているため、インスタンスで既知の一連のコマンドを実行します。
これは Apache では問題なく動作しますが、何らかの理由で、@INC にライブラリ パスが含まれていて、パッケージ名が lib パスの最後のディレクトリからの絶対パスであるにもかかわらず、plackup がパッケージを見つけることができないと言っています。つまり、パッケージ名は Base::My::Package になります。
誰でもこの問題が発生しますか? Starman 内の他のパスを更新する必要がありますか? -I フラグを指定して plackup を実行し、環境の PERL5LIB 変数を更新しています。'use lib /...'
メインアプリクラスでも試しましたが、どれも機能しません。
ありがとう
perl - PSGI ロギング (Perl)
不十分で不明確なドキュメントと初心者向けの効果的なハウツーにもかかわらず、私は PSGI が好きになり、現在、私のアプリケーションの 1 つでそれを使用しています。私が知りたいのは、マルチノード アプリケーション全体でログを管理する方法です。PSGI でのログインに関する「ベスト プラクティス」と見なされるものは何ですか?
perl - Perl アプリケーションのデプロイ
Perl アプリケーションをデプロイするためのベスト プラクティスは何ですか? CPAN モジュールをほとんどインストールせずにバニラ ボックスにデプロイしているとします。理想的なビルド、デプロイ方法は何ですか? Module::Build、ExtUtils::MakeMaker、その他? 大規模なアプリケーションでこれを繰り返し行った人からのベスト プラクティスのアイデアを探しています。
アプリケーションがサーバーにデプロイされています。CPAN やスクリプトではありません。これは実際には PSGI Web アプリケーションです。つまり、大量の Perl パッケージです。
私は現在、Net::SSH::Expect を使用して新しいサーバーに SSH 接続し、いくつかのツールをインストールしてサーバーを構成し、ソース管理から目的のアプリケーション ブランチをプルダウンするデプロイ スクリプトを持っています。これは正しいと思いますが、これはベストプラクティスですか?
次のステップは、アプリケーションの構築です。依存関係を追跡および管理し、CPAN からそれらの依存関係をインストールし、アプリケーションを実行する準備ができていることを確認するためのベスト プラクティスは何ですか?
ありがとう
perl - 静的 CGI スタイルの perl スクリプト (xxx.pl) を動的 PSGI アプリケーションに変換するには?
CGI スタイルの perl スクリプトは、このスタイルではテストが困難です。
(注: コードは ruby で、 を使用していますRack::Test
)。
$env
しかし、静的ファイルを PSGI アプリケーション (コード参照、パラメーターとして受け入れ、 return ) に変換できれば[$status, $header, $body]
、物事は簡単になりPlack::Test
、残りはすべて実行されます。
私は PSGI 仕様を読んでいますが、一般的にこれへのルートを見ることができます。しかし、私はまだ知りたいのですが、これには存在する車輪がありますか?
Plack::Test
また、のインターフェイスは ほど美しくないと思いますがRack::Test
、代替案はありますか?
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 プロセス マネージャーはありますか?
perl - Plack::Builder ポストを取得
特定のメソッド (GET または POST) のビルダー セクションで指定する方法はありますが、両方を同時に指定することはできませんか? ビルダーセクションの私の例。
get および post リクエストを処理しますが、GET リクエストの処理を無効にするにはどうすればよいですか?
ありがとう。