Linuxサーバーで自作WEBアプリを管理する

GolangのWebパッケージginを用いて作ったWEBアプリをLinuxサーバーで公開するためのメモ。ポートとかの話の続きです。

今回はアプリ永続化のための部分。

一度実行したらアップデートなどで止めるまで動き続けてくれるようにします。

Linux環境: Ubuntu 16.04.5

続きを読む Linuxサーバーで自作WEBアプリを管理する

【GO】外部パッケージのレシーバ定義

golangではtypeによる型定義とレシーバと呼ばれるメソッド定義ができます。

複数の外部パッケージを同時使用するときなどにレシーバ追加をしたいときがあるんですが、言語規則のためそのままだと追加できません。

基本的なことからおさらいしつつ対策を考えます。

続きを読む 【GO】外部パッケージのレシーバ定義

【GO】WordPress(Apache)とginを同時に動かす

bitnamiのwordpressが動いているサーバーにgolangのWEBサービスを追加します。

アプリ自体は8080ポートで実行してサブディレクトリにマップする形です。

Apacheで他WEBサーバーを動かす場合も同様のやり方で行けると思います。

続きを読む 【GO】WordPress(Apache)とginを同時に動かす

【GO】ginで作ったWEBサービスを利用可能にする

LinuxサーバーでWEBアプリを公開する際のメモ。

単体で公開したり、ポートを分けて公開したり、サブディレクトリで公開したり。

続きを読む 【GO】ginで作ったWEBサービスを利用可能にする

【GO】タイムアウトや定期実行処理

golangで定期処理などを書きたくなったのでどうやって書くか考えます。

とりあえずtimeパッケージかcontextパッケージあたりを使うと良さそうなので2つとも使ってみます。

続きを読む 【GO】タイムアウトや定期実行処理

【GO】fmt.Printf関数で配列の中身をフォーマットする

配列の中身つ1つに対してPrintf系のフォーマットにかけることを考えます。

さらにそれを利用して独自のSprintf関数を作ったりしてみる。

続きを読む 【GO】fmt.Printf関数で配列の中身をフォーマットする

【GO】桁数の分からない数値を文字列にする

桁数を指定せずに大きな数値や精度の高い数値をそのまま文字列にしようとすると、途中で切れたり指数表記になったりする。

float64の数値をそのまま(非指数表記)でstringに変換したい。

簡単そうで意外にできなかったので方法を覚書きしておく。

続きを読む 【GO】桁数の分からない数値を文字列にする

【GO】html/templateにタグ入り文字列を渡す

template/htmlを使ってHTML表示を行う時、テンプレートの一部の表示方法を変えたいときがあります。

変えたい部分だけ変えたテンプレートを複数用意する方法もありますが、面倒というか煩雑になるのでパース部分に直接HTMLタグを書いて変更させたい。

そのままやるとタグ部分が文字列になったのでその対策方法メモ。

Execute部分などはgin-gonic/ginを使っているので省略。

続きを読む 【GO】html/templateにタグ入り文字列を渡す

【GO】gin + statikのシングルバイナリファイルサーバ

ginでシングルバイナリからファイルサーブすることを考えた。

用途を考えるとシングルバイナリ化する利点はあまりないこともあり、標準メソッドだけではできなかったので実装メモです。

以前に書いた記事も参考にした。

statikの使い方

statikパッケージを使うとフォルダをZIP化(バイナリ化)してhttp.FileSystemとして扱えるようになる。

ginのstaticFS

ファイルシステムの静的ファイルをサーブできるメソッド。

これが一番簡単だけどルートアクセスに設定できません。

static middleware(github

ミドルウェアを使うことでルートに設定可能です。

これをstatikで使えるようにします。

Serveの第2引数はServeFileSystemなのでインターフェースを満たす必要がある。

 

Existsメソッドが必要そうなのでミドルウェアの実装から必要なものを抜き出して実装してみます。

これでルートからでもファイルサーブできるようになった。

javascriptでメタタグの作成と編集

HTMLヘッダ内のメタタグ(<meta name="" content="">)を編集(ない場合は作成も)をするスクリプトを書いてみました。

以前にOGPなどの外部表示設定を確認したのでスクリプトで動的に変えてみたかったのが理由です。

ただツイッターなどのサービスではOGPのためのアクセスでスクリプト実行までしてなさそうなので、サーバーサイドで書き換える必要があります。

なので今回のスクリプトはnode.js向け、あるいはタイトルのみの編集向けです。

続きを読む javascriptでメタタグの作成と編集