Perl

札幌でPerlのイベントを開催しました

onagatani 2010年08月09日

先日こちらで告知させて頂いたWebテクノロジーセミナーin Hokkaidoを札幌市産業振興センターにて開催致しました。翌日にはHokkaido.pmも開催され北海道ではなかなかないPerlの祭典の2日間となりました。
今後もWeb制作者の方が参考になるようなセミナーを開催していきますので宜しくお願い致します。

また開催レポートを広報ブログに記事を掲載させて頂きましたのでこちらからご覧ください

Hokkaido.pmの開催レポートについてはhttp://hokkaido.pm.orgに掲載されています。

投稿者 onagatani : 08/09 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーをはてなブックマークに追加 はてなブックマーク数

Hokkaido.pm #0

onagatani 2010年05月17日

先日、こちらで紹介させて頂いた Hokkaido.pm ですが、初回は通常のイベントではなく、懇親会を企画しています。Perl に興味のある方は是非とも参加をお願いします!

日時:2010年5月29日(土) 開場19:30、開始20:00
場所:札幌 大通周辺(まだ店が確定していません。確定次第アップデートします)
対象:Perl に興味のある方
   ※googleグループへの参加は必須ではありませんが、可能であればお願いします。

■ イベントへの申し込みはこちらから↓
http://atnd.org/events/4549

# 最近宣伝ばかりですね...

投稿者 onagatani : 05/17 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーをはてなブックマークに追加 はてなブックマーク数

北海道でもPerl勉強会始めませんか?Hokkaido.pm入会募集です!

onagatani 2010年04月20日

こんにちわ。onagataniです。

今回はMTの話題ではないのですが、最近進めている活動の宣伝を。
perlの勉強会などを行うグループを作りました。

サイト:http://perl-hokkaido.org
グループ:http://groups.google.com/group/perl-hokkaido?hl=ja

自分のブログにも書いたのですが、北海道でもPerlが活発に使われるようになって、
勉強会とか頻繁に行われるようになるとうれしいなと。
北海道在住の方もそうでない方もperlに興味があればgoogleグループに入って下さい。
自分もperlプログラマーとしてはまだまだなので、perl/プログラム初心者の方の入会歓迎です!

メンバーも順調に増えていますが、
たくさんの人と交流できるようにメンバーが増えると嬉しいです。

勉強会の日程はまだ決まっていませんが
サイトが完成次第、キックオフを行いたいと思っております。

みんなで北海道のperlを盛り上げましょう。

宜しくお願いします。

追記:perl-hokkaidoからHokkaido.pmに名称変更しました

投稿者 onagatani : 04/20 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーをはてなブックマークに追加 はてなブックマーク数

Perlの勧め(4) Sledgeを使おう2

onagatani 2009年10月06日

onagataniです こんにちわ。
先日新聞の1面を飾るという快挙をしましたが皆さんお元気ですか?

また前回からずいぶん時間をあけてしまいましたが
Perlの勧め第4回です。

前回はapacheとmod_perlのインストールまで完了したので、
今回は実際にSledgeを使用して「hello」を表示する所まで説明したいと思います。

■Sledgeインストール

ThinkIT
こちらにインストール方法及びSledgeの紹介・簡単なアプリの作成まで掲載されていますので、
インストールまでを済ませて下さい。

●アプリの作成の前に。。

ここまで進めた方はお気づきかもしれませんが、SledgeはWebページ毎にトリガスクリプトが必要になります。

例)

  • index.cgi => Exsample::Pages::Root.pmのdispatch_indexを呼び出す
  • hoge/index.cgi => Exsample::Pages::Hoge.pmのdispatch_fooを呼び出す


こんな感じです。

これを運用してしまうと、ちょっと大きなサイトだとトリガスクリプトの数が
膨大になってしまい管理しきれなくなります。

そこでSledgeにはSledge::Dispatcherなどのディスパッチモジュールが別途公開されていて、
これを使用するとURLのパスと対応するクラスを記述したファイルを1つ用意すると、
トリガスクリプトが必要なくなります。

例)設定ファイルの中身

  • / = Exsample::Pages::Root
  • /hoge = Exsample::Pages::Hoge

トリガスクリプトが必要なくなり大分楽になりました。ただしmod_perl専用です。

CGIで動作させたい!設定ファイルなんて用意したくない!という人のために
SledgeではURLのパスから対応するdispatchを自動的に設定するモジュールも公開されています。

Sledge::Engine

Sledge::Engineを使用すると設定ファイルが必要なくなります。

というわけで今後はSledge::Engineを使用してアプリケーションの作成を説明していきます。

・Sledge::Engineのインストール

