2018.07.26 CentOS 7.4, 6.9, 5.11, 4.9でPHPのソースインストール
概要

Vagrantで色々なバージョンのPHPをソースインストールするときの自分用メモです。
OSのバージョン(vagrant box)とインストールしたPHPのバージョンの対応は下の通りです。

CentOS 7.4
(centos/7)
CentOS 6.9
(centos/6)
CentOS 5.11
(hfm4/centos5)
CentOS 4.9
(hfm4/centos4)
PHP 4.3.11
PHP 4.4.9
PHP 5.0.5×
PHP 5.1.6×
PHP 5.2.17
PHP 5.3.29
PHP 5.4.45
PHP 5.5.38
PHP 5.6.36
PHP 7.0.30
PHP 7.1.17
PHP 7.2.5××
下準備

最初に、PHPをソースインストールするための準備をしていきます。

hfm4/centos5を使う場合は、以下のコマンドを打ちます。
参考:http://koredekaiketsu.blogspot.com/2017/04/linuxyumyumrepo-error.html

sudo sed -i "s/mirrorlist/#mirrorlist/" /etc/yum.repos.d/CentOS-Base.repo
sudo sed -i "s_#baseurl=http://mirror.centos.org/centos/\$releasever/os/\$basearch/_baseurl=http://vault.centos.org/5.11/os/\$basearch/_" /etc/yum.repos.d/CentOS-Base.repo 
sudo sed -i "s_#baseurl=http://mirror.centos.org/centos/\$releasever/updates/\$basearch/_baseurl=http://vault.centos.org/5.11/os/\$basearch/_" /etc/yum.repos.d/CentOS-Base.repo 
sudo sed -i "s_#baseurl=http://mirror.centos.org/centos/\$releasever/extras/\$basearch/_baseurl=http://vault.centos.org/5.11/os/\$basearch/_" /etc/yum.repos.d/CentOS-Base.repo 
sudo sed -i "s_#baseurl=http://mirror.centos.org/centos/\$releasever/centosplus/\$basearch/_baseurl=http://vault.centos.org/5.11/os/\$basearch/_" /etc/yum.repos.d/CentOS-Base.repo 
sudo sed -i "s_#baseurl=http://mirror.centos.org/centos/\$releasever/contrib/\$basearch/_baseurl=http://vault.centos.org/5.11/os/\$basearch/_" /etc/yum.repos.d/CentOS-Base.repo

次に、PHPをソースインストールするに当たって必要になってくるソフトウェアをインストールします。

sudo yum install -y make gcc flex wget patch autoconf libxml2-devel

これで準備はできたので、PHPをインストールしていきます。

PHP4.3.11 のインストール
cd /usr/local/src/ 
sudo wget http://museum.php.net/php4/php-4.3.11.tar.gz 
sudo tar zxvf php-4.3.11.tar.gz 
cd php-4.3.11/ 
sudo ./configure --prefix=/usr/local/php-4.3.11 
sudo make && sudo make install
### 結果 ### 
$ /usr/local/php-4.3.11/bin/php -v 
PHP 4.3.11 (cgi) (built: Jul 12 2018 18:53:34) 
Copyright (c) 1997-2004 The PHP Group 
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
PHP4.4.9 のインストール
cd /usr/local/src/ 
sudo wget http://museum.php.net/php4/php-4.4.9.tar.gz 
sudo tar zxvf php-4.4.9.tar.gz 
cd php-4.4.9/ 
sudo ./configure --prefix=/usr/local/php-4.4.9 
sudo make && sudo make install
### 結果 ### 
$ /usr/local/php-4.4.9/bin/php -v 
PHP 4.4.9 (cgi) (built: Jul 12 2018 18:46:57) 
Copyright (c) 1997-2008 The PHP Group 
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
PHP5.0.5 のインストール

CentOS 7.4ではPHP5.0.5をインストールできなかったので、
CentOS 6.9, 5.11, 4.9で以下のコマンドを打っていきます。

