phoenix_cgi
1.0.0
Phoenix的小型CGI控制器。
將PhoenixCGI添加到您的deps中mix.exs :
defp deps do
[
{ :phoenix_cgi , "~> 0.1" } ,
...
]
end然後,這真的很重要,在您的endpoint.ex中,在plug Plug.Parsers中添加以下body_reader :parsers:
plug Plug.Parsers ,
body_reader: { PhoenixCGI.CacheRawBody , :read_body , [ ] } ,
...這將導致您的請求正文保存在私有字段中,以便我們能夠將其傳遞給CGI腳本。
然後,您將能夠將PhoenixCGI用作任何控制器。例如,如果您想在A /git/上使用git-http-backend ,以服務於/opt/git/repos/中的所有存儲庫,則可以如下設置:
match :* , "/git/*path" , PhoenixCGI ,
binary: "/usr/lib/git-core/git-http-backend" ,
extra_env: % {
GIT_PROJECT_ROOT: "/opt/git/repos/" ,
GIT_HTTP_EXPORT_ALL: "1"
}您還可以定義一個將定義的插頭,例如,使用assign/3要服務的項目。
defp set_repo ( conn ) do
assign ( conn , :extra_env , % {
GIT_PROJECT_ROOT: "/opt/git/repos/demo.git" ,
GIT_HTTP_EXPORT_ALL: "1"
} )
end然後使用它
pipeline :git do
plug :set_repo
end
scope "/" do
pipe_through :git
match :* , "/git/*path" , PhoenixCGI ,
binary: "/usr/lib/git-core/git-http-backend"
end 該文檔可在Hexdocs上找到。
版權(C)2020 David Baumgartner
該程序是免費的軟件:您可以根據自由軟件基金會發布的GNU通用公共許可證的條款進行重新分配和/或修改它,該版本是許可證的第3版,或(按您的選項)任何以後的版本。
該程序的分佈是希望它將有用的,但沒有任何保修;即使沒有對特定目的的適銷性或適合性的隱含保證。有關更多詳細信息,請參見GNU通用公共許可證。
您應該已經收到了GNU通用公共許可證的副本以及此計劃。如果沒有,請參見http://www.gnu.org/licenses/。
我很高興地接受通過Github的拉力請求。