読者です 読者をやめる 読者になる 読者になる

データの転がる音がする

気が向いたら取り組んだことをまとめて記事にしたいと思います。機械学習やソフトウェアの話、はたまた読んだ本についてなど、内容は気が向くままにです。

VirtualBox + Vagrant で php, MySQLの練習環境を!

f:id:idkphys-030zzz:20160816104810p:plain

最近IoTのちょっとしたデバイスを作ろうと思っていて、IoTということはデータを常にやりとりできないといけなくて、、と考えていたらサーバサイドの知識が必要みたいでした。 サーバを立てたりしてみるのが一番勉強になるとは思いますが、そこまでの気力もないのでちょっと勉強するための環境を探してみたらVagrantで仮想サーバ環境作ってみるってのが良さそうです。

いろいろエラーが出てつまづいたので、いろいろな記事を参考にさせてもらいながら、なんとか環境構築出来たのでその記録です。特に新しいことはできなかったので、参考記事を書いてる先輩方の後追いというか、廉価版になっています。。

Macにサーバと同じ環境を構築する 〜Vagrant編〜 - Qiita

Vagrantに手動でPHP/Apache/MySQLをいれて動かす、基本的なことのメモ。 - Qiita

Vagrantとは

VirtualBoxと組み合わせて、仮想的なサーバー環境を構築できるツール。ノーパソ1台でも、あたかもサーバを立てたかのようにいろいろ触れるので面白そう。2010年に開発がスタートして、現在ではいろいろな企業で使われているらしい。

Vagrant meetupに行って来ました - Qiita

目標

Apach+MySQL+PHPの実行環境を整える!

実行環境

実行環境は

   OSX El Capitan 10.11.3        Virtual Box 5.1.2

です。

1. Vagrant インストール

公式ページ Vagrant by HashiCorp から、OSを選択してインストール。次のコマンドでバージョンが確認出来る。

$ vagrant -v
Vagrant 1.8.5

2. 仮想サーバの構築

#作業ディレクトリの作成
$ mkdir vagrant_server
$ cd vagrant_server

# Boxの追加
$ vagrant box add https://atlas.hashicorp.com/rafacas/centos62-plain

#==> box: Loading metadata for box 'https://atlas.hashicorp.com/rafacas/centos62-plain'
#==> box: Adding box 'rafacas/centos62-plain' (v1.0.2) for provider: virtualbox
#    box: Downloading: https://atlas.hashicorp.com/rafacas/boxes/centos62-#plain/versions/1.0.2/providers/virtualbox.box
#==> box: Successfully added box 'rafacas/centos62-plain' (v1.0.2) for 'virtualbox'!

#(Vagrant コマンド メモ)
# インストール済みのBox一覧
$ vagrant box list

# インストール済みのBoxの削除
$ vagrant box remove [box_name]

3. 仮想サーバの初期化・起動・ログイン

# 初期化
$ vagrant init rafacas/centos62-plain 
# サーバの起動
$ vagrant up

ここでエラーが出たので、下記の1行をVagrantfileに追加

**Vagrantfile**
...
  #   apt-get update
  #   apt-get install -y apache2
  # SHELL
config.ssh.insert_key = false    # この1行を追加
end

これで再度、サーバの起動に挑戦

$ vagrant up
#Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'rafacas/centos62-plain' is up to date...

# サーバ起動に成功したので、sshでログインする
# パスワードを聞かれるので "vagrant" と打ち込む
$ vagrant ssh
vagrant@127.0.0.1's password: 

Last login: Tue Aug 16 00:53:34 2016 from 10.0.2.2
[vagrant@localhost ~]$    # <- プロンプトがこのようになればログイン成功!

4. PHP, Apatch(httpd), MySqlのインストール

全然知らなかったのですが、httpdの”d”ってデーモンの"d"なんですね。 デーモンってなんか怖いイメージありましたが、ぼーっと仕事を待ってるプログラムだと思うとなんだか健気ですね。

# 色々とインストール
[vagrant@localhost ~]$ sudo yum install php
[vagrant@localhost ~]$ sudo yum install httpd
[vagrant@localhost html]$ sudo yum install vim

# Mysqlは最新バージョンを入れるために手間をかける
[vagrant@localhost ~]$ wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
[vagrant@localhost ~]$ sudo rpm -Uvh mysql-community-release-el6-5.noarch.rpm
[vagrant@localhost ~]$ sudo yum install mysql-community-server

# httpdを起動
[vagrant@localhost ~]$ sudo service httpd start
Starting httpd: 
[vagrant@localhost ~]$ sudo service httpd status
httpd (pid  1141) is running...

# MySqlを起動
[vagrant@localhost ~]$ sudo service mysqld start

# ログインした時に自動的に httpd, mysql を起動してくれるように設定
[vagrant@localhost ~]$ sudo chkconfig httpd on
[vagrant@localhost ~]$ sudo chkconfig mysqld on
[vagrant@localhost ~]$ chkconfig  
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off   #こんな風になってくれてればOK!!

最後に、Vagrantfile を reload しようとしたらエラーが..

ここまで色々設定したので、WebブラウザからPHPファイルが動いているのを見たかったのですが、その途中でエラーが発生しました。 Vagrantfile を書き換えて reload しようとすると

$ vagrant reload

   default: Warning: Authentication failure. Retrying...

が延々と続いてしまうという状況に。どうやらSSH秘密鍵と、ゲストOSで設定されている公開鍵があっていないらしいです。次の記事を参考に進めたら治ったので、ぜひ参考にしてみてください。

kiraba.jp

広告を非表示にする