cd /usr/local/src/ 
sudo wget http://museum.php.net/php5/php-5.0.5.tar.gz 
sudo tar zxvf php-5.0.5.tar.gz 
cd php-5.0.5/ 
sudo ./configure --prefix=/usr/local/php-5.0.5 
sudo make && sudo make install
### 結果 ### 
$ /usr/local/php-5.0.5/bin/php -v 
PHP 5.0.5 (cgi) (built: Jul 13 2018 02:49:24) 
Copyright (c) 1997-2004 The PHP Group 
Zend Engine v2.0.5, Copyright (c) 1998-2004 Zend Technologies
PHP5.1.6 のインストール

CentOS 7.4ではPHP5.1.6をインストールできなかったので、
CentOS 6.9, 5.11, 4.9で以下のコマンドを打っていきます。

cd /usr/local/src/ 
sudo wget http://museum.php.net/php5/php-5.1.6.tar.gz 
sudo tar zxvf php-5.1.6.tar.gz 
cd php-5.1.6/ 
sudo ./configure --prefix=/usr/local/php-5.1.6 
sudo make && sudo make install
### 結果 ### 
$ /usr/local/php-5.1.6/bin/php -v 
PHP 5.1.6 (cgi) (built: Jul 13 2018 00:28:14) 
Copyright (c) 1997-2006 The PHP Group 
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
PHP5.2.17 のインストール

CentOS 6.9, 5.11, 4.9では以下のコマンドを打ってインストールします。

cd /usr/local/src/ 
sudo wget http://museum.php.net/php4/php-5.2.17.tar.gz 
sudo tar zxvf php-5.2.17.tar.gz 
cd php-5.2.17/ 
sudo ./configure --prefix=/usr/local/php-5.2.17 
sudo make && sudo make install

CentOS 7.4では、以下のコマンドでインストールを行います。
参考:https://blog.youyo.info/post/2016/02/10/php52-centos7/

cd /usr/local/src/ 
sudo wget http://museum.php.net/php5/php-5.2.17.tar.gz 
sudo tar zxvf php-5.2.17.tar.gz 
sudo wget https://mail.gnome.org/archives/xml/2012-August/txtbgxGXAvz4N.txt -O php-5.2.17.patch 
cd php-5.2.17/ 
sudo patch -p0 -b < ../php-5.2.17.patch 
sudo ./configure --prefix=/usr/local/php-5.2.17 
sudo make && sudo make install
### 結果 ### 
$ /usr/local/php-5.2.17/bin/php -v 
PHP 5.2.17 (cli) (built: Jul 12 2018 18:32:25) 
Copyright (c) 1997-2010 The PHP Group 
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
PHP5.3.29 のインストール
cd /usr/local/src/ 
sudo wget http://museum.php.net/php5/php-5.3.29.tar.gz 
sudo tar zxvf php-5.3.29.tar.gz 
cd php-5.3.29/ 
sudo ./configure --prefix=/usr/local/php-5.3.29 
sudo make && sudo make install
### 結果 ### 
$ /usr/local/php-5.3.29/bin/php -v 
PHP 5.3.29 (cli) (built: Jul 12 2018 14:19:46) 
Copyright (c) 1997-2014 The PHP Group 
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
PHP5.4.45 のインストール
cd /usr/local/src/ 
sudo wget http://museum.php.net/php5/php-5.4.45.tar.gz 
sudo tar zxvf php-5.4.45.tar.gz 
cd php-5.4.45/ 
sudo ./configure --prefix=/usr/local/php-5.4.45 
sudo make && sudo make install
### 結果 ### 
$ /usr/local/php-5.4.45/bin/php -v 
PHP 5.4.45 (cli) (built: Jul 12 2018 14:25:11) 
Copyright (c) 1997-2014 The PHP Group 
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
PHP5.5.38 のインストール
cd /usr/local/src/ 
sudo wget http://museum.php.net/php5/php-5.5.38.tar.gz 
sudo tar zxvf php-5.5.38.tar.gz 
cd php-5.5.38/ 
sudo ./configure --prefix=/usr/local/php-5.5.38 
sudo make && sudo make install
### 結果 ### 
$ /usr/local/php-5.5.38/bin/php -v 
PHP 5.5.38 (cli) (built: Jul 12 2018 14:33:24) 
Copyright (c) 1997-2015 The PHP Group 
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
PHP5.6.36 のインストール
cd /usr/local/src/ 
sudo wget http://museum.php.net/php5/php-5.6.36.tar.gz 
sudo tar zxvf php-5.6.36.tar.gz 
cd php-5.6.36/ 
sudo ./configure --prefix=/usr/local/php-5.6.36 
sudo make && sudo make install
### 結果 ### 
$ /usr/local/php-5.6.36/bin/php -v 
PHP 5.6.36 (cli) (built: Jul 12 2018 14:44:16) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
PHP7.0.30 のインストール

