摘要:找到含有的一行,去掉前邊的。可能你需要修改的默認(rèn)文檔,在的位置按要求添加即可。寫文件首先我們寫一個(gè)的文件,作用就是會(huì)把我們的后綴修改為。
前言
對(duì)于Apdche這個(gè)東西,絕大多數(shù)人都是非常熟悉的。很多人都會(huì)詬病這個(gè)Apache,說它效率不高而且非常消耗資源,然后會(huì)建議用Nginx。這些不能否認(rèn),但是我還是很喜歡Apache,因?yàn)樗容^穩(wěn)定。
Apache關(guān)于Lua我不知道是哪一個(gè)版本編譯進(jìn)去了的,但是最新版的是有的。在Apache的bin目錄下有一個(gè)lua51.dll很明顯,這個(gè)是Lua5.1版本的,目前Lua已經(jīng)到了5.3版本了,如果你想追求新的版本的話,你可以自己把a(bǔ)pache編譯一次。然后還有,在Apache的modules目錄下有一個(gè)mod_lua.so是開啟Apache和Lua“通信橋梁”的文件。
找到含有mod_lua.so的一行,去掉前邊的#即可。
找到含有mod_rewrite.so的一行,去掉前邊的#。
可能你需要修改Apache的默認(rèn)文檔,在DirectoryIndex的位置按要求添加即可。
將AllowOverride后邊的None寫為All,表示在整臺(tái)服務(wù)器上都開啟了URL重寫。
寫Demo文件首先我們寫一個(gè).htaccess的文件,作用就是會(huì)把我們的Lua后綴修改為php。,內(nèi)容如下:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} info RewriteRule (.*).php $1.lua [NC]
新建一個(gè)info.lua,寫入內(nèi)容如下:
-- Extend tostring to report function type (C or Lua) do local type, tostr = type, tostring function tostring(obj) local type, val = type(obj), tostr(obj) if type == "function" then type = pcall(coroutine.create, obj) and "Lua " or "C " -- coroutines cannot start at a C function return type .. val else return val end end end local safe_replacements = { ["<"] = "<", [">"] = ">", ["&"] ="&", } local function safestring(...) return tostring(...):gsub("[<>&]", safe_replacements):gsub(" ", "
") end local function emstring(...) return """.. safestring(...) ..""" end local function print_info(info) print [[mod_lua info ]] end local function compile_info(req) local info = {} do -- Lua compile options local dump = string.dump(function() end) local gc_pause = collectgarbage("setpause", 1); collectgarbage("setpause", gc_pause) local gc_stepmul = collectgarbage("setstepmul", 2); collectgarbage("setstepmul", gc_stepmul) info["Lua configuration"] = { -- Bytecode header is undocumented, see luaU_header in lundump.c Version = ("%i.%i"):format(math.floor(dump:byte(5) / 16), dump:byte(5) % 16), Endianness = dump:byte(7) == 1 and "little" or "big", int = dump:byte(8)*8 .. " bit integer", size_t = dump:byte(9)*8 .. " bit integer", ["VM instruction"] = dump:byte(10)*8 .. " bit integer", Number = dump:byte(11)*8 .. " bit " .. (dump:byte(12) == 1 and "integer" or "float"), -- package.config is undocumented, see luaopen_package in loadlib.c ["Path seperator"] = safestring(package.config:sub(1,1)), ["Lua package path"] = safestring(package.path:gsub(package.config:sub(3,3), " ")), ["C package path"] = safestring(package.cpath:gsub(package.config:sub(3,3), " ")), -- Garbage collection values _are_ documented :) ["GC count"] = ("%.0f bytes"):format(collectgarbage"count" * 1024), ["GC pause"] = ("%.0f%%"):format(gc_pause), ["GC step multiplier"] = ("%.0f%%"):format(gc_stepmul), } end do -- Globals local g = {} for key, value in pairs(getfenv(0)) do local typev = type(value) local str if typev == "table" then str = safestring(value) if value ~= getfenv(0) then -- don"t recursively follow _G str = str .. "]] for group, settings in pairs(info) do print("
mod_lua
".. group .. "
") print [[]] for key, value in pairs(settings) do print("
" end print [[") end print " ".. key .." ".. value .."
打開Apache,訪問http://127.0.0.1/info.php 就能看到
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/35732.html
摘要:目前最常用的軟件反向代理服務(wù)器有和。基于實(shí)現(xiàn)動(dòng)態(tài)代理為了實(shí)現(xiàn)動(dòng)態(tài)代理方案,需要在反向代理服務(wù)器中增加定制的功能。同時(shí),由于反向代理服務(wù)器需要處理大量的代理請(qǐng)求,因此會(huì)頻繁的讀取反向代理配置數(shù)據(jù)。 基于 Nginx 的動(dòng)態(tài)代理 作者:趙波日期:2016 年 8 月 4 日 在實(shí)際應(yīng)用中,遇到了這樣一個(gè)場(chǎng)景: 已有一個(gè)手機(jī) APP 客戶端,需要在該 APP 客戶端中實(shí)現(xiàn)通過 Web 的形式...
閱讀 2094·2021-11-24 10:34
閱讀 3068·2021-11-22 11:58
閱讀 3728·2021-09-28 09:35
閱讀 1740·2019-08-30 15:53
閱讀 2791·2019-08-30 14:11
閱讀 1566·2019-08-29 17:31
閱讀 557·2019-08-26 13:53
閱讀 2153·2019-08-26 13:45