モダンなPHP開発環境を作ってみる
今回用意するもの
- Vagrant
- virtualbox
- CentOS7
- PHP
- Mysql
- Nginx
目指すべきところ
- 最新のものを使い開発を行うことができるようにすること
- アーキテクチャーに関しては自分で考えれるようになること(なりたい)
- 今回Nginxはリバースプロキシ等の設定は行わない(勉強不足の為)
VirtualboxとVagrantを落としてくる
host側で開発用のディレクトリを作る
- 自分が作りたいところで
- mkdir Vagrant
上記の中でOS別に環境を分ける
- cd Vagrant
- mkdir CentOS7
CentOS7のboxを追加する(今回使うものは以下) https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box
- 上記のboxを登録する
- イメージ: $ vagrant box add [box-name] [box-url]
- 実際に叩くサンプル(以下)
vagrant box add CentOS7 https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box
Boxの有無の確認
- vagrant box list
boxから設定ファイルを生成する
- pwdを使ってCentOS7のディレクトリにいるか確認して以下コマンドを叩く
- vagrant init CentOS7
- Vagrantfileが生成されていたら成功
Vagrantfileのプライベートネットワークのコメントを外す
- config.vm.network "private_network", ip: "192.168.33.10"
Vagrantfileで共通フォルダのパーミッションを切り替える
仮想環境を起動する
- vagrant up
共通ファオルダがマウントされない場合は以下で手順で手動起動
仮想環境につなげる
windowsの場合はcmdからできないためsshクライアントを用いると幸せになれる
- その際、172.0.0.1の2222で接続する(up時に流れてくる。設定次第では変わってこともある。)
- ID,Passともにvagrant
ゲストOS側の設定を行っていく
$ sudo rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm $ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
- PHP5.6のインストール
$ sudo yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-fpm
- Nginxを入れる
- php-fpmの設定を行う
- Nginxとphp-fpmを使いバーチャルホストの設定を行う
- mysqlを入れて初期設定からユーザの作成までを行う
Laravel5.1が表示できない時はselinuxを殺す raichel.hatenablog.com
git-flowを入れる
以上で、とりあえず動かして開発することができるようになるよ。
感想
- CentOS7からコマンドが変わってなれるまで発狂しそうだった
- CentOS7とNginxを組み合わせる方法が知ってること前提の情報しかなくて禿げた
- 環境を作って学んだことはソースを書いてる時はイメージしなかった全体を知るきっかけになった
- ネットワークとかサーバとか。Serviceを載せて配信している裏側を知ることができた
- モノを作る上で必要な知識が全体的に広く浅く知見としてたまった