donfanning
8/15/2018 - 1:25 PM

CentOS6.7または7.1でのphpenvインストール手順

CentOS6.7または7.1でのphpenvインストール手順

CentOS6.7または7.1でのphpenvインストール手順

phpenvのインストール手順

phpenv はユーザ・ディレクトリごとに使用するPHPを選択することができます。 また、簡単に使用するPHPのバージョンを変更することができます。

各環境ごとにPHPをビルドしたものを適用するため、 phpenvを利用するにはPHPをビルドできるようにする必要があります。

1. rootで行う作業

  • 必要なものをyumでインストール
# yum -y install git gcc make libxml2 libxml2-devel openssl openssl-devel mod_ssl libcurl libcurl-devel libjpeg-devel libpng-devel libmcrypt-devel readline-devel libtidy-devel libxslt-devel httpd-devel libicu-devel gcc-c++ patch
  • bisonのインストール
# cd ~
# wget http://ftp.gnu.org/gnu/bison/bison-2.7.tar.gz
# tar zxvf bison-2.7.tar.gz
# cd bison-2.7
# ./configure
# make
# make install

CentOS7.1の場合m4が古いと怒られたのでm4を最新にする

# yum -y install m4

2. PHPを使用するユーザで行う作業

  • phpenvのインストール
$ curl https://raw.githubusercontent.com/CHH/phpenv/master/bin/phpenv-install.sh | bash
$ git clone git://github.com/CHH/php-build.git ~/.phpenv/plugins/php-build
$ echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(phpenv init -)"' >> ~/.bashrc
$ exec $SHELL -l
  • インストールできるPHPのバージョンを確認
$ phpenv install --list
usage: phpenv install [--ini|-i <environment>] VERSION
       phpenv install [--ini|-i <environment>] /path/to/definition

Available versions:
 5.2.17
 5.3.2
 …
 5.3.29
 5.4.0
 …
 5.4.45
 5.4snapshot
 5.5.0
 …
 5.5.30
 5.5snapshot
 5.6.0
 …
 5.6.15
 5.6snapshot
 7.0.0RC1
 …
 7.0.0RC7
 7.0snapshot
 master
  • PHPビルド時に必要なコンパイルオプションを指定

(apacheモジュールとintlモジュール)

$ vim ~/.phpenv/plugins/php-build/share/php-build/definitions/5.6.15

configure_option "--with-apxs2=/usr/sbin/apxs"
configure_option "--enable-intl"
  • このままだとpermissionエラーになるので以下のパッチを充てる
$ wget https://gist.githubusercontent.com/memememomo/91f774b1e41b24f99e1e/raw/fe57f9936dae16c5ab186919c1611c8f6a4b1fbc/php-build.patch
$ patch -u $HOME/.phpenv/plugins/php-build/bin/php-build < php-build.patch

上記のやったらエラーだった… とりあえずrootで以下のコマンドやって暫定対処 # chmod 777 /usr/lib64/httpd/modules

  • 使用するPHPをphpenvにインストール
$ phpenv install 5.6.15
$ phpenv versions
  5.6.15

5.6.15がインストールされた

CentOS7.1の場合mcryptがないというエラーと PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.というエラーになったので以下の手順でインストール

# yum -y install epel-release
# yum -y install --enablerepo=epel libmcrypt libmcrypt-devel
# yum -y install autoconf automake
  • インストールしたPHPを有効にする
$ phpenv local 5.6.15
$ php -v
PHP 5.6.15 (cli) (built: Nov 13 2015 08:04:52)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
    with Xdebug v2.3.3, Copyright (c) 2002-2015, by Derick Rethans
  • デフォルトのタイムゾーンを変更する
vim ~/.phpenv/versions/5.6.15/etc/php.ini
  • apacheにphpの設定を行う

vim /etc/httpd/conf/httpd.conf

# 以下をファイルの最後にでも追記
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
  • apache再起動
service httpd restart