windowsにvagrantとvirtualboxでWeb開発環境をつくろう。(その4)手作業でLAMP環境構築

シェアする

今まで、下の記事にて、LAMP環境構築で行う作業の概略まで説明しました。

windowsにvagrantとvirtualboxでWeb開発環境をつくろう。(その1)仮想マシン作成まで

windowsにvagrantとvirtualboxでWeb開発環境をつくろう。(その2)IPアドレスとホスト名の設定

windowsにvagrantとvirtualboxでWeb開発環境をつくろう。(その3)LAMP環境構築の概略

この記事では、実際に手作業にてLAMP環境を構築していきます。

※ CentOS7/apache2.4/PHP7.1/MySQL5.7 のバージョンを使っていきます。

手作業にてLAMP環境構築する手順

仮想マシンにログイン

まず、centos7.5 をインストールした仮想マシンにログインしておいてください。

記事「windowsにvagrantとvirtualboxでWeb開発環境をつくろう。(その2)IPアドレスとホスト名の設定」を見ると、ログインするところまで作業できます。

作業手順一覧

作業手順は以下の通りになります。

  • vim インストール (エディタ、linuxだと標準的に使われる)
  • bash history に日付記録する設定追加
  • 言語を日本語、UTF8に設定
  • タイムゾーンを東京に設定
  • apache(Webサーバー)インストール
    • vhost.conf作成(複数のホスト名アクセスに対して別のページを表示させる)
  • epelレポジトリのインストール(phpインストールのため)
  • remiレポジトリのインストール(phpインストールのため)
  • php(Webサーバープログラミングに使う言語)インストール
  • phpMyAdmin(mysqlのデータベース表示・編集ツール)インストール
    • phpMyAdmin.conf設定の変更(ホストOSから接続可能にする)
  • mysql57-communityレポジトリのインストール
  • mysqlサーバーのインストール
    • my.cnfへ追加設定(utf8mb4に言語設定)
    • mysqlサーバーの(再)起動
    • 初期パスワードの変更
  • apache(httpd)サーバーの(再)起動、Linux起動時のサーバー起動登録
  • Webページの表示確認

では、作業を始めていきましょう。

vim インストール

vimはテキストエディタです。linuxだと標準的に使います。大体のlinux環境に入っています。使い込むとかなりいろんなことができる強力なエディタですが、まずは、基本的な操作だけできればよいです。

インストールですが、yum コマンドを使います。管理者権限がいるため、sudo コマンドを使ってます。

sudo yum install -y vim とコマンド入力してください。

-y オプションは、インストールの途中で「続けるか」の問い合わせがあったときyesで答えるという意味です。

vim --version  とコマンドを入力して、バージョンが表示されれば、OKです。

基本的な使い方は、記事「vimの使い方。最低限の操作ができるようになるまで」で説明しています。

bash history に日付記録する設定追加

仮想マシンにログインすると、bashというシェルに対して、コマンドを入力していくことになります。

このコマンド一つ一つをbashは履歴として記録してくれているのですが、デフォルト(標準)では、そのコマンドがいつ入力されたのかの日時が記録されていません。

これは、いつどんな作業をしたのかたどるのに不便なため、一番最初に、日時を登録するように設定しておきましょう。

sudo vim /etc/bashrc と入力してください。vim を使って、/etc/ディレクトリ(フォルダ)のbashrc という設定ファイルを編集するという意味です。管理者権限がいるため、sudo を付けてます。

すると、vimが開きます。

