Lua勉強日記(7)
今日は、CGIを動かそうとして、かなり回り道しました。
正しい方法とは違うみたいですが、嵌ったのを記録しておきます。
以下は多分、正しいLuaでのCGIの動かし方ではありませんので、ご了承ください。
ダウンロード
cgiluaをダウンロードする。
http://luaforge.net/frs/download.php/3399/cgilua-5.1.2.zip
ダウンロード後に展開すると、srcディレクトリの中に*.luaという拡張子のファイルが12個ありました。
始めて遭遇する動的言語のライブラリらしいライブラリです。
lfs.dllが必要になるので、LuaFileSystemをダウンロードする。
http://luaforge.net/frs/download.php/3347/luafilesystem-1.4.1-win32-lua51.zip
ダウンロード後に展開すると、こちらは、lfs.dllしか無い。展開するとdll一個というのも、もう慣れました。
インストールというか配置
展開した中のsrcディレクトリにある、cgilua が、cgiluaの全体のようです。
今回も簡単のために、CGIを置くディレクトリ配下に、cgiluaディレクトリを配置します。
早速、Hello world.を動かそうとしたけど、SAPI がnilとかいうエラーが出た。
SAPIって何?
CIGLua は、cgi, fcgi mod_lua(Apacche), isapi(IIS) での各動作環境の違いを吸収する SAPI(Server API)という層を用意しているようです。
仕切直し
keplerという、Luaのパッケージの集合みたいなプロジェクトのソース中に、CGI用のASPIの実装があったので、それを利用します。
C:\lua5.1 │ lfs.dll │ lua5.1.dll │ lua5.1.exe │ ├─cgilua │ authentication.lua │ cgilua.lua │ cookies.lua │ dispatcher.lua │ loader.lua │ lp.lua │ mime.lua │ post.lua │ readuntil.lua │ serialize.lua │ session.lua │ urlcode.lua │ └─sapi └─cgi info.lua kepler-1.1から拝借 request.lua kepler-1.1から拝借 response.lua kepler-1.1から拝借
hello.cgi
#!c:/lua5.1/lua5.1.exe local info = require "sapi.cgi.info" local req = require "sapi.cgi.request" local res = require "sapi.cgi.response" SAPI = { Info = info.open (), Request = req.open (), Response = res.open (), } require "cgilua.cgilua" cgilua.htmlheader() cgilua.put([[ <html> <head> <title>Hello World</title> </head> <body> <strong>Hello World!</strong> </body> </html>]])
これで、ApacheのDocumentRoot配下に置いた hello.cgiにブラウザからアクセスしたら、ようやく、Hello worldが表示されました。
遠回りしたけど、本当は、keplerのWindows版をインストールして使うのが、正面玄関のようですね。
http://luaforge.net/frs/download.php/2722/kepler-1.1-beta2-win32-lua51.exe
これを使ってCGIする方法は次回調べようと思います。
Имеется такая услуга – добровольное медицинское обслуживание . Она предполагает, что вы платите небольшую сумму за абонемент и ходит на прием целый год бесплатно. Однако опросы показали, что лишь 6% жителей Санкт-Петербурга знают об этом. По какой причине? Потому что частным клиникам выгоднее брать плату за каждый визит. А если честный врач попытается рассказать про добровольное медицинское обслуживание клиенту – это сулит ему увольнением. Информация о ДМО уже спровоцировала много скандалов, сразу после того как информацию об этом распространил один возмущенный врач. Его уволили , после того, как он предложил ДМО постоянному клиенту. Самое ужасное, что информация по ДМО есть в открытом доступе, просто натыкались на эту информацию только случайные люди. Как отстоять свои права? О правилах предоставления такой услуги и обязанностях клиник можно узнать, сделав запрос в Яндексе: “добровольное медицинское обслуживание”. И именно обслуживание, а не страхование.
34j5c6h86