CentOS 7.4, 6.9では、以下のコマンドでインストールを行います。

cd /usr/local/src/ 
sudo wget http://museum.php.net/php7/php-7.0.30.tar.gz 
sudo tar zxvf php-7.0.30.tar.gz 
cd php-7.0.30/ 
sudo ./configure --prefix=/usr/local/php-7.0.30 
sudo make && sudo make install

CentOS 5.11, 4.9では、以下のコマンドでインストールを行います。

cd /usr/local/src/ 
sudo wget http://museum.php.net/php7/php-7.0.30.tar.gz 
sudo tar zxvf php-7.0.30.tar.gz 
cd php-7.0.30/ 
sudo rm -f configure 
sudo ./buildconf --force 
sudo ./configure --prefix=/usr/local/php-7.0.30 
sudo make && sudo make install
### 結果 ### 
$ /usr/local/php-7.0.30/bin/php -v 
PHP 7.0.30 (cli) (built: Jul 12 2018 22:04:25) ( NTS ) 
Copyright (c) 1997-2017 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
PHP7.1.17 のインストール

CentOS 7.4, 6.9では、以下のコマンドでインストールを行います。

cd /usr/local/src/ 
sudo wget http://museum.php.net/php7/php-7.1.17.tar.gz 
sudo tar zxvf php-7.1.17.tar.gz 
cd php-7.1.17/ 
sudo ./configure --prefix=/usr/local/php-7.1.17 
sudo make && sudo make install

CentOS 5.11, 4.9では、以下のコマンドでインストールを行います。

cd /usr/local/src/ 
sudo wget http://museum.php.net/php7/php-7.1.17.tar.gz 
sudo tar zxvf php-7.1.17.tar.gz 
cd php-7.1.17/ 
sudo rm -f configure 
sudo ./buildconf --force 
sudo ./configure --prefix=/usr/local/php-7.1.17 
sudo make && sudo make install
### 結果 ### 
$ /usr/local/php-7.1.17/bin/php -v 
PHP 7.1.17 (cli) (built: Jul 12 2018 21:12:19) ( NTS ) 
Copyright (c) 1997-2018 The PHP Group 
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
PHP7.2.5 のインストール

CentOS 5.11, 4.9ではPHP5.1.6をインストールできなかったので、
CentOS 7.4, 6.9で以下のコマンドを打っていきます。

cd /usr/local/src/ 
sudo wget http://museum.php.net/php7/php-7.2.5.tar.gz 
sudo tar zxvf php-7.2.5.tar.gz 
cd php-7.2.5/ 
sudo ./configure --prefix=/usr/local/php-7.2.5 
sudo make && sudo make install
### 結果 ### 
$ /usr/local/php-7.2.5/bin/php -v 
PHP 7.2.5 (cli) (built: Jul 12 2018 21:22:54) ( NTS ) 
Copyright (c) 1997-2018 The PHP Group 
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
感想
  • CentOS 7系で PHP 5.0, 5.1を入れる手段はあるのだろうか
  • PHPのバージョンが新しくなるにつれてコンパイル時間が長くなった
  • 古いOSを使うのは良くない
  • ソースインストールが必要ない環境を作ろう!!!