通过“即时编译”从源代码在Apache下运行.go文件

我可以使用以下代码在Apache的网站上运行Go应用程序。


hello.go:


package main


import (

    "os"

)


func main() {

    os.Stdout.WriteString("Content-Type: text/html; charset=UTF-8\n\n")

    os.Stdout.WriteString("Hello!\n")

}

.htaccess:


AddHandler cgi-script .exe

我使用该应用程序进行编译,go build hello.go并且http://localhost/hello.exe可以按预期工作。


但是,现在我必须在源代码中进行的每个更改之后重新编译。


在访问时是否可以通过某种方式告诉Apache运行hello.go(Apache应该运行go run hello.go)http://localhost/hello.go?


顺便说一句,这只是为了加快发展,而不是为了生产!


一只斗牛犬
浏览 175回答 3
3回答

四季花海

一个简单的解决方案是使用一个工具,该工具根据对源文件的更改重新编译您的代码。举个例子GoWatch。或者,您也可以fsnotify按照Erik所述,自己尝试。示例:简单编译守护程序。您也可以go run在CGI脚本中调用。

繁星点点滴滴

您可以使用gorun,它使您可以#!/usr/bin/gorun在文件的顶部放置一行,使其像脚本一样运行。gorun会即时编译它,然后运行它。我已经在制作golang脚本中使用了很多,而且我希望它也可以用于CGI。您必须将脚本标记为可执行(chmod +x),并告诉apache该.go扩展名是可执行的。不确定我会建议将其用于生产环境,但它应该gorun具有缓存,因此应能合理有效地工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go