VagrantでPHPの開発環境を作成する

Laravelの場合はHpmeSteadを利用すると楽。
HpmeSteadで環境構築(Mac)
HpmeSteadで環境構築(Windows)





VirtualBoxとVagrantインストール



https://www.virtualbox.org/
https://www.vagrantup.com/



box(CentOS7.0)取得・導入



http://www.vagrantbox.es/
から利用したいOSを選択する。
今回はCentOS 7.0を使用する。

以下のコマンド
vagrant box add centos7.0 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

取得したbox一覧確認

vagrant box list

Vagrantfile作成

vagrant init centos7.0

コマンドを実行したディレクトリにVagrantfileが作成されている。

Vagrantファイルの35行目あたりコメントアウトを外す。
#config.vm.network "private_network", ip: "192.168.33.10"

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

Vagrantfileがあるディレクトリでコマンド
vagrant ssh
でCentOSの仮想環境に入れるようになる。


CentOS7.0日本語化



以降の作業は仮想環境上でおこなう。

centos7だと手順が変わっている?
https://www.server-world.info/query?os=CentOS_7&p=japanese

su
yum -y install ibus-kkc vlgothic-*
localectl set-locale LANG=ja_JP.UTF-8
source /etc/locale.conf

日本語キーボード


vi /etc/sysconfig/keyboard
KEYTABLE="jp106"
MODEL="jp106"
LAYOUT="jp"
KEYBOARDTYPE="pc"
を追記



監査機能とファイアウォール停止



開発環境なので雑に。

実行しないとホストのブラウザから表示できない。
systemctl stop firewalld
systemctl disable firewalld
systemctl stop auditd
systemctl disable auditd

ちゃんとやる場合はファイアウォールに穴を開ける。

仮想環境リブート
reboot


再度sshで入り直す。
sudo yum -y update



apacheインストール




yum -y install httpd
httpd -v



PHP7.2インストール



yum -y install epel-release
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

ls -l /etc/yum.repos.d/
remi-phpxx からインストールしたいバージョンを指定する。

phpだけなら
yum install --enablerepo=remi,remi-php72

必要に応じて追加インストール。
yum install --enablerepo=remi,remi-php72 php php-devel php-mbstring php-pdo php-xml php-zip1 php-mysqlnd



動作確認




適当なファイル作成
vi /var/www/html/test.php

<?php
echo "hello";


vi /etc/httpd/conf/httpd.conf

<Directory "/var/www/html">
AllowOverride None

AllowOverride All
に書き換え。

Apache 再起動
service httpd restart

Apache 自動起動
systemctl enable httpd.service

アクセス
http://192.168.33.10/test.php

アクセスできない場合以下が必要かも
sudo chmod 777 -R /var/www/html



ホストとファイル同期を設定する。



デフォルトでVagranfileがあるホストのディレクトリとVMの./vagrant(sshで初期表示されるディレクトリではない)
は共有されている。

htmlディレクトリの削除
sudo rm -r html

事前にホスト側でhtmlディレクトリを作成
リンクを貼る
sudo ln -s /vagrant/html /var/www/html

以上でホスト側の変更が/var/www/htmlに反映されるようになる。
ホストでhtml/test.php を作成して


以上で開発構築完了。

デバッグしたい場合はXDebugを入れてVisualStudioCodeなどでリモートデバッグの設定を行う。
VisualStudioCodeでPHPのリモートデバッグ


構築した環境は複製して共有するのがセオリーのようだ。
http://vdeep.net/vagrant-package



参考



https://qiita.com/akihira207/items/cd904a54daa79aeff650


2019年2月3日日曜日