0

HTML Webページからperlプログラムを実行する方法に関するチュートリアルを探しています。これを行う方法を明確に説明するチュートリアルや良い出発点さえ見つかりません...

私がやろうとしているのは、perl で WWW::mechanize を使用して、wordpress サイトのバックエンドでいくつかの情報を入力することです。それを行う前に、実際のWebサイトがブラウザに表示されるように、取得したhtmlをブラウザに表示したいだけです。これが私のperlです:

print "Content-type: text/html\n\n";
use CGI;
use WWW::Mechanize;
my $m = WWW::Mechanize->new();



use WWW::Mechanize;
$url = 'http://www.storagecolumbusohio.com/wp-admin';
$m->post($url);
$m->form_id('loginform');
$m->set_fields('log' => 'username', 'pwd' => 'password');
$page = $m->submit();
$m->add_handler("request_send",  sub { shift->dump; return });
$m->add_handler("response_done", sub { shift->dump; return });
print $page->decoded_content;

このコードは、コマンド プロンプトから機能します (実際には、私は Mac を使用しているため、ターミナルを使用しています)。ただし、ユーザーがリンクをクリックしたときに Web サイトから機能するようにしたいと考えています。

私はいくつかのことを学びましたが、私は perl 初心者なので混乱しています。これを行うには 2 つの方法があるようです (私が間違っている可能性もありますが、これは私が読んだものから集めたものです)。embperl や modperl などの「テンプレート メソッド」を使用する方法について、人々が話し続けている方法の 1 つです。もう 1 つは、perl プログラムを cgi スクリプトとして実行することです。さまざまなサイトで読んだことによると、cgi が最も単純で最も一般的なソリューションのように思えます。そのためには、httpd.conf ファイルの数行を変更する必要があると言われました。それを変更するためにそのファイルをどこで見つけることができますか? 私はApacheサーバーを使用していることは知っていますが、私のサイトはdreamhostによってホストされています. このファイルに引き続きアクセスできますか?アクセスできる場合はどうすればよいですか?

おそらく、私には手がかりがなく、非常に混乱していると言えるので、どんな助けも大歓迎です。

4

2 に答える 2

1

dreamhostで cgi スクリプトを使用するには、次のようにすれば十分です。

  1. .cgiスクリプトに拡張子を付ける
  2. スクリプトをウェブサーバーから見える場所に置く
  3. スクリプトに適切な権限を与えます (少なくとも 0755)

たとえば、おもちゃのスクリプトを入手できるかどうかを確認したい場合があります。

#!/usr/bin/perl
print "Content-type: text/plain\n\nHello world\n";

大きなスクリプトのデバッグに取り組む前に作業します。

とはいえ、スクリプトに表示されないのはヘッダーです。のようなことを言いたいと思うと思います。

print "Content-type: text/html\n\n";

あなたの他のprint電話の前に。

于 2012-08-13T23:00:58.500 に答える
0

最初にローカルサーバーでコードをテストすることをお勧めします。Windowsなどを使用していると思いますので、xamphttp ://www.apachefriends.org/en/xampp.htmlまたはwamphttp : //www.wampserver.com/en/を使用するか、実際のOSを入手してください。 http://www.debian.orgのように(vmでも実行できます)。

このようなコンテンツタイプを印刷するのではなく、「ヘッダーの印刷」を使用してください。次のページを参照してください:http: //perldoc.perl.org/CGI.html#CREATING-A-STANDARD-HTTP-HEADER%3a

Apacheサーバーがperl用に適切に構成されていることを確認してください。これらの一般的な問題も参照してください:http: //oreilly.com/openbook/cgi/ch12_01.html

コマンドラインからPOSTおよびGETデータをPerlCGIスクリプトに送信するにはどうすればよいですか?も参照してください。コマンドラインでのテスト用。

于 2012-08-14T18:42:50.860 に答える