初心者向け!Vagrantで簡単LAMP開発環境構築

初心者向け!Vagrantで簡単LAMP開発環境構築

Web開発におけるローカル開発環境は、以前よりXAMPPやMAMPを使ってきましたが、現在の主流はVagrantやDocker。
インフラ関係は全くの素人なので、主流とはいえそれらの利用を避けてきました。
しかし、今後必要になるであろうと、VagrantでのLAMP開発環境導入についてまとめました。

僕自身、白い画面(Mac:ターミナル)や黒い画面(Win:コマンドプロンプト)が苦手なため、GUIで可能な箇所はGUIで行っているので、エンジニアではない方でもおそらくできるのではないかと思います。

今回構築する構成は、以下となります。
CentOS7 + PHP7 + Apace2.4 + MySQL5.6

用意するもの

  • Vagrant 1.8.4
    公式サイト – Vagrant
    こちらから古いバージョンをダウンロードできます。
  • VirtualBox 5.0.X
    公式サイト – VirtualBox
    こちらから古いバージョンをダウンロードできます。
  • エディタ
  • SSHクライアント(Winのみ)
  • FTPクライアント

Vagrantは1.8.5にはバグがあるとのことで、1.8.4を推奨です。
また、それに付随して、Vagrant 1.8.4はVirtualBox 5.1で動かないため、VirtualBoxは5.0.Xを推奨です。

Vagrant 1.8.5のバグは、1.8.6にて解消されました。
Vagrant 1.8.6 + VirtualBox 5.1.6 + macOS Sierra‎にて動作することを確認しました。

VagrantとVirtualBoxのインストールは簡単なので割愛しています。

Vagrantの構築

Vagrant構築ディレクトリの作成

MacならFinder、Winならエクスプローラでディレクトリを事前に作成しておきます。

僕の場合はMacなので、以下のようにしています。
/Users/ユーザーネーム/Vagrant/lamp7

ここからは、ターミナル(Mac)またはコマンドプロンプト(Win)にて進めます。

cd Vagrant
cd lamp7

上記コマンドを入力して、作成したディレクトリに移動します。

pwd

上記コマンドを入力して、きちんと移動できたか確認します。

/Users/ユーザーネーム/Vagrant/lamp7
などのように、事前に作成したディレクトリが表示されたら問題ありません。

Boxの準備

今回はCentOS7を使いますので、以下URLより有志の方が作成されたBoxをありがたく使わせていただきます。

Vagrantbox.es

vagrant box add centos7 https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box

上記コマンドを入力して、VagrantにBoxを準備します。
Boxをダウンロードするので、少し時間がかかります。
※エラーが出たら、もう一度同じコマンドを入力します。

Vagrantfileの作成と編集

vagrant init centos7

上記コマンドを入力して、Vagrantfileを作成します。

# config.vm.network "private_network", ip: "192.168.33.10"
↓
config.vm.network "private_network", ip: "192.168.33.10"

/Users/ユーザーネーム/Vagrant/lamp
ここに作成されたVagrantfileをエディタで開いて、29行目のコメントアウトを外します。

Vagrantの起動

vagrant up

上記コマンドを入力して、Vagrantを起動します。

VagrantへSSH接続

SSH接続

vagrant ssh

Macならターミナルで問題ありませんが、WinならSSHクライアントを使用して、上記コマンドでVagrantへSSH接続をします。

開発環境の構築

VagrantにLAMPの Apache / MySQL / PHP をインストールしていきます。
インストールをするにあたり、権限の高いrootユーザーとしてログインする必要があります。

su

上記コマンドを入力します。

パスワード:

パスワードを聞かれるので「vagrant」と入力します。
※入力しても表示されませんが入力できています。

表示されているユーザー名が [vagrant@localhost ~] から [root@localhost vagrant] に変更されていれば、問題ありません。

yumのアップデートと必要なパッケージ・リポジトリのインストール

yum -y update

上記コマンドを入力して、yumをアップデートします。
アップデートを大量にダウンロードしてインストールするので、少し時間がかかります。
問題なく終わると「完了しました!」が表示されます。

yum -y install yum-plugin-priorities

上記コマンドを入力して、プラグインをインストールします。
問題なく終わると「完了しました!」が表示されます。

yum -y groupinstall "Base" "Development tools" "Japanese Support"

上記コマンドを入力して、必要なパッケージをインストールします。
問題なく終わると「完了しました!」が表示されます。

yum -y install epel-release

上記コマンドを入力して、EPELリポジトリをインストールします。
問題なく終わると「完了しました!」が表示されます。

rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

上記コマンドを入力して、Remiリポジトリをインストールします。
特に完了などの表示はありません。

Apacheのインストール

yum -y install httpd

上記コマンドを入力して、apacheをインストールします。
問題なく終わると「完了しました!」が表示されます。

systemctl stop firewalld

上記コマンドを入力して、ファイアウォールを停止します。
特に完了などの表示はありません。

systemctl disable firewalld

上記コマンドを入力して、ファイアウォールの自動起動を停止します。
特に完了などの表示はありません。

systemctl start httpd

上記コマンドを入力して、apacheを起動します。
特に完了などの表示はありません。

systemctl enable httpd.service

上記コマンドを入力して、apacheの自動起動を設定します。
特に完了などの表示はありません。

MySQLのインストール

yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

上記コマンドを入力して、MySQLをインストールします。
問題なく終わると「完了しました!」が表示されます。

yum -y install mysql-community-server

上記コマンドを入力して、MySQLをインストールします。
問題なく終わると「完了しました!」が表示されます。

systemctl start mysqld.service

上記コマンドを入力して、MySQLを起動します。
特に完了などの表示はありません。

