源地址:http://www.jwsblog.com/archives/58.html
环境
- ubuntu 16.04
- go1.6.3 linux/amd64
- php-go
- php7.0.9
php-go安装
参考说明文档
示例
示例模块php-go/example/hello.go
中比较全的写出了大部分示例(虽然没多少注释~)
# 编译示例模块hello.so
cd cd $GOPATH/src/github.com/kitech/php-go
make
ls -lh php-go/hello.so
tips: make
时可能会出现make: /usr/bin/php-config:命令未找到
,手动修改下Makefile
的第10行PHPCFG={yourPath}
将php-go/hello.so拷贝到你php的extension目录下,添加php.ini,php -m |grep hello
能看到hello扩展没报错就ok了,重启nginx就可以在php里测试了
编写自己的小Demo
- go
// php-go/example/jw.go
package main
import (
"github.com/kitech/php-go/phpgo"
)
type Jw struct {
}
func NewJw() *Jw {
return &Jw{}
}
func (j *Jw) Test(m int, n int) int {
return m + n
}
func main() {
panic("wtf")
}
func Jw_hello() string {
return "Aaaa"
}
func init() {
phpgo.InitExtension("jw", "0.1")
phpgo.AddFunc("jw_hello", Jw_hello)
phpgo.AddClass("Jw", NewJw)
}
-
编译
-
先修改
php-go/Makefile
,添加编译模块all: go build -v -buildmode=c-shared -o jw.so examples/jw.go clean: rm -f jw.so
-
- 编译
cd cd $GOPATH/src/github.com/kitech/php-go
make
ls -lh php-go/jw.so
sudo cp $GOPATH/src/github.com/kitech/php-go/jw.so $PHP_PATH/lib/php/extensions/no-debug-non-zts-20151012
echo "jw.so" >> $PHP_PATH/etc/php.ini
sudo service nginx restart
- 写php测试模块