.htaccessでmod_rewriteを利用可能にする

概要

あまり意識せず利用しているmod_rewriteですが
httpd設定により使用できない場合があります。

以下設定手順をまとめました。

設定手順

/etc/httpd/conf/httpd.conf 修正

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
LoadModule deflate_module modules/mod_deflate.so    # ← 有効化
LoadModule rewrite_module modules/mod_rewrite.so # ← 有効化

AccessFileName .htaccess # ← 追加

DocumentRoot "/var/www/html"
<Directory "/var/www/html">
....
# Options Indexes FollowSymLinks
Options Indexes FollowSymLinks ExecCGI # ← ExecCGI追加

# AllowOverride None
AllowOverride All # ← Allに修正
....
</Directory>

##上記修正後 httpd 再起動

1
# service httpd restart

さくらVPS iptables設定 ~ある日警告文が届いた「ご利用中のサーバから、外部へ向けてUDP FloodによるDoSと思わしきトラフィックを確認いたしました。」~

iptables (FireWall) Setting

さくらレンタルサーバから以下のような警告文が届きました。

1
2
3
4
5
6
7
8
ご利用中のサーバから、外部へ向けてUDP FloodによるDoSと思わしきトラフィックを確認いたしました。

また、お客様のサーバを含めた複数のサーバにおいて同時に同じトラフィック波形のパケットを多数送信している事から、同じBot Netに属していると推測いたします。

お心当たりがない場合、サーバを第三者に不正利用されている可能性がございます。


現在、被害拡大防止の為の緊急措置として、当該サーバに対し通信停止措置を実施しております。予め、ご了承下さいますよう、お願いいたします。

要約すると

  • サーバを踏み台にして外部に攻撃しているみたい、だから対策しないと止めるよ?

とのこと。

対策としてOS再インストールした後、以下iptablesの設定をしました。


設定手順

以下root権限で実行

1
su -

接続済み通信許可

1
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

ローカルループバックアドレス許可

1
iptables -A INPUT -i lo -j ACCEPT

ICMP許可

1
iptables -A INPUT -p icmp -j ACCEPT

プライベートIPアドレス拒否

1
2
3
4
5
6
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -d 10.0.0.0/8 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -d 172.16.0.0/12 -j DROP
iptables -A INPUT -s 192.168.0.0/16 -j DROP
iptables -A INPUT -d 192.168.0.0/16 -j DROP

ブロードキャストアドレス拒否

1
2
iptables -A INPUT -d 0.0.0.0/8 -j DROP
iptables -A INPUT -d 255.255.255.255 -j DROP

フラグメントパケット攻撃対策

1
iptables -A INPUT -f -j DROP

ステルススキャン禁止

1
iptables -A INPUT -p tcp -m state --state NEW ! --syn -j DROP

IDENT port probe対策

1
iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset

PING Flood 対策

1
iptables -A INPUT -p icmp --icmp-type echo-request -m hashlimit --hashlimit 1/s --hashlimit-burst 5 --hashlimit-mode srcip --hashlimit-name input_icmp  --hashlimit-htable-expire 300000 -j DROP

以下一般的なポート許可

  • 不要な場合は設定しないで良いです。
  • ポートを変えている場合はそのポートで許可してください。

SSH ポート許可 (22)

1
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

HTTP ポート許可 (80)

1
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

デフォルトポリシーの設定

1
2
3
iptables -P INPUT   DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

設定確認

1
iptables -L --line-numbers -n

設定保存 反映

1
2
service iptables save
service iptables restart

まとめ

現状この設定をしてからは特に被害にはあっていないです。

友人のさくらVPSでも同様の攻撃を受けたので教えてあげたら被害はなくなったとのことで

一定の効果はあるかと存じます。

##コマンドまとめ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -d 10.0.0.0/8 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -d 172.16.0.0/12 -j DROP
iptables -A INPUT -s 192.168.0.0/16 -j DROP
iptables -A INPUT -d 192.168.0.0/16 -j DROP
iptables -A INPUT -d 0.0.0.0/8 -j DROP
iptables -A INPUT -d 255.255.255.255 -j DROP
iptables -A INPUT -f -j DROP
iptables -A INPUT -p tcp -m state --state NEW ! --syn -j DROP
iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p icmp --icmp-type echo-request -m hashlimit --hashlimit 1/s --hashlimit-burst 5 --hashlimit-mode srcip --hashlimit-name input_icmp --hashlimit-htable-expire 300000 -j DROP
1
2
3
4
5
6
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
1
2
service iptables save
service iptables restart