systemctl enable mysqld.service

上記コマンドを入力して、MySQLの自動起動を設定します。
特に完了などの表示はありません。

PHPのインストール

yum --enablerepo=remi-php70 -y install php php-mbstring php-pear php-fpm php-pdo php-intl

上記コマンドを入力して、PHPをインストールします。
問題なく終わると「完了しました!」が表示されます。

phpMyAdminのインストール

yum --enablerepo=remi-php70 -y install phpMyAdmin php-mcrypt

上記コマンドを入力して、phpMyAdminをインストールします。
問題なく終わると「完了しました!」が表示されます。

Vagrantの稼働を確認

ひと通りインストールが完了したので、このあたりでVagrantがきちんと稼働しているか確認します。

exit

上記コマンドを入力して、rootユーザーからログアウトします。

exit

さらに上記コマンドを入力して、VagrantのSSH接続を解除します。

vagrant reload

上記コマンドを入力して、Vagrantを再起動します。

http://192.168.33.10/
上記URLにアクセスしてこのような画面が表示されたら問題ありません。

phpMyAdminの初期設定とphp.iniの編集

phpMyAdminの初期設定をするために、通常であればターミナルやコマンドプロンプトにてvimを使用して編集するのですが、vimに慣れていない方でも編集できるよう、FTPクライアントやエディタで設定を行います。

FTPクライアントでVagrantへ接続

プロトコル SFTP
ホスト 192.168.33.10
ユーザー root
パスワード vagrant

上記接続情報でrootユーザーとして、VagrantへFTPクライアントにて接続します。

phpMyAdmin.confの編集

/etc/httpd/conf.d/phpMyAdmin.conf をローカルにダウンロードして、エディタで追記します。

19行目 \</RequireAny> の直下に以下の2行を追記します。
AllowOverride all
Require all granted

<Directory /usr/share/phpMyAdmin/>
    AddDefaultCharset UTF-8

    <IfModule mod_authz_core.c>
    # Apache 2.4
    <RequireAny>
        Require ip 127.0.0.1
        Require ip ::1
    </RequireAny>
    </IfModule>
↓
<Directory /usr/share/phpMyAdmin/>
    AddDefaultCharset UTF-8

    <IfModule mod_authz_core.c>
    # Apache 2.4
    <RequireAny>
        Require ip 127.0.0.1
        Require ip ::1
    </RequireAny>
    AllowOverride all
    Require all granted
    </IfModule>

ファイルを保存し、FTPクライアントにて同ファイルを上書きします。

config.inc.phpの編集

/etc/phpMyAdmin/config.inc.php をローカルにダウンロードして、エディタで編集します。
※ファイルが見当たらない場合は、FTPクライアントを接続し直してみてください。

84行目に対する85行目の設定を編集します。

$cfg['Servers'][$i]['AllowNoPassword']
= FALSE;
↓
$cfg['Servers'][$i]['AllowNoPassword']
= TRUE;

ファイルを保存し、FTPクライアントにて同ファイルを上書きします。

php.iniの編集

/etc/php.ini をローカルにダウンロードして、エディタで編集します。

462行目を編集します。

display_errors = Off
↓
display_errors = On

877行目を編集します。

;date.timezone =
↓
date.timezone = "Asia/Tokyo"

1465行目を編集します。

;mbstring.language = Japanese
↓
mbstring.language = Japanese

ファイルを保存し、FTPクライアントにて同ファイルを上書きします。

Apacheの再起動

ファイルの編集がひと通り終わったので、このあたりでApacheを再起動します。

vagrant ssh

上記コマンドでVagrantへSSH接続をします。

su

上記コマンドを入力し、パスワード「vagrant」でrootユーザーとしてログインします。

systemctl restart httpd

上記コマンドを入力し、Apacheを再起動します。

Vagrantの稼働を最終確認

phpinfoを表示させる

<?php echo phpinfo(); ?>

と記述したindex.phpを作成し、FTPクライアントで /var/www/html に配置します。

http://192.168.33.10/
上記URLにアクセスしてこのような画面が表示されたら問題ありません。

phpMyAdminにアクセス

http://192.168.33.10/phpMyAdmin/
phpMyAdminのURLはこちら。
何かしらのユーザー名のみの入力でログインできます。

まとめ

このように、Vagrantを使えばLAMP開発環境が簡単に構築できます。
シンボリックリンクを設定すれば、ローカルのフォルダを編集してVagrantにそのまま反映させる、といったことも可能です。

Vagrantはさぞ難しいだろうと思っていましたが、やってみると意外と簡単で面白かったです。
連休二日間かけて色々試したり勉強した甲斐がありました。
LAMP開発環境が手軽に作れるので、いろんなCMSを試しに使ってみたりと、遊べそうですね。

ちなみに、このようにせっせと個別でインストールしなくても、Scotch Boxを使えば一発なので、用途に合わせてどうぞ。
公式サイト – Scotch Box

Vagrantコマンド簡易一覧

boxの追加
vagrant box add [BOX_NAME] [URL]
追加済みboxの確認
vagrant box list
boxの削除
vagrant box remove [BOX_NAME]
仮想マシンの初期化
vagrant init [BOX_NAME]
仮想マシンの起動
vagrant up
仮想マシンに接続
vagrant ssh
仮想マシンの状態確認
vagrant status
仮想マシンの保留
vagrant suspend
仮想マシンの停止
vagrant halt
仮想マシンの破棄
vagrant destroy

参考記事

VagrantにCentOS7&PHP7のLAMP環境を構築する – 株式会社ユニオンネット
vagrantを使ったLAMP環境をローカルに作る手順① ~Vagrantfileを作成しよう!~ – Qiita

開発環境カテゴリの最新記事