Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
UbuntuにOpenResty入れてLuaプログラミング 
イオシフ▼高倉佑輔
OpenRestyとは? 
NginxにLuaモジュールなどを組み込んだバンドル版
Luaとは? 
●この子(の名前の元ネタ) 
●(あ、この子は「エンドブレイカー!」というゲームの私の持ちキャラの一人です。) 
●この作品は、株式会社トミーウォーカーのPBW『エンドブレイカー!』用のイラスト として、高倉佑輔が作成を依頼した...
真面目にLuaの説明 
●スクリプト型プログラミング言語。 
●プロトタイプ型オブジェクト指向 
●高い移植性 
●Cとの親和性 
●スクリプト言語最速のJITコンパイラ 
などなど
こんなところで使われています(1) 
●Ragnarok Online
こんなところで使われています(2) 
●Civilization V
こんなところで使われています(3) 
●Europa Universalis IV
他にもこんなところで…… 
●Osm2pgsql 
●VOCALOID3 
●PHANTASY STAR ONLINE 2 
●アイドルマスター2
それはともかく 
この言語をWebに使う方法はないかと探してました。 
とおもったらLapisなるWebフレームワークが。 
(OpenResty + MoonScript)
しかしまあ…… 
ほにゃららScript系メタ言語が作られてる言語って 
基本的に慣れづらいよねぇ 
Javascriptとか。
というわけで 
MoonScript 
これまたCoffeeScriptのような言語。 
要するにクラス型で書ける 
Luaコードを生成するメタ言語。 
Lapisは、MoonScriptで書ける。 
もちろんLuaでも。 
Lapisにはテン...
必要なdebパッケージのインストール 
●sudo apt-get install libreadline-dev libncurses5-dev libpcre3- dev libssl-dev perl make 
●sudo apt-ge...
ソースのダウンロード 
●git clone https://github.com/openresty/ngx_openresty.git 
●cd ngx_openresty 
●cd ngx_openresty-1.7.4.1rc2 
●v...
openresty-ubuntu-build.sh の内容 
./configure  
--sbin-path=/usr/sbin/openresty  
--conf-path=/etc/openresty/nginx.conf  
--e...
OpenRestyが動いたら…… 
●luarocksから色々取ってくる 
–sudo luarocks install moonscript 
–sudo luarocks install lapis
Lapis スタートアップ 
●lapis new 
●すると以下のようなコードができる 
lapis = require "lapis" 
class extends lapis.Application 
"/": => 
"Welcome ...
ここでLuaにコンパイル 
moonc app.moon 
これを行うと、Luaコードが生成される。
app.lua の中身 
(実コードをご覧ください)
app.lua の実行 
lapis server 
で、 
http://localhost:8080/ 
にアクセス! 
(実際にご覧ください)
ご清聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

OpenRestyでLuaプログラミング

1,669 views

Published on

小江戸らぐ 2014年10月のオフな集まり(第147回)にて発表。

その後まさかのUbuntu PPAのメンテナンスを依頼されるとは。

Published in: Software
  • Be the first to comment

OpenRestyでLuaプログラミング

  1. 1. UbuntuにOpenResty入れてLuaプログラミング イオシフ▼高倉佑輔
  2. 2. OpenRestyとは? NginxにLuaモジュールなどを組み込んだバンドル版
  3. 3. Luaとは? ●この子(の名前の元ネタ) ●(あ、この子は「エンドブレイカー!」というゲームの私の持ちキャラの一人です。) ●この作品は、株式会社トミーウォーカーのPBW『エンドブレイカー!』用のイラスト として、高倉佑輔が作成を依頼したものです。 ●イラストの使用権は高倉佑輔に、著作権は春琴弥生に、全ての権利は株式会社 トミーウォーカーが所有します。
  4. 4. 真面目にLuaの説明 ●スクリプト型プログラミング言語。 ●プロトタイプ型オブジェクト指向 ●高い移植性 ●Cとの親和性 ●スクリプト言語最速のJITコンパイラ などなど
  5. 5. こんなところで使われています(1) ●Ragnarok Online
  6. 6. こんなところで使われています(2) ●Civilization V
  7. 7. こんなところで使われています(3) ●Europa Universalis IV
  8. 8. 他にもこんなところで…… ●Osm2pgsql ●VOCALOID3 ●PHANTASY STAR ONLINE 2 ●アイドルマスター2
  9. 9. それはともかく この言語をWebに使う方法はないかと探してました。 とおもったらLapisなるWebフレームワークが。 (OpenResty + MoonScript)
  10. 10. しかしまあ…… ほにゃららScript系メタ言語が作られてる言語って 基本的に慣れづらいよねぇ Javascriptとか。
  11. 11. というわけで MoonScript これまたCoffeeScriptのような言語。 要するにクラス型で書ける Luaコードを生成するメタ言語。 Lapisは、MoonScriptで書ける。 もちろんLuaでも。 Lapisにはテンプレートエンジンもあるらしい。
  12. 12. 必要なdebパッケージのインストール ●sudo apt-get install libreadline-dev libncurses5-dev libpcre3- dev libssl-dev perl make ●sudo apt-get install libpq-dev ●sudo apt-get install ruby1.9.1 ruby1.9.1-dev git-core libxslt1- dev libgd2-xpm-dev libgeoip-dev unzip zip build-essential ●sudo apt-get install luarocks ●sudo apt-get install postgresql postgresql-contrib ●sudo apt-get install mariadb-server-5.5
  13. 13. ソースのダウンロード ●git clone https://github.com/openresty/ngx_openresty.git ●cd ngx_openresty ●cd ngx_openresty-1.7.4.1rc2 ●vim openresty-ubuntu-build.sh ●sh openresty-ubuntu-build.sh
  14. 14. openresty-ubuntu-build.sh の内容 ./configure --sbin-path=/usr/sbin/openresty --conf-path=/etc/openresty/nginx.conf --error-log-path=/var/log/openresty/error.log --http-client-body-temp-path=/var/lib/openresty/body --http-fastcgi-temp-path=/var/lib/openresty/fastcgi --http-log-path=/var/log/openresty/access.log --http-proxy-temp-path=/var/lib/openresty/proxy --http-scgi-temp-path=/var/lib/openresty/scgi --http-uwsgi-temp-path=/var/lib/openresty/uwsgi --lock-path=/var/openresty/nginx.lock --pid-path=/var/run/openresty.pid --with-luajit --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-http_stub_status_module --with-http_secure_link_module --with-http_sub_module --with-http_postgres_module # <- Only if you want to access Postgres make sudo make install
  15. 15. OpenRestyが動いたら…… ●luarocksから色々取ってくる –sudo luarocks install moonscript –sudo luarocks install lapis
  16. 16. Lapis スタートアップ ●lapis new ●すると以下のようなコードができる lapis = require "lapis" class extends lapis.Application "/": => "Welcome to Lapis #{require "lapis.version"}!"
  17. 17. ここでLuaにコンパイル moonc app.moon これを行うと、Luaコードが生成される。
  18. 18. app.lua の中身 (実コードをご覧ください)
  19. 19. app.lua の実行 lapis server で、 http://localhost:8080/ にアクセス! (実際にご覧ください)
  20. 20. ご清聴ありがとうございました

×