デフォルトの色表示だと、コメント行(#で始まる行)が読みづらいため、

:colorscheme desert と入力して変えてしまいましょう。

下図のようにかなり見やすくなります。

記事「vim で 色設定を変える方法」に配色について書いてますので興味があれば見てください。

で、開いたら、「G」 コマンドで一番下に移動します。

「o」コマンドで最終行の下で挿入モードに移行して、

と追加して 「ESCキー」 でノーマルモードに移動。「ZZ」コマンド で保存終了してください。

(とりあえず最初のファイルなので、細かくvimのコマンドを書いています)

有効にするため、いったんログアウトしてログインしなおしてください。

そのあと、historyコマンドを入力すると、履歴が日時付きで表示されます。設定前の履歴は、同じ日時になってしまうのでご注意ください。

言語を日本語、UTF8に設定

OSの言語設定を変更します。メッセージが可能な限り日本語表示になります。

とコマンド入力して下さい。

sudo を付けない場合、root パスワードを要求されます。

vagrant の Box では、デフォルトのroot パスワードは、vagrant ユーザのパスワードと同様にvagrant になってます。入力すると設定されます。

いったん、ログアウトしてログインしなおすと、表示が日本語化されているのが分かります。

下の例では、date コマンドの表示が変わっていることが分かります。ついでにlocaleコマンドで設定が変わっているのを確認しています。

タイムゾーンを東京に設定

2行目のset-local-rtc 設定は、時刻同期設定をローカルタイムで行うかどうかで、推奨通りのno の設定にします。

下がコマンドのログです。設定前は、標準時で表示されてますが、設定後には、JST(日本標準時)での表示に変更されてます。

apache(Webサーバー)インストール

とコマンド入力します。apache はなぜか、パッケージ名もコマンド名も httpd という名前になってます。

下がログです。

httpd -v で、バージョン表示されればインストール成功です。

vhost.conf作成

複数のホスト名アクセスに対して別のページを表示させるために、/etc/httpd/conf.d/ ディレクトリに vhost.confファイルを作ります。

また、vhost.conf にて、それぞれのページのデータを置くディレクトリ(フォルダ)を指定します。

vhost.confの内容は下の通りです。

vhost.confファイル作成の手順

とコマンド入力します。

すると、下図のように新ファイルとして vim が開きます。

上のファイルの内容を丸々コピーして(マウスで選択して、Ctrlキー + C)きます。あるいは、コードの右上のコピーボタンを押してからCtrl+Cでもコピーできます。

vim の画面上で、「i」を押して、挿入モードになったら、マウスの右ボタンをクリックして、 Paste(貼り付け) を選択すれば、一気に入力できます。

ESCキーで挿入モードを抜けて、「ZZ」コマンドで保存終了します。

vhost.confファイルの内容説明

下の部分に注目すると、

ブラウザから http://vagrant.lhost/ でアクセスされたときには、/vagrant/html/vagrant フォルダの内容を返答します。

アクセスエラーが発生したときは、/etc/httpd/logs/vagrant-error.log ファイルに記録します。

正常にアクセスがあったときは、/etc/httpd/logs/vagrant-access.log ファイルに記録します。

また、同様に、http://test.lhost/ でアクセスされたときには、/vagrant/html/test フォルダの内容を返答します。

また、下の部分に注目します。

これは、上記2つのホスト名以外でアクセスされたとき、この場合では、http://192.168.33.10/ の場合しかないですが、その場合は、一番上に設定された<VirtualHost> </VirtualHost>で囲まれた設定の通り返答します。

一番上の設定では、DocumentRootをあえて設定していないため、vhost.conf 以外で設定されたデフォルトの設定の通り返答します。

ServerName はこの場合、windowsのhostsファイルに defaulthostを登録していないため、そのドメイン名でのアクセスはありません。

ちなみに、httpdのデフォルトの設定は、 /var/www/html  の下にファイルがあれば、それを表示し、ファイルがないときはデフォルト表示として、 /usr/share/httpd/noindex/index.html を表示するようになってます。

PHPインストール

epelレポジトリのインストール

バージョン 7.1 をインストールするために、2つのレポジトリをインストールします。

ログは以下の通りです。

remiレポジトリのインストール

次のレポジトリはちょっと面倒ですが、URLを指定してインストールします。

とコマンド入力します。

php

さて、準備が整ったので、Webサーバープログラミングに使う言語であるPHPをインストールします。

バージョン7.1 をインストールするため、レポジトリを指定してyum コマンドを実行します。

ログが下の通りです。最後に、 php -v コマンドでバージョン表示されればOKです。

phpMyAdmin

mysqlのデータベース表示・編集ツールであるphpMyAdmin をインストールします。

ログは以下の通りです。

便利なツールですね。

phpMyAdmin.conf設定の変更

ホストOSから接続可能にするために、アクセス制限を変更します。ホストコンピュータのIPアドレスは、192.168.33.10の仮想マシンにアクセスするときは、IP アドレス 192.168.33.**(何か)になるので、そのコンピュータからのアクセスを許可する設定です。

まず、編集する前にコピーしておきます。

次に、

と入力して、設定ファイルを 管理者権限で編集します。

追加箇所は、全部で4か所あります。今回インストール下のはapache 2.4.x なんですが、念のため apache2.2.x 系の場合の設定も一緒に行ってます。設定ファイルがそもそも2.4系と2.2系の両方をカバーしているからです ^^;

まずは、Directory /usr/share/phpMyAdminの設定で、2か所追加します。
それぞれ、IPアドレス127.0.0.1(つまり仮想マシン自分自身)からアクセス許可しているところに、IPアドレス 192.168.(後は何でもよい) からのアクセス許可をしています。

2.4系に関しては、 Require ip 192.168. 、
2.2系に関しては、 Allow from 192.168. 
で、アクセス許可を設定しています。

残り2か所は、/usr/share/phpMyAdmin/setup/ ディレクトリに対して同じ設定をします。

コピーしたい行の上で、「yy」コマンドでコピー、ペーストしたい場所の上の行で、「p」コマンドを押せば、簡単に修正できます。

4か所修正したら、「ZZ」コマンドで保存してvimを終了します。

mysqlのインストール

次にデータベースサーバーアプリとして mysql をインストールします。

mysql57-communityレポジトリのインストール

まずレポジトリを登録します。

下がログです。

mysqlサーバーのインストール

mysqlサーバーをインストールします。

下がログです。

my.cnfへ追加設定

mysqlの設定ファイルmy.cnfへ使用言語の設定をします。

utf8mb4に設定してます。utf8 の中でも、8バイト文字が使えるコーディングになります。

まず、バックアップしておきます。

次に、

で編集します。

ファイルの一番最後に次の設定を追加してください。すべて、エンコーディングを設定しています。

(余談)

ちなみに上のコードをコピーして、vim で 挿入モードで貼り付けすると、すべての行に # がついてコメント扱いになってしまいます。

これは、改行をしたとき、自動で前の行のインデント(字下げ)やコメント記号を引き継いでくれる機能がvimについているからです。

この機能を一時的に切るためには、

:set paste

とコマンド入力しておけば「ペースト(貼り付け)モード」として、字下げ、コメント文字の引継ぎが行われません。

:set nopaste 

とコマンドを打つことで、自動インデントモードに戻ります。

完成図

上図のように編集できたら保存して終了します。

mysqlサーバーの(再)起動

systemctl restart mysqld

とコマンド入力して、rootのパスワード(デフォルトでは vagrant)を入力して、mysql のサーバーを再起動します。1回目はまだ起動していないので再起動ではなくただの起動です。

mysqlのサーバーが起動した状態で、次のパスワードの変更に移ります。

ちなみに、サーバープログラムなどバックグラウンド(裏側)で動くプログラムは、どれもdがプログラム名についていて、デーモンと呼ばれています。

デーモン(守護神) が語源とのことで、裏で守ってくれているという意味なんでしょう。

初期パスワードの変更

mysql の設定最後として、パスワードを変更します。mysqlの5.7では、インストール時に一時パスワードが発行されており、インストール後すぐにパスワードを変更することになってます。

mysql もユーザをいろいろと作れるのですが、最初に作られているユーザ名は linuxの管理者と同じく root という名前になってます。

less /var/log/mysqld.log とコマンド入力すると、mysqld のインストール時のログ(記録)が表示されます。

less というコマンドはテキストファイルのビューアになってます。

/temporary と入力すると、「temporary」という文字列で検索されます。

nとNで結果を進めたり戻したりして探すと、

「temporary password is generated for root ・・・・」という行が見つかります。その行の末尾に、最初のパスワードが表示されています。

例えば、下図のようであれば、

jrwQ-pIjx3u) が初期パスワードになります。どこかにコピーしておいてください。

