2017-07-18 3 views
1

データベースからデータを取得したいPerlとCGIファイルがあります。私はperl(.pl)または( .cgi)ファイルを取得し、JSONで応答を得るAJAX呼び出しを使用しようとしているUIを持っています。私は、コマンドプロンプトを実行してperl/cgiファイルをチェックしてうまくいきます。これは私がcommand promptに私のコードを実行している方法です:サーバを使用せずにAJAXでPerl/CGIスクリプトを実行する

D:\>PerlExecutables\strawberry_32\perl\bin\perl.exe C:\Users\UserXYZ\Desktop\PerlExamples\test.cgi

である私は私のマシンにインストールするのいずれかの種類を行うことができず、また、私はApacheまたはIISなどのサーバを介してそれを実行したくない理由。 これはどのように達成できますか?実行するためにperl.exeパスを渡すなどしてAJAXでスクリプトを動作させる方法はありますか?

ありがとうございました!

+4

Perlを実行してCGIスクリプトをデプロイできる場合は、localhost上でWebサーバーとして動作するPerlプログラムをデプロイすることもできます。間違いなくHTTPサーバーが関与する必要がある場合、ブラウザーはプログラムを直接実行することを許可しません。 – Thilo

+1

perlベースのWebサーバー、http://mojolicious.org/perldoc/Mojo/Server/CGIをチェックしたいかもしれません。 –

+0

@Thilo私はhttps://metacpan.org/pod/HTTP::Daemonを見つけましたが、 –

答えて

2

これを行う1つの方法は、Plack::App::CGIBinを使用することです。 PSGI/Plackプロトコルを使用してCGIスクリプトをアプリケーションとしてマウントすることができます。

myapp.psgiとして(またはものは何でも自分のものが呼ばれた)、このようにそれを実行することを
use Plack::App::CGIBin; 
use Plack::Builder; 

my $app = Plack::App::CGIBin->new(root => "/path/to/cgi-bin")->to_app; 
builder { 
    mount "/cgi-bin" => $app; 
}; 

割引:それはローカルホスト上のポート3000でサーバーを開きますデフォルトで

$ plackup myapp.psgi 

。 Perlモジュールをインストールできる必要があります。あなたはStrawberry Perlを持っているので問題ではありません。最悪の場合、単にlocal :: libを使用してください。

また、リスニングのためにポートを開く必要があります。あなたが実際の本格的なWebサーバーをインストールする管理者を取得する以外の方法はありません。


PSGIプロトコルとPlackツールは、CGIの簡単で使いやすい置換えです。これらのアプリケーションを使用すると、大規模なアプリケーションを永続的に実行することが容易になり、非常に柔軟に対応できます。

関連する問題