CHANSHIGELOG

いろんなこと

【2019】el7+phpenv+nginx(php-fpm)で開発環境を作り直した話 その1

あけましておめでとうございます。
2019年も引き続き、よろしくお願いいたします。

去年の大晦日から元旦にかけ、MacOSをMojaveにアップグレードしたついでに、
Vagrantの開発環境も新しくしたので、備忘録程度に残していきたいと思います。

旧環境を取っておけば一発だったと思いますが、実際にコマンド叩いて環境構築していくのも楽しいし、理解が深まるので久しぶりにやってみました。

まずは作業ディレクトリとCentOS7のBoxを使う前提のVagrantfileを生成します。

$ mkdir vagrant-dev
$ cd vagrant-dev
$ vagrant init centos/7

環境のサーバIPを設定 (好きなように変更)
$ vim Vagrantfile

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network "private_network", ip: "192.168.33.10"

結構便利なプラグインも入れておく
$ vagrant plugin install vagrant-vbguest

お立ち上げからsshログイン

$ vagrant up
$ vagrant ssh

これでベースができたので、ここからサーバの設定とphpenv(rbenv), nginxなどなどを入れます。

rootに移動
$ sudo su -

SELinuxを無効にする
# vi /etc/sysconfig/selinux

disabled に変更して保存

SELINUX=disabled

timezoneをAsia/Tokyo にOverwrite

# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

ここでsshログアウト後、 $ vagrant reload をしてVMを再起動
あらためて $vagrant sshログイン後、rootに移動する $ sudo su -

TimezoneがJSTになってることを確認
# date

EPELリポジトリと、phpenv等で必要になるパッケージをインストール
# yum install epel-release openssl-devel readline-devel zlib-devel libxml2-devel bzip2-devel curl-devel libjpeg-devel libpng-devel libicu-devel gcc-c++ libtidy-devel libxslt-devel autoconf bison-devel wget unzip perl-ExtUtils-MakeMaker

gitをインストール ※yumでも入りますが、新しいVersionを使う

# wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
# tar vfx git-2.9.5.tar.gz
# cd git-2.9.5
# make configure
# ./configure --prefix=/usr
# make all
# make install

インストールできたか確認
# git --version

不要なファイルを削除
# cd ../ && rm -rf git-*

phpenv をシステムワイドに入れる

# git clone https://github.com/CHH/phpenv.git
# phpenv/bin/phpenv-install.sh
# mv .phpenv/ /usr/local/phpenv
# chmod 775 -R /usr/local/phpenv
# git clone https://github.com/php-build/php-build.git /usr/local/phpenv/plugins/php-build
# exec $SHELL
# phpenv

rbenv も必要になるので同様に入れる

# git clone http://github.com/sstephenson/rbenv.git .rbenv
# mv .rbenv/ /usr/local/rbenv
# chmod 775 -R /usr/local/rbenv
# git clone https://github.com/sstephenson/ruby-build.git /usr/local/rbenv/plugins/ruby-build
# exec $SHELL
# rbenv

rbenvのprofileを修正して保存
# vi /etc/profile.d/rbenv.sh

export RBENV_ROOT="/usr/local/rbenv"
export PATH="$RBENV_ROOT/bin:/usr/local/phpenv/bin:$PATH"
eval "$(rbenv init -)"
eval "$(phpenv init -)"

リロード
# exec $SHELL

rubyインストール

# rbenv install 2.6.0
# rbenv global 2.6.0
# rbenv versions
# ruby -v

phpenv をちょっと修正
# vi /usr/local/phpenv/bin/phpenv

#!/usr/bin/env bash
export PHPENV_ROOT=${PHPENV_ROOT:-'/usr/local/phpenv'}
export RBENV_ROOT="$PHPENV_ROOT"
exec "$RBENV_ROOT/libexec/rbenv" "$@"

リロード
# exec $SHELL

やっと、phpインストール
5.6 / 7.1 / 7.2 を入れます

# phpenv install 7.1.25
# phpenv install 7.2.13
# phpenv install 5.6.39

確認 (このときはまだバージョン指定がされていない状態)
# phpenv versions
* system (set by /usr/local/phpenv/version)
  5.6.39
  7.1.25
  7.2.13

コマンド無いよ!となる
# php -v
rbenv: php: command not found

The `php' command exists in these PHP versions:
  5.6.39
  7.1.25
  7.2.13

システムのphpバージョンを7.2に切り替える (バージョンはインストールしたものを指定)

# phpenv global 7.2.13

確認
# phpenv versions
  system
  5.6.39
  7.1.25
* 7.2.13 (set by /usr/local/phpenv/version)

生きた...!!! ちゃっかりXdebugもある素敵
# php -v
PHP 7.2.13 (cli) (built: Jan  9 2019 20:17:32) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.13, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.6.1, Copyright (c) 2002-2018, by Derick Rethans

ついでにcomposerも入れましょう

# curl -sS https://getcomposer.org/installer | php
# mv composer.phar /usr/local/bin/composer

※ 以下でも可
# yum install composer

確認(rootで動かすなや!といわれてます。実際はrootで叩かないのでOK)
# composer --version
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Composer version 1.8.0 xxxxx

長くなりましたので、この辺にしておきます!
次回は php-fpm + nginx の設定を書こうと思います。

※追記 書いたのでリンク

chanshige.hatenablog.com