Golang 切片之 interface 接口类型

用 PHP 表示一个数组结构如下:

这个 $arr 就是一个数组,它是由几个数组对象组成,PHP 数组可以这样非常灵活随意的赋值,数字,字符串,类等等,什么类型的结构都可以直接这样表示。

在 Golang 中,这里面的数组相当于 map,那么如何表示这样的结构呢?

继续阅读“Golang 切片之 interface 接口类型”

Nginx 报错 Permission denied 和 Connection refused 排查解决

记录一下各种环境中 nginx 的错误和解决办法。

13: Permission denied

Nginx错误:2017/04/19 14:46:46 [crit] 4172#0: *671 open() “/data/vhosts/xunlei.com/test/” failed (13: Permission denied), client: 192.168.35.54, server: www.test.com, request: “GET / HTTP/1.1”, host: “www.test.com”

经查权限问题导致,网站目录是 root 用户组,而 nginx 是运行的 nobody 用户进程,修改网站目录为 nobody 用户组。

继续阅读“Nginx 报错 Permission denied 和 Connection refused 排查解决”

Laravel 关联查询返回错误的 id

在 Laravel Eloquent 中使用 join 关联查询,如果两张表有名称相同的字段,如 id,那么它的值会默认被后来的同名字段重写,返回不是期望的结果。例如以下关联查询:

继续阅读“Laravel 关联查询返回错误的 id”

百度联盟如何验证 HTTPS 站点

本站是 HTTPS 站点,在百度联盟添加站点页面,输入 blog.tanteng.me 点击“验证”进入验证页面,提示两种方式,1. 把文件放根目录 2. 添加 meta 信息,都试了,无法验证。

继续阅读“百度联盟如何验证 HTTPS 站点”

Mac设置环境变量每次需要source才能生效

为了使用 Beego 框架的 Bee 工具,需要在 Mac 上添加环境变量,按以往的方式在 ~/.bash_profile 中添加 PATH 然后 source 使其生效就可以了,但是现在每次重启机器或者终端都需要 source 一次才生效,我使用的是 iterm2 的终端 + zsh 插件,在网上看了一下,解决办法是在 ~/.zshrc 文件的末尾添加如下语句:

果然,这样问题就解决了。

继续阅读“Mac设置环境变量每次需要source才能生效”

Golang 中 url 的 encode/decode

PHP 有 urlencode 和 urldecode 两个函数可以方便的对 url 进行编码和解码,在 Go 中,使用 net/url 库也很简单实现,具体示例如下:

继续阅读“Golang 中 url 的 encode/decode”

Go 搭建 WebSocket 服务端例子

Go 搭建一个简单 WebSocket 服务端代码例子 test.go, 如下:

继续阅读“Go 搭建 WebSocket 服务端例子”