Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Niigata.pm #1

880 Aufrufe

Veröffentlicht am

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

Niigata.pm #1

  1. 1. Niigata.pm tech talk #1 モダンかもしれない←Perlウェブアプリケーション 開発入門
  2. 2. 自己紹介・Hayato Imai・@hayajo・Perl, PHP, Java, etc.・社内のなんでも屋さん
  3. 3. ボクとPerl・OJTで出会う 「すぐわかる Perl」 (深沢千尋:著 技術評論社)・Perl -> Java -> PHP・2009年ごろから返り咲き
  4. 4. モダンかもしれない←Perlウェブアプリケーション 開発入門 環境編
  5. 5. perlbrew http://perlbrew.pl/・複数のバージョンのperlをインストールして切り替え・システムperlの環境をよごさずにモジュール入れ放題・root権限いらず 導入方法 $ curl -kL http://install.perlbrew.pl | bash $ echo source ~/perl5/perlbrew/etc/bashrc >> ~/.bash_profile $ source ~/.bash_profile $ perlbrew install perl-5.14.2 ... ... $ perlbrew switch perl-5.14.2
  6. 6. cpanm http://search.cpan.org/~miyagawa/App-cpanminus/・CPANコマンドの代替・省メモリ・高速動作・簡単・クリーンなライブラリ環境の構築が可能導入方法(perlbrew環境下)$ perlbrew intall-cpanm$ cpanm -vcpanm (App::cpanminus) 1.5011 on perl 5.014002 built for i686-linux.........
  7. 7. Carton http://search.cpan.org/~miyagawa/carton/・アプリケーションごとに独立したライブラリ環境を構築・モジュールバージョンを固定できる・実行環境へのデプロイも楽々 導入方法 $ cpanm Carton $ carton -v carton v0.9.4
  8. 8. 環境まとめ$ curl -kL http://install.perlbrew.pl | bash$ echo source ~/perl5/perlbrew/etc/bashrc >> ~/.bash_profile$ source ~/.bash_profile$ perlbrew install perl-5.14.2$ perlbrew switch perl-5.14.2$ perlbrew install-cpanm$ cpanm carton
  9. 9. モダンかもしれない←Perlウェブアプリケーション 開発入門 WAF編
  10. 10. 最近はMojolicious推し
  11. 11. Mojolicious http://mojolicio.us/・依存モジュールの少ない、ポータブルなWAF・Mojolicious::Liteでsinatraライクなお手軽開発も可能・ドキュメント豊富 導入方法(Carton利用) $ carton install Mojolicious 利用例(Carton利用) $ carton exec mojo -- generate lite_app $ carton exec morbo -- myapp.pl [Fri Apr 27 16:34:31 2012] [info] Listening at "http://*:3000". ...
  12. 12. WAFまとめみなさん何推し? Amon2も作りやすいです。 Catalystは挫折しました><
  13. 13. モダンかもしれない←Perlウェブアプリケーション 開発入門デプロイ編(参考)
  14. 14. 構成 開発 push pull Stage Dev Git /Proddaemontools/supervisord WebApp Apache/Nginx /Upstart
  15. 15. デプロイ(1)実行ユーザーを作成$ sudo useradd -m myapp && sudo su - myappPerl環境構築myapp$ ...省略...Gitリポジトリをclonemyapp$ git clone <shared-repository> myapp依存モジュールをインストールmyapp$ cd myappmyapp$ carton install※テストmyapp$ carton exec -- prove
  16. 16. デプロイ(2)daemontools runスクリプト例 Apache conf 例#!/bin/sh <VirtualHost *:80>exec 2>&1 ServerName myapp.example.comexport HOME=/home/myapp <Proxy *>cd $HOME/myapp Order deny,allowexec setuidgid myapp ./script/start.sh Allow from all </Proxy> ProxyRequests Offscript/start.sh ProxyPreserveHost On#!/bin/sh ProxyPass / http://localhost:50080/source $HOME/perl5/perlbrew/etc/bashrc ProxyPassReverse / http://localhost:50080/carton exec morbo -- myapp RequestHeader set X-Forwarded-HTTPS "0" --listen http://*:50080 <VirtualHost>
  17. 17. まとめ環境構築$ curl -kL http://install.perlbrew.pl | bash$ echo source ~/perl5/perlbrew/etc/bashrc >> ~/.bash_profile$ source ~/.bash_profile$ perlbrew install perl-5.14.2$ perlbrew switch perl-5.14.2$ perlbrew install-cpanm$ cpanm cartonMojoliciousアプリケーションの用意&実行$ mkdir -p ~/work/myapp && cd ~/work/myapp$ carton install Mojolicious$ carton exec mojo -- generate lite_app myapp$ carton exec morbo -- myapp
  18. 18. ありがとうございました

×