コマンドラインでURLの存在チェック

以下コマンドをMacローカルでterminalから実行

1
curl -v <URL>  2>&1 1>/dev/null | awk '{if($2~"HTTP") print}'

OK Pattern.

1
< HTTP/1.1 200 OK

NG Pattern

1
< HTTP/1.1 404 Not Found

CentOSにmysqldiffインストールし実行確認

rootユーザに切り替え

1
$ sudo su -

mysqldiff インストール

1
2
3
# cd /usr/local/src
# wget http://search.cpan.org/CPAN/authors/id/A/AS/ASPIERS/MySQL-Diff-0.43.tar.gz
# tar zxvf MySQL-Diff-0.43.tar.gz

mysqldiffにlibパスを設定

1
# vi MySQL-Diff-0.43/bin/mysqldiff
1
2
3
4
5
6
#!/usr/bin/perl -w

use lib '/usr/local/src/MySQL-Diff-0.43/lib'; ←追加

=head1 NAME

Slurpインストール

1
# yum -y install perl-File-Slurp

シンボリックリンク

1
# ln -s /usr/local/src/MySQL-Diff-0.43/bin/mysqldiff /usr/local/bin/mysqldiff

mysqldiff実行確認

1
$ mysqldiff

db1, db2 を比較

1
$ mysqldiff db1 db2

クライアント受注のWebサイト構築時のSSL証明書インストールする為にしたこと

概要

クライアントより受注したWebサイト構築時にSSL証明書をインストールする必要が生じ、その際に行った手続きをまとめます。

前提

無料SSLや自作SSLではセキュリティ面で不安な為、
シェアの高いSSL証明書発行しているthawteより取得することとしました。
費用面についてもクライアントに了承を得ています。

thawte

世界第2位のシェアを誇る認証機関であり、各種サーバー認証及びコードさイニング認証を世界各国のお客様へ提供している。

ToDo

  1. WHOIS(フーイズ)でドメインの所有者情報確認
  2. クライアント所持のDUNS(ダンズ)ナンバー確認
  3. CSR発行
  4. SGC Super Certs申請
  5. SSL証明書インストール

手順

1. WHOIS(フーイズ)でドメインの所有者情報確認

WHOISで検索したドメインの所有者情報が表示されます。
この情報を保管します。
後にCSR発行時に利用します。

2. クライアント所持のDUNS(ダンズ)ナンバー確認

3. CSR発行

4. SGC Super Certs申請

5. SSL証明書インストール

SSL証明書インストール

対象サーバにアクセスし以下SSL証明書インストール手順に沿って進めます。

  • 手順

rootユーザに変更

1
2
sudo su -
Password: (rootユーザのパスワード入力)

秘密鍵のパスフレーズ解除

apache再起動してもパスフレーズを問われないようにするためです。

1
2
3
openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: (秘密鍵用パスフレーズ入力)
writing RSA key

SSL証明書作成

thawteから届いたメールより発行された「証明書本体」をpublickey.crtに貼り付けして保存

1
2
# publickey.crtファイル作成・編集
vim /etc/httpd/conf/ssl.crt/publickey.crt

中間証明書作成

thawteから届いたメールより発行された「中間証明書」をintermediate.crtに貼り付けして保存

1
2
# intermediate.crtに貼り付けして保存
vim /etc/httpd/conf/ssl.crt/intermediate.crt

ssl.conf修正

1
vim /etc/httpd/conf.d/ssl.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
# This is the Apache server configuration file providing SSL support.
# It contains the configuration directives to instruct the server how to
# serve pages over an https connection. For detailing information about these
# directives see <URL:http://httpd.apache.org/docs/2.2/mod/mod_ssl.html>
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
#

LoadModule ssl_module modules/mod_ssl.so

