monacoind入れたLAMPサーバにLaravelも入れる - 暗号通貨のウェブウォレットを(ry その２

# 追記@2018/03/20
この連載は休止となりました。詳しくは初回の投稿をご覧ください。

- [暗号通貨のウェブウォレットっぽいものをPHPで作る その０](http://qiita.com/syoboon77/items/917c3ce6190ca61b6795)


#以下、追記前の本文
このページは「暗号通貨のウェブウォレットっぽいものをPHPで作る」プロジェクトの一部です。最初に「その０」のページをご覧ください。

- [暗号通貨のウェブウォレットっぽいものをPHPで作る その０](http://qiita.com/syoboon77/items/917c3ce6190ca61b6795)

# 概要
前回は、Vagrant上にLAMP+monacoindサーバを構築し、セットアップまで行いました。続いて、Composerのインストール、プロジェクト用のデータベースとそれを操作するユーザーの作成、Laravelプロジェクトの作成を行います。
要約としての項目数は前回よりも増えているものの項目ごとの中身が薄いので、今回は要約を記述せず作業に移ります。

再掲になりますが、 `myapp` と記載されている部分は任意のプロジェクト名に置き換えても動作するはずです。  
ただしGitHub Gistから持ってくるスクリプトなどにも `myapp` の記述のあるファイルがあるので、それら全てに置換を行う必要があります。

# 前提事項
## 1. 前回セットアップした仮想マシンが起動している
ホストのPCごと再起動したなどで仮想マシンが起動していない場合、コマンドプロンプトで以下を実行します。

```
> cd c:\vagrant\myapp
> vagrant up
```

## 2. Tera Termで仮想マシンに接続している
Tera Termのウィンドウを閉じてしまっている場合、再度起動して `127.0.0.1:2222` に接続してください。ユーザー/パスワードは共に `vagrant` です。

# 作業
## 1. リンク先（GitHub Gist）からファイルをダウンロードして配置
前回と同じように、以下のリンク先からファイルをダウンロードして `C:\vagrant\myapp\` に配置します。  
前述のように、プロジェクト名を変更した方はこのファイルに対しても置換を行ってください。

- https://gist.github.com/syoboon77/30d3a662460a540173f619f9530ff2c4

## 2. Composerのインストールとバージョン表示テスト
プログラムのを自力で一から作るのは難しく、例えばPHPプログラムからmonacoindを操作する際などに外部のプログラム（＝ライブラリ）を使用します。~~既にPHPとかMySQLとかmonacoindとか使ってるので一から作る気なんかない~~  
もちろんライブラリは他のサイトなどからダウンロードするなどして調達するのですが、その調達手法では使っているライブラリがアップデートされるごとに自分でダウンロードして配置しなければなりません。  
そんな無駄で面倒臭い作業を排除するために使われるのが `Composer` です。Composerの仕事を簡潔にまとめてみます。

- 新しいライブラリのインストールはコマンド１つ叩くだけ
- ライブラリのアップデートが必要になってもコマンド１つ叩くだけ
- インストールしたライブラリの情報は所定のファイルに保存される。  
つまり完成したプログラム本番環境にアップロードした時なども、やっぱりコマンド１つ叩くだけ

上の２つ、今まで使ってきた `apt-get` にそっくりです。プログラミングの世界においてもこのようなツールが主流になっているようで、Composerの開発者も「他のプログラミング言語のツールにインスパイアされた」とのこと。  
Composerそのものの説明はこのくらいにして、インストールに移ります。

Tera Termで以下を実行します。

```
$ cd /usr/local/bin
$ curl -sS https://getcomposer.org/installer | sudo php
$ sudo mv composer.phar composer
$ composer -V
$ cd
```

バージョン表示が返ってきたら、とりあえずインストール完了です。

## 3. プロジェクト用のデータベースと、それをプログラムから操作するためのユーザーを作成
Tera Termで以下を実行。

```
$ sudo mysql -u root -p
```

パスワードの要求に応じてログインに完了したら、画面がMySQL（と互換）のコンソールに変わります。  
続いて以下を実行…なのですが、用心な方は `myPassw0rd` を任意のパスワードに置き換え、メモしてから実行してください。

```
> CREATE USER 'myapp'@'localhost' IDENTIFIED BY 'myPassw0rd';
> CREATE DATABASE myapp CHARACTER SET utf8mb4;
> GRANT ALL ON myapp.* TO myapp@localhost;
> FLUSH PRIVILEGES;
> QUIT
```

入力欄が元に戻っていれば、とりあえず完了です。

## 4. Laravelをベースにしたプロジェクトを作成し、アクセスできるように設定
Tera Termで以下を実行。  
sedが何を行っているかは、手順1のGistや `sed_html_conf.txt` に記載しています。

```
$ cd /vagrant
$ composer create-project laravel/laravel myapp --prefer-dist
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/html.conf
$ sudo sed -i -f /vagrant/sed_html_conf.txt /etc/apache2/sites-available/html.conf
$ sudo a2dissite 000-default
$ sudo a2ensite html
$ sudo systemctl restart apache2
```

全て完了したら、 http://localhost/ を開いてください。中央に「Laravel」と書かれたページが表示されればOK！

## 5. Gitリポジトリを作成し、コミットしておく
作業が一段落する度にGitリポジトリに「コミット」しておくと、差分が記録されて後々見返したり差し戻したりできます。  
たった今プロジェクトを作成したばかりなので、ここで「初期の状態」を記録（コミット）しておきましょう。  
**コマンドプロンプトで** 以下を実行…する前に、 `username` をAtlassianアカウントに登録した「フルネーム」に、 `mailaddress` を同メールアドレスに置き換えてください。

```
> cd c:\vagrant\myapp\myapp
> git init
> git config user.name "username"
> git config user.email "mailaddress"
> git add .
> git commit -m "Initial commit"
```

## To be continued...
これで、Laravelをも手に入れることができました。次回は `.env` の記述と、少しのプログラミングを予定しています。

- [Laravelでサイト作る際に行った初期設定 - 暗号通貨のウェブウォレットを(ry その３ - Qiita](http://qiita.com/syoboon77/items/cd3e1d8201ef7b6810e6)