SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
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-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
ソースのダウンロード 
●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
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
OpenRestyが動いたら…… 
●luarocksから色々取ってくる 
–sudo luarocks install moonscript 
–sudo luarocks install lapis
Lapis スタートアップ 
●lapis new 
●すると以下のようなコードができる 
lapis = require "lapis" 
class extends lapis.Application 
"/": => 
"Welcome to Lapis #{require "lapis.version"}!"
ここでLuaにコンパイル 
moonc app.moon 
これを行うと、Luaコードが生成される。
app.lua の中身 
(実コードをご覧ください)
app.lua の実行 
lapis server 
で、 
http://localhost:8080/ 
にアクセス! 
(実際にご覧ください)
ご清聴ありがとうございました

Mais conteúdo relacionado

Mais de Iosif Takakura

Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントSphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントIosif Takakura
 
DocFXで脱Excel方眼紙!
DocFXで脱Excel方眼紙!DocFXで脱Excel方眼紙!
DocFXで脱Excel方眼紙!Iosif Takakura
 
技術的負債との戦い方
技術的負債との戦い方技術的負債との戦い方
技術的負債との戦い方Iosif Takakura
 
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみたIosif Takakura
 
C#初心者がxamarinに手を出してみた
C#初心者がxamarinに手を出してみたC#初心者がxamarinに手を出してみた
C#初心者がxamarinに手を出してみたIosif Takakura
 
Sphinxで同人誌を書いてみた
Sphinxで同人誌を書いてみたSphinxで同人誌を書いてみた
Sphinxで同人誌を書いてみたIosif Takakura
 
ようこそ先輩 - 2014年8月2日
ようこそ先輩 - 2014年8月2日ようこそ先輩 - 2014年8月2日
ようこそ先輩 - 2014年8月2日Iosif Takakura
 
Osuncが終わったら帰りは警察署に行きましょう
Osuncが終わったら帰りは警察署に行きましょうOsuncが終わったら帰りは警察署に行きましょう
Osuncが終わったら帰りは警察署に行きましょうIosif Takakura
 

Mais de Iosif Takakura (8)

Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントSphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメント
 
DocFXで脱Excel方眼紙!
DocFXで脱Excel方眼紙!DocFXで脱Excel方眼紙!
DocFXで脱Excel方眼紙!
 
技術的負債との戦い方
技術的負債との戦い方技術的負債との戦い方
技術的負債との戦い方
 
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
 
C#初心者がxamarinに手を出してみた
C#初心者がxamarinに手を出してみたC#初心者がxamarinに手を出してみた
C#初心者がxamarinに手を出してみた
 
Sphinxで同人誌を書いてみた
Sphinxで同人誌を書いてみたSphinxで同人誌を書いてみた
Sphinxで同人誌を書いてみた
 
ようこそ先輩 - 2014年8月2日
ようこそ先輩 - 2014年8月2日ようこそ先輩 - 2014年8月2日
ようこそ先輩 - 2014年8月2日
 
Osuncが終わったら帰りは警察署に行きましょう
Osuncが終わったら帰りは警察署に行きましょうOsuncが終わったら帰りは警察署に行きましょう
Osuncが終わったら帰りは警察署に行きましょう
 

OpenRestyでLuaプログラミング