#
# When we also provide SSL we have to listen to the
# the HTTPS port in addition.
#
Listen 443

##
## SSL Global Context
##
## All SSL configuration in this context applies both to
## the main server and all SSL-enabled virtual hosts.
##

#
# Some MIME-types for downloading Certificates and CRLs
#
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl

# Pass Phrase Dialog:
# Configure the pass phrase gathering process.
# The filtering dialog program (`builtin' is a internal
# terminal dialog) has to provide the pass phrase on stdout.
SSLPassPhraseDialog builtin

# Inter-Process Session Cache:
# Configure the SSL Session Cache: First the mechanism
# to use and second the expiring timeout (in seconds).
#SSLSessionCache dc:UNIX:/var/cache/mod_ssl/distcache
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300

# Semaphore:
# Configure the path to the mutual exclusion semaphore the
# SSL engine uses internally for inter-process synchronization.
SSLMutex default

# Pseudo Random Number Generator (PRNG):
# Configure one or more sources to seed the PRNG of the
# SSL library. The seed data should be of good random quality.
# WARNING! On some platforms /dev/random blocks if not enough entropy
# is available. This means you then cannot use the /dev/random device
# because it would lead to very long connection times (as long as
# it requires to make more entropy available). But usually those
# platforms additionally provide a /dev/urandom device which doesn't
# block. So, if available, use this one instead. Read the mod_ssl User
# Manual for more details.
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
#SSLRandomSeed startup file:/dev/random 512
#SSLRandomSeed connect file:/dev/random 512
#SSLRandomSeed connect file:/dev/urandom 512

#
# Use "SSLCryptoDevice" to enable any supported hardware
# accelerators. Use "openssl engine -v" to list supported
# engine names. NOTE: If you enable an accelerator and the
# server does not start, consult the error logs and ensure
# your accelerator is functioning properly.
#
SSLCryptoDevice builtin
#SSLCryptoDevice ubsec

##
## SSL Virtual Host Context
##

<VirtualHost _default_:443>



# General setup for the virtual host, inherited from global configuration
#DocumentRoot "/var/www/html"
#ServerName www.example.com:443
DocumentRoot "/var/www/html" (←本番ドメイン用のドキュメントルート設定)
ServerName (本番ドメイン):443 (← ServerNameを 「(本番ドメイン):443」に設定)


# Use separate log files for the SSL virtual host; note that LogLevel
# is not inherited from httpd.conf.
ErrorLog /var/log/ssl_error_log (←エラーログ設定)
TransferLog /var/log/ssl_access_log (←アクセスログ設定)
LogLevel warn

# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on

# SSL Protocol support:
# List the enable protocol levels with which clients will be able to
# connect. Disable SSLv2 access by default:
SSLProtocol all -SSLv2 -SSLv3

# SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
# See the mod_ssl documentation for a complete list.
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. A new
# certificate can be generated using the genkey(1) command.
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/httpd/conf/ssl.csr/publickey.crt (←証明書本体 絶対パス指定)
# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you've both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/httpd/conf/ssl.csr/server.key (←秘密鍵 絶対パス指定)
# Server Certificate Chain:
# Point SSLCertificateChainFile at a file containing the
# concatenation of PEM encoded CA certificates which form the
# certificate chain for the server certificate. Alternatively
# the referenced file can be the same as SSLCertificateFile
# when the CA certificates are directly appended to the server
# certificate for convinience.
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
SSLCertificateChainFile /etc/httpd/conf/ssl.csr/intermediate.crt (←中間証明書 絶対パス指定)
# Certificate Authority (CA):
# Set the CA certificate verification path where to find CA
# certificates for client authentication or alternatively one
# huge file containing all of them (file must be PEM encoded)
#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt

# Client Authentication (Type):
# Client certificate verification type and depth. Types are
# none, optional, require and optional_no_ca. Depth is a
# number which specifies how deeply to verify the certificate
# issuer chain before deciding the certificate is not valid.
#SSLVerifyClient require
#SSLVerifyDepth 10

# Access Control:
# With SSLRequire you can do per-directory access control based
# on arbitrary complex boolean expressions containing server
# variable checks and other lookup directives. The syntax is a
# mixture between C and Perl. See the mod_ssl documentation
# for more details.
#<Location />
#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
# or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#</Location>