*事前にSledge本体のインストールは済ませおいて下さい。
*memcachedを使用するのでインストールを事前に済ませておいて下さい。
基本的にはcpan Sledge::Engineでインストールできると思います。
Sledge::Utilsでcpanがエラーになった場合にはSledge::Utilsをダウンロードして、
perl Makefile.pl
make install で直接インストールしてみてください。
再度cpan Sledge::Engineでインストールができるかと思います。

・追加でインストールするモジュール

 

これでやっと準備が整いました。

■アプリケーションの作成
今回は以下の設定でアプリケーションを作成してみたいと思います。

  • 作るもの:サーバ管理用のツール
  • 出来ること:サーバ情報を記録して一覧で閲覧できるようにする
  • プロジェクト名:ServerAdmin
  • パス:/var/www/serveradmin
  • 文字コード:UTF8(unflagged-utf8)

1・パスを作成する

/var/www/serveradminを作成

(都度変更してください)

2・パス以下にlib、etc、htdocs、viewディレクトリを作成する

etc以下にはhttpdディレクトリを作成

3・apache/mod_perlのconfを作成

画像などをフロントのapache、動的処理をバックエンドのmod_perlで処理できるように
apache用のconfを作成しetc/httpd内に設置し、httpd.confからincludeします。

Serveradmin80.conf


    ServerName serveradmin.exsample.com       #適宜変更
    DocumentRoot /var/www/serveradmin/htdocs #適宜変更

    RewriteEngine On
    RewriteRule ^/((.*)\.(js|css|jpg|gif|png|swf))$ /var/www/serveradmin/htdocs/$1 [L]  #適宜変更
    RewriteRule ^/(.*) http://localhost:8080/server/$1 [P,L,QSA]
    ProxyPassReverse / http://localhost:8080/server/

次にmod_perl用のconfを作成し、mod_perl.confからincludeします。

ServerAdmin8080.conf


use lib qw(
    /var/www/serveradmin/lib #適宜変更
);



    PerlModule ServerAdmin
    SetHandler perl-script
    PerlHandler ServerAdmin

4・libディレクトリに移動しslege-setupを実行

# sledge-setup ServerAdmin
ServerAdminディレクトリが生成されます

5・ServerAdmin.pmファイルの作成(Sledge::Engine用)

lib/ServerAdmin.pm

package serverAdmin;
use strict;
use Sledge::Engine;

__PACKAGE__->setup;

1;
__END__

6・Charset.pmファイルの作成

デフォルトの文字コードがeuc-jpなので、
unflagged-utf8に変更する

lib/ServerAdmin/Charset.pm

package ServerAdmin::Charset;

use strict;
use base qw(Sledge::Charset::Null);

sub content_type {
    return 'text/html; charset=UTF-8';
}

1;
__END__

7・Pages.pmファイルの修正

今回作成するアプリケーション用にlib/ServerAdmin/Pages.pmを修正します。

7-1 sessionをmemcachedに変更

Sledge::Session::MySQLをSledge::Session::Memcachedに修正

7-2 charsetをServerAdmin::Charsetに変更

use ServerAdmin::Charset;を追加
Sledge::Charset::DefaultをServerAdmin::Charsetに変更

7-3 テンプレートの設定処理を追加する

useの最終行の下あたりに以下を追加

__PACKAGE__->register_hook(
    BEFORE_DISPATCH => sub {
        my $self = shift;
        my $config = $self->create_config;
        $self->tmpl->set_option(
            INCLUDE_PATH => [
                $config->tmpl_path . '/include', #後でインクルードファイルを追加します
            ],
        );
    },
);

BEFORE_DISPATCHにコードレフにてテンプレートオプションを指定することにより、
dispatch毎に同じ処理を書かなくて済むようになります。

8・lib/ServerAdmin/Config/_common.pmを修正

コンフィグファイルの中身を修正します。本来は_test.pmや_production.pmなど2つ用意して
ステージングと本番を自動的に読み替えるのですが今回は共通の_common.pmだけに記述します。
以下の項目を追加・修正します。

$C{TMPL_PATH}     = '/var/www/serveradmin/view'; #テンプレートファイルのパスを指定します
$C{DATASOURCE}    = [ 'dbi:mysql:serveradmin','serveradmin', 'serveradmin' ]; #データべース名、user、passwdを指定します
$C{COOKIE_NAME}   = 'serveradmin_sid';
$C{MEMCACHE_SERVERS} = [ qw/ 127.0.0.1:11211 / ]; #memcachedのIP、ポート番号を指定します
$C{SESSION_SERVERS}  = $C{MEMCACHE_SERVERS};

9・テスト用にindexページを作成

lib/ServerAdmin/以下にPagesディレクトリを作成(このディレクトリ以下にコントローラを設置します)
Pages以下にRoot.pmファイルを作成。dispatch_indexが実際に実行されるメソッドになります。