そのパスワードを使って、パスワードを修正します。

と入力します。

現在のパスワードを聞かれるので、先ほどコピーしておいたパスワードを入力します。

次に新しいパスワードを聞かれるので、任意のパスワードを入力します。
パスワードのセキュリティ設定により、大文字と小文字、数字と特殊文字を混ぜて、8文字以上にする必要があるはずですので、注意してください。

パスワード変更がうまくいったかをチェックしましょう。

でmysql に接続してみます。

パスワードを聞かれるので、入力して、mysqlのコマンド入力コンソールが起動したら、

とセミコロンもちゃんとつけて入力すると、最初から作られているデータベースの一覧が表示されます。

確認出来たら quit でログアウトしておきましょう。下が確認のログです。

apache(httpd)サーバーの(再)起動、Linux起動時のサーバー起動登録

最後に apache のデーモンを起動します。httpd と やっぱり d がついていますね。

apacheサーバー(httpd)の(再)起動

systemctl restart httpd を実行すると、ウェブサーバーのapacheが起動します。

また、次回 仮想マシンを起動したときに自動でapacheが起動するように登録します。

systemctl enable httpd を実行すると、登録できます。

2回、rootのパスワードを要求されます。毎回「vagrant」です。

system status コマンドで状況が確認できます。

下が実行結果で、enabled = 登録済みであり、active(running) = 起動中 になってます。