# SSL Engine Options:
# Set various options for the SSL engine.
# o FakeBasicAuth:
# Translate the client X.509 into a Basic Authorisation. This means that
# the standard Auth/DBMAuth methods can be used for access control. The
# user name is the `one line' version of the client's X.509 certificate.
# Note that no password is obtained from the user. Every entry in the user
# file needs this password: `xxj31ZMTZzkVA'.
# o ExportCertData:
# This exports two additional environment variables: SSL_CLIENT_CERT and
# SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
# server (always existing) and the client (only existing when client
# authentication is used). This can be used to import the certificates
# into CGI scripts.
# o StdEnvVars:
# This exports the standard SSL/TLS related `SSL_*' environment variables.
# Per default this exportation is switched off for performance reasons,
# because the extraction step is an expensive operation and is usually
# useless for serving static content. So one usually enables the
# exportation for CGI and SSI requests only.
# o StrictRequire:
# This denies access when "SSLRequireSSL" or "SSLRequire" applied even
# under a "Satisfy any" situation, i.e. when it applies access is denied
# and no other module can change it.
# o OptRenegotiate:
# This enables optimized SSL connection renegotiation handling when SSL
# directives are used in per-directory context.
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>

# SSL Protocol Adjustments:
# The safe and default but still SSL/TLS standard compliant shutdown
# approach is that mod_ssl sends the close notify alert but doesn't wait for
# the close notify alert from client. When you need a different shutdown
# approach you can use one of the following variables:
# o ssl-unclean-shutdown:
# This forces an unclean shutdown when the connection is closed, i.e. no
# SSL close notify alert is send or allowed to received. This violates
# the SSL/TLS standard but is needed for some brain-dead browsers. Use
# this when you receive I/O errors because of the standard approach where
# mod_ssl sends the close notify alert.
# o ssl-accurate-shutdown:
# This forces an accurate shutdown when the connection is closed, i.e. a
# SSL close notify alert is send and mod_ssl waits for the close notify
# alert of the client. This is 100% SSL/TLS standard compliant, but in
# practice often causes hanging connections with brain-dead browsers. Use
# this only for browsers where you know that their SSL implementation
# works correctly.
# Notice: Most problems of broken clients are also related to the HTTP
# keep-alive facility, so you usually additionally want to disable
# keep-alive for those clients, too. Use variable "nokeepalive" for this.
# Similarly, one has to force some clients to use HTTP/1.0 to workaround
# their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
# "force-response-1.0" for this.
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

# Per-Server Logging:
# The home of a custom SSL log file. Use this when you want a
# compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

↓ディレクトリへのアクセス設定 ---start-----
<Directory "/var/www/html"> (←ドキュメントルート指定)
AllowOverride All
Options -Indexes FollowSymLinks Includes ExecCGI
Order allow,deny
Allow from all
</Directory>
↑ディレクトリへのアクセス設定 ---end-----
</VirtualHost>

Apache再起動

1
service httpd restart

https://(ドメイン)にアクセス可能か確認する

UnityでAndroidアプリ「マメコラン!」公開♪

UnityでAndroidアプリ「マメコラン!」公開♪

アプリ公開しました ♪

Google Play 『マメコラン!』

アンドロイダー紹介 VTR

種ちゃんに紹介してもらいました ♪

アンドロイダー詳細ページ

種ちゃん

http://idol.lecre.jp/

アプカジュさんにご紹介いただきました!

ポイント

基本走りゲーですが、世の中には面白い走りゲーはいっぱいあるので
さらに泳いだり、飛んだり、
また、ストーリー重視で作りました ♪

進めば進むほどストーリーが明らかになっていく、
実はあいつが…なんて感じに作りました。

笑いあり、涙ありです。ぜひプレイしてみてください(^-^)

環境

  • Unity 4.6
  • MacOSX Yosemite 10.10.2
  • さくらレンタルサーバ (¥1,000/月) - Ansible で LAMP 構築。