lib/Pages/Root.pm

package ServerAdmin::Pages::Root;
use strict;
use base qw(ServerAdmin::Pages);

__PACKAGE__->tmpl_dirname('/');

sub dispatch_index {
    my $self = shift;
    $self->tmpl->param(mes => 'hello'); #テンプレートに値を入れる
}

1;
__END__

10・indexページのテンプレートを作成

TemplateToolkit用のテンプレートファイルを作成します。
文法についてはこちらのページが参考になるでしょう。

view/index.html

[% PROCESS 'header.inc' %]
[% mes %]
[% PROCESS 'footer.inc' %]

11・テンプレートにincludeしているheaderとfooterを作成

view/includeディレクトリを作成しその中に設置する

/view/include/header.inc

<html>
<head>
<title>ServerAdmin</title>
</head>
<body>

/view/include/footer.inc

</body>
</html>

12・apache、mod_perlを再起動する

エラーがでましたらmod_perlのエラーログを確認してみましょう。
問題なければブラウザでhttp://serveradmin.exsample.com/にアクセスすると
helloと表示されるはずです。

ざっと説明しましたが、まだ、実用的ではありません。

次回はDBを使用して、認証を行いサーバの管理情報を記録するまでを行いたいと思います。

投稿者 onagatani : 10/06 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーをはてなブックマークに追加 はてなブックマーク数

Perlの勧め(3) Sledgeを使おう

onagatani 2009年07月08日

onagataniです こんにちわ。 前回からずいぶん時間をあけてしまいましたが Perlの勧め第3回です。 今回から何回かに分けてSledgeというオープンソースのフレームワークを紹介したいと思います。 PerlのフレームワークというとCatalystがデファクトスタンダードな雰囲気ですが、 枯れてるもの大好きな自分はSledgeを紹介します。 *まぁ、単に他をよく知らないだけです。 なお、他にも沢山フレームワークがあるので最新のものがよければ Arkなども良いかもしれません。 まずは動作環境の設定を行いたいと思いますが、 自分の環境以外でどうなるのか自信がないのでw 自分と同じ環境を想定します。 OSとミドルウェアは ・CentOS5.2 ・perl5.8.8 ・apache2.2 ・apache1.3(mod_perl組み込み) ・memcached(セッションを格納する) ・mysql5 なぜapacheが2つ必要なのかですが、 mod_perlのデメリットしてプロセスが肥大化してしまう事があげられます。 なので動的な出力以外は通常のapacheにお願いして、 動的な処理だけapache(mod_perl組み込み)で処理しようという魂胆です。 perl、apache2、mysqlについてはyumで最新版をinstallしておきます。 memcachedについてはdag経由でyumでinstallできます。 残りのapache1.3+mod_perlのinstallを手順を追って説明します。 1・apacheの1系最新版をダウンロードする wget http://httpd.apache.org/download.cgi tar zxvf apache_1.3.41.tar.gz   2・mod_perlの最新版をダウンロードする  http://perl.apache.org/dist/ tar zxvf mod_perl-1.31.tar.gz 3・mod_perlインストール   cd /path/to/mod_perl-1.3.1   perl Makefile.PL \   EVERYTHING=1 \   APACHE_SRC=/path/to/apache_1.3.41/src \   USE_APACI=1 \   PREP_HTTPD=1 \   DO_HTTPD=1   make   make install 4・apacheのインストール   cd /path/to/apache_1.3.41   ln -s src/modules/perl/libperl.module src/modules/perl/libperl.a   ./configure --with-layout=Apache \   --target=mod_perl \   --prefix=/path/to/mod_perl \ --enable-module=so \ --activate-module=src/modules/perl/libperl.a --enable-module=perl make make install 5・念のためApache::Request入れる   cpan Apache::Request   apxsのパス訊かれたら   /path/to/mod_perl/bin/apxs 6・最後に   apache1.3のconfを修正します   keepaliveはoff、port番号も8080番なりに変更します。   プロセス数はメモリの許す限りで調整します。 /path/to/mod_perl/bin/mod_perlctl start で起動確認 ちょっと長くなったので今回はここまでとします。 肝心のSledgeの説明ができていないですが まずは環境整備からとおうことでw 次回はSledgeのinstallを紹介したいと思います。

投稿者 onagatani : 07/08 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーをはてなブックマークに追加 はてなブックマーク数
お問い合わせはこちらから お電話でのお問い合わせ03-5475-5101

MTエンジニアブログ

Solanowa ウェブ社内報
「SKYARC Solanowa」を利用したウェブ社内報を作成する構築サービス

配布プラグイン一覧

注目記事

RSS

ページの先頭へ戻る