首页 > Go > Go(golang) FastCGI Client

Go(golang) FastCGI Client

最近用Go语言写给legendbase.com写网站的时候实现了个MVC框架,原理是根据uri请求,用reflect方法找到相应的controller跟method,然后执行之.当没有找到就根据uri后缀是否是php,如果是则调用fastcig-client执行配置目录下的php文件.如果再没有就写404错误. Go语言官方package没有client的实现,于是花了点功夫实现了个,开源出来,给需要的朋友节省点时间.

地址: http://code.google.com/p/go-fastcgi-client/

使用示例: 

func main() {

        reqParams := "name=value"

        env := make(map[string]string)
        env["REQUEST_METHOD"] = "GET"
        env["SCRIPT_FILENAME"] = "/Users/ivan/work/test/fcgi/test.php"
        env["SERVER_SOFTWARE"] = "go / fcgiclient "
        env["REMOTE_ADDR"] = "127.0.0.1"
        env["SERVER_PROTOCOL"] = "HTTP/1.1"
        env["QUERY_STRING"] = reqParams

        fcgi, err := fcgiclient.New("127.0.0.1", 9000)
        if err != nil {
                fmt.Printf("err: %v", err)
        }

        content, err := fcgi.Request(env, reqParams)
        if err != nil {
                fmt.Printf("err: %v", err)
        }

        fmt.Printf("content: %s", content)
}
 

Related posts:

  1. daemon function for Go language(golang)(fixed for mac/darwin)
  2. MySQL driver(驱动) liblbmysql for Go1
  3. Golang 实现的 mysql-proxy
  4. Gearman
分类: Go 标签: ,
  1. PeterSZW
    2013年12月6日23:52 | #1

    我运行 php 5.5.7RC1 windows 版本里的
    php-cgi.exe -b 9000

    然后修改了下 go 的代码

    env["SCRIPT_FILENAME"] = “D:\\www\\index.php”

    index.php内容如下

    返回content 只有

    X-Powered-By: PHP/5.5.7RC1
    Content-type: text/html

    这是php版本原因呢还是没读完content呢?

  2. PeterSZW
    2013年12月6日23:53 | #2

    [?php
    //date_default_timezone_set('PRC'); //去掉就显示 PHP Warning: phpinfo(): It is not safe to...
    phpinfo();
    ?]

  1. 2012年8月9日03:19 | #1