LINUX.ORG.RU

Запуск gci-скрипта через lighttpd

 , ,


0

1

Хотел чтобы lighttpd обращался к cgi-скрипту написанному на lua, а он уже генерировал страницу. я включил модуль cgi командой

 lighty-enable-mod cgi
сам скрипт лежит в /usr/lib/cgi-bin

Скопировал файл 10-cgi.conf из папки conf-available в conf-enabled. Его содержимое:

nick@morgan:/etc/lighttpd$ cat conf-enabled/10-cgi.conf 
# /usr/share/doc/lighttpd-doc/cgi.txt

server.modules += ( "mod_cgi" )

$HTTP["url"] =~ "^/cgi-bin/" {
	cgi.assign = ( ".lua" => "/usr/bin/lua5.1" )
}

## Warning this represents a security risk, as it allow to execute any file
## with a .pl/.py even outside of /usr/lib/cgi-bin.
#
#cgi.assign      = (
#	".pl"  => "/usr/bin/perl",
#	".py"  => "/usr/bin/python",
#)

Но вот не пойму, как обращаться к скрипту и вообще, все ли я сделал чтобы к нему обратиться?

Добавь расширение lua ещё и в static-file.exclude-extensions, иначе сервер будет просто отдавать файл с исходным кодом.

как обращаться к скрипту и вообще

Ну дык в твоём случае http://localhost/cgi-bin/script.lua

А если тебе надо чтобы cgi генерировал страницу и при обращении к http://localhost/, то


$HTTP["url"] =~ "^/" {
	cgi.assign = ( ".lua" => "/usr/bin/lua5.1" )
}

index-file.names = ( "index.lua", "index.html", "index.htm")

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".lua" )

И положить в корень скрипт index.lua

По другому можно так. Это оставить как есть:
$HTTP["url"] =~ "^/cgi-bin/" {
	cgi.assign = ( ".lua" => "/usr/bin/lua5.1" )
}
, но применить url-rewrite:
url.rewrite-once = (
"^(/.*)$" => "/cgi-bin/script.lua$1",
)
В данном случае любое обращение будет обрабатываться указанным скриптом.

PS: а что, lua не умеет FastCGI? Это ж получше чем ламповый CGI.

firestarter ★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.