在服务器上启动golang
我在电脑上创建了一个微型围棋程序:在服务器上启动golang,go,Go,我在电脑上创建了一个微型围棋程序: package main import ( "fmt" "log" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:]) } func main() { http.HandleFunc("/", handler) log.Fatal(http
package main
import (
"fmt"
"log"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
在Mac上使用终端:
$ cd $HOME/go/src/hello
$ ./hello
服务器正在启动。使用Safari:
http://localhost:8080/hello
我听到“你好,我爱你好!”
到目前为止还不错。但我的挑战是将这个二进制文件放到服务器上并运行相同的程序
在服务器上
Debian 8使用webmin在根目录中创建文件夹,并将二进制文件放入该文件夹
[root@server ~]# cd /go/
[root@server go]# ./hello
sh: 1: ./hello: Permission denied
[root@server go]#
Go文件夹和hello二进制文件的权限为0644。好的,和大多数文件一样
如何将Golang部署到服务器并在服务器上启动Golang?上一步有很多文档,但我在服务器端找不到任何文档。我认为您需要使用交叉编译 当你在mac上启动
go build-o hello.
时,它正在为你的mac构建一个二进制文件
但是要在linux上运行它,需要使用交叉编译:GOOS=linux go build-o hello。
。它将为您的服务器构建二进制文件
您可以阅读Dave Cheney的这篇文章:我认为您需要使用交叉编译 当你在mac上启动
go build-o hello.
时,它正在为你的mac构建一个二进制文件
但是要在linux上运行它,需要使用交叉编译:GOOS=linux go build-o hello。
。它将为您的服务器构建二进制文件
您可以阅读Dave Cheney的这篇文章:
权限被拒绝
通常指向文件上缺少的可执行权限
hello二进制文件上应该有755
或700
(前者使每个人都可以执行,后者仅适用于您的用户)
跑
或者
chmod -R +x ~/go
第一个仅在服务器可执行文件上设置显式权限位,第二个仅在整个目录以及所有包含的文件(和子目录)上添加可执行权限位。(目录通常还设置了
x
-位,否则您将无法列出其内容)权限被拒绝
通常指向文件上缺少的可执行权限
hello二进制文件上应该有755
或700
(前者使每个人都可以执行,后者仅适用于您的用户)
跑
或者
chmod -R +x ~/go
第一个仅在服务器可执行文件上设置显式权限位,第二个仅在整个目录以及所有包含的文件(和子目录)上添加可执行权限位。(目录通常还设置了
x
-位,否则您将无法列出其内容)转到代码所在的文件夹,然后键入terminalGOOS=linux GOARCG=amd64 Go build
,之后golang将为您创建文件,将其上传到服务器上,使用/your\u file\u name运行后键入chmod+x your\u file\u name
转到代码所在的文件夹,然后键入terminalGOOS=linux GOARCG=amd64 Go build
,golang会为您创建文件,将其上传到服务器上,然后在使用/your\u file\u name运行后键入chmod+x your\u file\u name
GOARCG=amd64在构建过程中有多重要?您好,我爱您好!GOOS=linux和chmode755成功了。非常感谢。嗨,GOARCH是指计算机的体系结构。例如,您可以设置GOARCH=amd64以便为x64计算机编译。我很高兴看到它解决了您的问题。GOARCG=amd64在构建过程中有多重要?您好,我爱您好!GOOS=linux和chmode755成功了。非常感谢。嗨,GOARCH是指计算机的体系结构。例如,您可以设置GOARCH=amd64以便为x64计算机编译。我很高兴看到它解决了你的问题。