LAMP+Redis環境を超短手数で構築する

# Javaのインストール
ツールを動かすためにJavaを使います
[ここからダウンロード](https://jdk.java.net/archive/)
解凍します
環境変数作成
名前：JAVA_HOME　値：解凍してできたフォルダのパス
環境変数修正
名前：PATH　値：解凍してできたフォルダ内のbinフォルダを追記
インストール完了
# VirtualBoxのインストール
[VirtualBoxダウンロード](https://www.virtualbox.org)
インストーラーを実行する
インストール完了
WindowsでVirtualBoxを使用する場合、仮想化支援機能(VT-x/AMD-V)をBIOSから有効にする。Hyper-Vを無効化する
# Vagrantのインストール
[Vagrantダウンロード](https://www.vagrantup.com/downloads.html)
インストーラーを実行する
インストール完了
# ツールのダウンロード
[ここからダウンロード](https://github.com/fairysupport/run_sample/archive/master.zip)
解凍します
# 仮想環境とのファイル共有設定
解凍したツールの中は下記になっています

```
|-- run_sample-master
|   |-- docs
|   |-- fairysupport_run
|   |-- synced_folder
|   `-- vagrant

```

Macを使っている場合、
fairysupport_runフォルダ内のserver.properties.localをテキストエディタで開き、`\\`を`/`に修正してください

vbguestプラグインのインストール
vagrantフォルダ内のvagrant_plugin_vbguest.bat(Linuxの場合vagrant_plugin_vbguest.sh)をダブルクリック
完了

# Vagrant起動
vagrantフォルダ内のvagrant_up.bat(Linuxの場合vagrant_up.sh)をダブルクリック

起動完了


# LAMP+Redis環境構築
fairysupport_runフォルダ内のrun_quick_lamp.bat(Linuxの場合run_quick_lamp.sh)をダブルクリック

構築完了

# ファイル共有確認
ツールを解凍してできたフォルダ内のsynced_folder\vm1内を見ると仮想環境内の/var/www/htmlディレクトリのファイルが入っているのが確認できます

# ssh接続
構築したLAMP環境にPuTTYで接続してみます
puttygenを起動
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/4b442a67-438f-4127-71d3-56131da8b056.png)
Conversions→Import keyをクリック
run_sample-master\vagrant\\.vagrant\machines\vm1\virtualbox\private_key
を選択
![b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/72ecc256-abd3-6d5e-4b9a-838496d059d2.png)
Save private keyをクリック
private_key.ppkという名前で保存
![c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/ba724546-41b4-4c09-d74c-80144a172801.png)


PuTTY起動
![e.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/e8a59f6e-9824-f00c-5737-fea534514124.png)


認証→参照をクリック
先ほどputtygenで作成したprivate_key.ppkを選択
![f.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/4dd9b228-71d7-a878-6547-2110b6331798.png)

セッションをクリック
ホスト名：127.0.0.1
ポート：2230
セッション名：127.0.0.1:2230
を入力して
保存をクリック
![g.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/8879a97e-089b-04c1-6ce1-ce799dfab6f2.png)
開くをクリックして接続する
![h.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/e90b244e-7be2-bcc4-d686-0b1031bb87eb.png)
vagrantユーザーでログイン
![i.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/a83dccd8-5e08-49fb-a76e-c855f258916e.png)

スーパーユーザーのパスワードはvagrantです

```
su -
Password: [vagrantと打つ] 
```

# PHPインストール確認
php -v
と入力
![j.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/f0c5c113-71d6-fd12-af64-e9008d1ba02d.png)

# MySQLインストール確認
mysql -uroot -ppass@123word
と入力
![k.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/4d39b05d-abf2-bae0-fe85-e5863fdc398b.png)

ホストOS(Windows)からゲストOS(Vagrant)へ接続できるユーザーを作成

```
CREATE USER 'vagrant'@'gateway' IDENTIFIED BY 'vagrant';
GRANT ALL PRIVILEGES ON *.* TO 'vagrant'@'gateway';
FLUSH PRIVILEGES;
```

ホストOSのコマンドプロンプトから

```
mysql -uvagrant -pvagrant -P3316 -h127.0.0.1
```
または

```
mysql --user=vagrant --password=vagrant --port=3316 --host=127.0.0.1
```
接続できることを確認する
ポート3316はVagrantfileでforwarded_port設定してあります

# Redisインストール確認
redis-cli
と入力
set key1 value1
get key1
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/48aaf243-ae2d-0707-449b-6b9ef8712553.png)
動くことを確認する

WindowsからVagrantのRedisに接続してみる
Windowsでtelnetクライアントを有効にする
![b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/c6fdc194-e9c0-3585-8601-187d0a371a4a.png)
設定をクリック
![c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/5e6ef3c8-f730-b8c7-1928-d9cf77f157e3.png)
アプリをクリック
![d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/0fba0c9b-38f6-0fc9-149a-970e1befb1c8.png)
一番下にあるプログラムと機能をクリック
![e.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/8797fb9a-ea46-0004-9659-14dacfd24bca.png)
Windowsの機能の有効化または無効化をクリック
![f.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/455d71e2-eff0-b990-4b4f-5f89cf825ca4.png)
Telnet Clientをチェック

コマンドプロンプトから
`telnet 127.0.0.1 6389`
と入力
ポート6389はVagrantfileでforwarded_port設定してあります

なぜかコマンドプロンプトの1行目が見えなくなりますが、気にせず
set key2 value2
と入力しEnter
+OKと表示される
get key2
と入力しEnter
value2が表示される

# Apacheインストール確認
http://localhost:8080/index.php
にブラウザからアクセス
正しく表示されることを確認する

# 使ったツール
LAMP+Redis環境構築は以上で完了です
今回fairysupport runというツールを使って構築しました
[https://ja.fairysupport.com/run/index.html](https://ja.fairysupport.com/run/index.html)
[https://doc.fairysupport.com/run/ja/index.html](https://doc.fairysupport.com/run/ja/index.html)
このツールは複数のサーバに対して同じシェルを実行できるツールです(1サーバだけに対して使用してもかまわない)
使用したツールのサンプルはLAMP+Redis環境を2つつくるサンプルです
したがってVirtualBoxマネージャーを見るとvmが2つ起動しています
今回の作業でLAMP+Redis環境が2つできました
ローカルで1つあればいいという場合、
(1)ツールを解凍してできたフォルダ内のvagrant\Vagrantfileファイルを修正
　　config.vm.define :vm2 do |server|からendまでをコメントにする
(2)ツールを解凍してできたフォルダ内のfairysupport_run\server.properties.localファイルを修正
　　server2ではじまる箇所をコメントにする
(1)(2)を行うと1サーバに対してのみLAMP構築になります

また、ツールを解凍してできたフォルダ内のfairysupport_run\server.properties.localファイルの内容を修正すれば、どのサーバに対しても今回と同じLAMP環境を構築できます