Ubuntu
Composer
laravel
Bitcoin
Monacoin

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

追記@2018/03/20

この連載は休止となりました。詳しくは初回の投稿をご覧ください。

以下、追記前の本文

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

概要

前回は、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\ に配置します。

前述のように、プロジェクト名を変更した方はこのファイルに対しても置換を行ってください。

2. Composerのインストールとバージョン表示テスト

プログラムのを自力で一から作るのは難しく、例えばPHPプログラムからmonacoindを操作する際などに外部のプログラム(=ライブラリ)を使用します。既にPHPとかMySQLとかmonacoindとか使ってるので一から作る気なんかない

もちろんライブラリは他のサイトなどからダウンロードするなどして調達するのですが、その調達手法では使っているライブラリがアップデートされるごとに自分でダウンロードして配置しなければなりません。

そんな無駄で面倒臭い作業を排除するために使われるのが Composer です。Composerの仕事を簡潔にまとめてみます。

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

上の2つ、今まで使ってきた 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 の記述と、少しのプログラミングを予定しています。