前提・実現したいこと
初心者かつ、初めてここに質問します。
Go言語で作ったWebアプリを、レンタルサーバー上で動かしたいのですが、方法が分かりません。
https://qiita.com/Lio/items/ee24052e6e2ae0f382d9
まず、このサイトのプログラムを丸写しし、xサーバーにあげてみましたが、403エラーが出ました。
発生している問題・エラーメッセージ
403エラー
該当のソースコード
Golang
1package main 2 3import ( 4 "html/template" 5 "log" 6 "net/http" 7 "net/http/fcgi" 8) 9 10func handler(w http.ResponseWriter, r *http.Request) { 11 headers := w.Header() 12 headers.Add("Content-Type", "text/html") 13 t := template.Must(template.New("sample").Parse(samplepage)) 14 t.Execute(w, r) 15} 16 17func main() { 18 http.HandleFunc("/", handler) 19 20 var err error 21 err = fcgi.Serve(nil, nil) 22 if err != nil { 23 log.Fatal(err) 24 } 25} 26 27const samplepage = ` 28<!doctype> 29<html> 30<head> 31 <meta charset='utf-8'> 32 <title>Work on Go</title> 33</head> 34<body> 35 <h1>Hello world from Go!</h1> 36 <table> 37 <tr><td>Method</td><td>{{.Method}}</td></tr> 38 <tr><td>URL</td><td>{{.URL}}</td></tr> 39 <tr><td>URL.Path</td><td>{{.URL.Path}}</td></tr> 40 <tr><td>Proto</td><td>{{.Proto}}</td></tr> 41 <tr><td>Host</td><td>{{.Host}}</td></tr> 42 <tr><td>RemoteAddr</td><td>{{.RemoteAddr}}</td></tr> 43 <tr><td>RequestURI</td><td>{{.RequestURI}}</td></tr> 44 <tr><td>Header</td><td>{{.Header}}</td></tr> 45 <tr><td>Body</td><td>{{.Body}}</td></tr> 46 </table> 47</body> 48</html> 49` 50 51以下.htaccess 52<IfModule mod_fcgid.c> 53AddHandler fcgid-script .fcgi 54</IfModule>
(参照: https://qiita.com/Lio/items/ee24052e6e2ae0f382d9)
試したこと
ディレクトリやファイルのパーミッションは全て755に設定済みで
sample.goをアップロード →403エラー
go buildで.exeファイル作成、アップロード →403エラー
https://qiita.com/masaru_b_cl/items/b7fc6a17ee2390c010a1
https://qiita.com/Jxck_/items/02185f51162e92759ebe
などのサイトを参考に、Linux amd64向けにクロスコンパイル(上手くいっているかは怪しいです)
それで作ったファイルをアップロード →403エラー
上のファイルの名前を「index.fcgi」に変更 →403エラー
上のファイルの名前を「index.cgi」に変更 →500エラー
.htaccessに
AddHandler fcgid-script .cgi
を書き足す →500エラー
補足情報(FW/ツールのバージョンなど)
環境: Windows10
go version go1.13.5 windows/amd64
xサーバーに問い合わせてみましたが、「当サービスで動作確認している言語でないため、詳細な案内は出来ない」と返事がありました。
何卒よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。