Archive for » 8 月, 2009 «

日曜日, 8 月 30th, 2009 | Author: djodjo

CGIやPHPでとれる環境変数、REQUEST_URIとSCRIPT_NAMEですが、普通に使う分には中身が同じなので気にしてなかったのですが、mod_rewriteを使ったら、あら!違うじゃないですか。とハマッたのでメモ

以下のように、とあるCGIにアクセスした場合は

http://localhost/info.cgi
REQUEST_URI /info.cgi
SCRIPT_NAME /info.cgi
おなじ

じゃ、例えば
http://example.jp/blog/200908/01.html
といったURLを
http://example.jp/blog/article.cgi?id=20090801
と書き換えたとすると、REQUEST_URIとSCRIPT_NAMEはそれぞれ以下のようになる。

▼ブラウザから送られてきた要求のURI
$ENV{REQUEST_URI} = /blog/200908/01.html

▼CGIスクリプト名
$ENV{SCRIPT_NAME} = /blog/article.cgi

ポイントは、

REQUEST_URIはそのまま、【ブラウザから送られてきた要求のURI
SCRIPT_NAME
は【実行されているスクリプトのパス】ですね。

はまりポイントである。

Category: Perl  | Tags: ,  | One Comment
火曜日, 8 月 04th, 2009 | Author: djodjo

で、これが目的。Catalystをインストールしてみる。

  1. cpan Catalyst::Runtime
  2. cpan Catalyst::Devel
  3. cpan Catalyst::View::TT

で、いくつか問題がありました。

  1. Perlのバージョンが5・10系だと、Catalyst::Develのインストールで起こられた。なので、Perlをバージョンダウン
  2. cpan install Catalyst::Develで下記エラー

    Failed during this command:
    JDB/Win32-Process-0.14.tar.gz                : make NO
    BZAJAC/Proc-Background-1.10.tar.gz           : make_test NO
    FLORA/Catalyst-Devel-1.19.tar.gz             : make_test NO 2 dependencies missing (Win32::Process,Proc::Background)

    で、自動でインストールできなかったWin32::Processを個別にcpanから入れようとしても、同じくエラー。
    当然か!
    で完了なわけですが、Catalyst::Develが入らない。なので、ここはppmでインストールしてみる。面白いことに、ActivePerlだけかと思いきやStrawberry Perlでも利用できる。

    ppmで先にWin32-Processをインストール

    PPM> install Win32-Process
    Install package ‘Win32-Process?’ (y/N): y
    Installing package ‘Win32-Process’…
    Bytes transferred: 12323
    Files found in blib\arch: installing files in blib\lib into architecture depende
    nt library tree
    Installing C:\strawberry\perl\site\lib\auto\Win32\Process\Process.bs
    Installing C:\strawberry\perl\site\lib\auto\Win32\Process\Process.dll
    Installing C:\strawberry\perl\site\lib\auto\Win32\Process\Process.exp
    Installing C:\strawberry\perl\site\lib\auto\Win32\Process\Process.lib
    Installing \site\lib\Win32\Process.html
    Installing C:\strawberry\perl\site\lib\Win32\Process.pm
    PPM>

もういっかいcpanからcatalyst::Develをインストール。

OK。成功!!!

Category: Perl  | Tags: ,  | Leave a Comment
月曜日, 8 月 03rd, 2009 | Author: djodjo

cpanコマンドの設定メモ。よく忘れるんだこれが。

  • 設定一覧
    • o conf
  • CPANミラーのURL設定
    • o conf urllist [http://......,http://.....]
  • CPANミラーのURL追加
    • o conf urllist push 追加するURL
      • これでurllistの後ろに追加される
    • o conf urllist unshift 追加するURL
      • これでurllistの先頭に追加される
  • CPANミラーのURL削除
    • o conf urllist pop 削除するURL
  • Proxyの設定
    • o conf http_proxy http://プロキシ名:ポート
    • o con ftp_proxy http://プロキシ名:ポート
  • Proxyに認証がいる場合
    • o conf proxy_user ユーザ名
    • o conf proxy_pass パスワード
  • 設定の確定・保存
    • o conf commit
    • これを忘れると保存されない。

Category: Perl  | Tags:  | Leave a Comment
月曜日, 8 月 03rd, 2009 | Author: djodjo

Perlを好く使うんですが、Vimとかemacsとか使いこなせないんで、Windowsで開発してます。(笑)
で、PerlはActivePerlを使ってたんですが、Strawberry Perlって環境もあるときき試してみることに。最近買った、モダンPerl入門 (CodeZine BOOKS)
って本で知りました。(遅いかっ!)

インストール手順

strawberry-perl-for-windows

  • ダウンロード
    http://strawberryperl.com/から5.10系か5.8系を選んでダウンロード
  • exeなのでそのままインストーラを実行
  • 試した5.10は特に選択肢もないままインストール完了
  • インストール先
    • c:\strawberry\
    • Perl.exeなど:c:\strawberry\perl
    • DLLやgccなど:C:\strawberry\c
  • 環境変数PATH
    • c:\strawberry\perl\binとC:\strawberry\c\bin
    • perlとDLLへのパスとなる。
    • 追記!!!効果のほどはわかりませんがいかもPATHに追加しておく
    • C:\strawberry\c\mingw32\bin
    • 結果PATHは
    • C:\strawberry\c\mingw32\bin;c:\strawberry\perl\bin;C:\strawberry\c\bin
    • となった

感想
まず、gccやDLLを内包しているという点は結構大きい。
開発をwindowsで行っても実際に本番サーバはLinux系のことが多いので、各種ライブラリはやはりCPANから持ってくる。まれに、というか結構ActivePerlのPPMには存在しないものもあり、結構面倒なのでこれはすごくイイ
インストール先がc:\perlでないのもOK。インストール先の選択肢が無く一瞬あせったが、 ちゃんとかぶらないようになってた。ウレシイ
ちなみに、ActivePerlと共存させるため、シンボリックリンクでc:\perlを作ってみました

Category: Perl  | Tags: ,  | Leave a Comment
月曜日, 8 月 03rd, 2009 | Author: djodjo

StrawberryPerlでWeb::Scraperインストールしようとしたら
not_found_libxml2_dll
って怒られた。
libxml2.dllはというと下記にあるという。
http://xmlsoft.org/sources/win32/
ここからダウンロードして再チャレンジ

とおもったら、StrawberryPerlってこれらDLLを内包しているのがメリットだったはず!!
探してみると
c:\strawberry\c
の下にDLLがあるある。

結局、
c:\strawberry\c
がPATHに含まれていないのが問題でした。

特に気にせずインストールすればPATHには自動で追加されるはずです。
(インストール前に起動したcmd.exeつかってた・・・)

Category: Perl, 未分類  | Tags: , ,  | Leave a Comment
月曜日, 8 月 03rd, 2009 | Author: djodjo

今までActivePerlをよく使ってたんですが、StrawberryPerlってのもあり試してみることに。
ただ、今までの環境も壊したくないのでC:\Perlをシンボリックリンクにしたいなぁと。
で、シンボリックリンクはショートカットとは異なるので作るのは下記のコマンド

mklink /d c:\perl c:\ActivePerl

/dオプションつけなければファイルとしてリンクが作られる。

注意!
削除するときはdelコマンドではなく、rdコマンド
rd c:\perl

delだとその中身まで消えてしまうらしい・・・・えっ?なにそれ。コワイ

Category: Perl  | Tags: ,  | One Comment