Webページの表示確認

現状でのWebページ確認

以上で仮想マシンの設定は終了です。もう、LAMP環境が出来上がっています。

これからアクセステストをしましょう。

ホストパソコンから、

にアクセスしてみましょう。

下図のようなページが表示されたらとりあえず成功です。

また、

にもアクセスしてみましょう。test.lhost と同じ画面が出るはずです。

さらに、

にアクセスして、

ユーザ名:root
パスワード:mysqlのインストール時に設定したパスワード

でログインしてみましょう。

下のようなphpMyAdminのページが表示され、データベースを操作・表示できるようになります。

Webページのテストページを配置

test.lhostと vagrant.lhost はそれぞれ別のページを表示することができます。

今は、何もファイルを置いていないため、エラーページとして上記のページが表示されているんです。

共有フォルダ上に、Webページのディレクトリを設定したので、ホストコンピュータ(Windows10)で、Webサイトのテストページを作ってみましょう。

まず、vhost.conf の設定を振り返ってみましょう。

となってます。/vagrant が実は、ホストコンピュータ側で仮想マシン管理フォルダ、つまり、Vagrantfileがあるフォルダになってます。

このフォルダに、html/vagrant というフォルダと html/test というフォルダを作りましょう。

html\testフォルダ

こちらには、サーバ情報を表示させてみましょう。下のリスト内容で html\test フォルダに index.php というファイルを作ってみてください。

<?php から ?> で囲まれた部分が、PHP で書かれたプログラム部分です。

foreach文で、$_SERVER という連想配列の中に記録されたサーバー情報をひとつづつ、print 命令 で表示させています。

上図のようにファイルを配置したら、もう一度、

にアクセスしてみましょう。

ページの内容が下図のように変わったはずです。

html\vagrantフォルダ

同様にvagrant.lhost の方も index.phpファイルを配置しましょう。

今度は下のリストのようにしてみます。

やっぱり、<?php から ?> までの間が、PHPで書かれたプログラムになってます。

今回は、<?PHPと?>で囲まれたブロックが2つに分かれています。

前半では、1から100までの間の乱数を発生させていて、後半のPHPで、結果を出力しています。1か2が出た時は、大々的に「大当たり」と表示させてます。

このように、PHPなどの言語でWebページを構成すると、表示するごとに内容を変えるページを表示させることができるんです。

にアクセスして、何度もリロード(再読み込み)させてみましょう。表示するたびに、違う数字がWebサーバーから送られてきます。

このとき、ブラウザでソースファイルを確認すると、シンプルに数字が埋め込まれてサーバーから送られてきていることが分かります。どんな数字が送られてくるのか、ブラウザを開いているクライアント側からだとわからないんです。

これもサーバー側でプログラミングする利点です。

たまには大当たりも出ますよ。

まとめ

今回までで、centos7 に LAMP環境を構築することができました。

今回は全部、手作業でインストールや設定変更を行いましたが、これを自動でやることもできます。もちろん自動で構築する仕組みを作るところは手作業ですが、一度仕組みを作ると、何台のパソコンにも、いくつもの仮想マシンでも、同じ作業を自動でやらすことができます。

また、構築の仕方が、動作するマニュアルになっているので、忘れようがなくとっても便利です。

次は、itamae という構築の自動化ツールを使った自動構築のやり方を説明したいと思います。

手を動かして手作業でサーバ環境を構築してみることも大切ですので、今回の手順を一度追ってみるようにしてくださいね。

記事一覧

windowsにvagrantとvirtualboxでWeb開発環境をつくろう。(その1)仮想マシン作成まで

windowsにvagrantとvirtualboxでWeb開発環境をつくろう。(その2)IPアドレスとホスト名の設定

windowsにvagrantとvirtualboxでWeb開発環境をつくろう。(その3)LAMP環境構築の概略

windowsにvagrantとvirtualboxでWeb開発環境をつくろう。(その4)手作業でLAMP環境構築

windowsにvagrantとvirtualboxでWeb開発環境をつくろう。(その5)itamaeを使って自動でLAMP環境構築するには

この記事が気に入ったら
いいね ! しよう