5rocks (現 tapjoy) - クライアントサイド

  • Unity 用 SDK あり
  • リアルタイムで KPI 測定可能。リモートプッシュ付き。月の ActiveUser 数で有料 or 無料に。
  • 2015 年 5 月 28 日時点 TapJoy になって若干 Document に誤記等あり、ちょっと心配。

** fluentd + ElasticSearch + kibana でログ解析 - サーバサイド

  • アイテムの利用率等を知る為導入しました。

工夫点

マップはオブジェクトプールしてプレイヤーが進む毎に生成する、カメラから外れたら再度プールに戻す、
という風に効率化しシーン間移動を素早くするようにしました。

アンドロイダー公認アプリになりました ♪

SGC SuperCerts 購入手順

概要

クライアントより指定ドメインにSSL証明書をインストールして欲しいとの依頼があり、
比較的安価なthawteによりSSL証明書発行するよう手配しました。
その手順を以下に記載します。

※2015年4月時点で値上げした模様です。SSL比較サイト等で改めて検討してください。

SSL料金比較サイト

前提

対象ドメインに対して以下が完了していること。

  • CSR生成済みであること。
  • DUNSナンバー取得済みであること。
  • クライアント担当者の氏名・役職・連絡先・会社住所を把握していること。

手順

https://products.thawte.com/orders/thawte_sgc.do?ref=5480204MED80655&contract=REF98555&language_id=9&change_lang=9:title

必要項目を選択し「次へ」ボタン押下する。

CSRの入力

補足サーバ名入力
「Common Name」項目が対象のドメインになっていることを確認する。

サーバURLの確認

組織情報確認

赤枠に入力していきます。

連絡先情報入力
こちらで登録したメールアドレスへ、購入完了メールが送信されます。
クライアント窓口を確認し、記入する情報を貰い登録すること。

クレジット情報入力
※クレジットのみの購入になります。

注文確認
改めて全て再確認してください。
問題なければ「注文を送信」で購入完了です。

数日すると問題なければSSL証明書がメールに添付されて届きます。

以上

Vagrant + Ansible で go実行環境構築し、フレームワーク(goji)で簡易的なCRUD処理実行

環境

  • MacOSX Yosemite 10.10.3
  • Virtual Box 4.3.28
  • Vagrant 1.7.2
  • Ansible 1.9.1

go実行構築環境

VagrantへAnsibleで以下環境構築します。

Linux(Centos6.5) + Nginx + MySQL + Go

1
2
3
4
5
$ git clone https://github.com/kenzo0107/Vagrant-Ansible
$ cd Vagrant-Ansible/centos6/lnmg
$ vagrant up
$ vagrant ssh-config > ssh.config
$ ansible-playbook lnmg.yml

sshログインしてgoのバージョン確認します。

1
2
3
$ vagrant ssh
[vagrant@vagrant-centos65 ~]$ go version
go version go1.4.1 linux/amd64

DB: testdb作成

1
2
3
[vagrant@vagrant-centos65 ~]$ mysql -u root
mysql> create database testdb
mysql> quit

Go SampleProject ダウンロード

プロジェクトtree

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
go_project
├── db
│   └── migrate.go
├── go-sql-driver
│   └── mysql
├── jinzhu
│   └── gorm
├── lib
│   └── pq
├── models
│   └── user.go
├── route
├── route.go
├── user_controller.go
├── views
│   └── user
│   ├── exit.html
│   ├── index.html
│   └── new.html
├── wcl48
│   └── valval
└── zenazn
└── goji
  • vagrant にsshログインしgo getでgo_projectインストール
1
2
$ vagrant ssh
[vagrant@vagrant-centos65 ~]$ go get github.com/kenzo0107/go_project
  • project内のgoのbinaryファイルのrouteを実行
1
2
3
[vagrant@vagrant-centos65 ~]$ cd ~/go/src/github.com/kenzo0107/go_project
[vagrant@vagrant-centos65 ~]$ ./route
<span style="color: #0000cc">2015/06/14 14:27:07.749545 Starting Goji on [::]:8000</span>
  • ユーザ入力ページへアクセス

[http://192.168.33.11:8000/user/index]

1
2
~/go/src/github.com/kenzo0107/go_project/routeは
go build route.go user_controller.goにより生成されたbinaryファイルです。

参考