momoto.github.io

PHP 5.5.1をインストールする(ソースからビルドする方法)

 PHP 5.5.1をソースコードからビルドして、Unix系システムへインストールする手引きです。 この記事ではCentOS 6.4環境でインストールの例を示しますが、自身でソースからビルドする方法は特定のLinuxディストリビューションに依りません。

 インストールを行うユーザは、インストール先ディレクトリに対して書込み権限をもっている必要があります。/usr/local/* にインストールする場合、通常、root権限が必要です。

  1. ソースコードを取得する

     ソースコードをインストールするマシンに用意します。 インターネットからダウンロードする場合、php.netにソースコードのURLが示されています。 bzip2、gzip、xzのアーカイブが用意されていますので、マシンで解凍・展開できる形式を選択してください。

     ダウンロードにはcURLやGNU Wgetなどのダウンロードマネージャやウェブブラウザを使用します。 次の例では、cURLをつかってphp-5.5.1.tar.gzをダウンロードします。

    [root@localhost ~]# curl -Lso php-5.5.1.tar.gz http://jp2.php.net/get/php-5.5.1.tar.gz/from/jp1.php.net/mirror
    

     取得したアーカイブファイルは適宜、解凍・展開して、ワーキングディレクトリを移動させます。 FHSに従うシステムであれば、独自にインストールするソフトウェアのためのディレクトリ /usr/local が予め用意されていますので、この記事ではソースコードを /usr/local/src に配置してインストールをすすめます。

    [root@localhost ~]# tar xfz php-5.5.1.tar.gz -C /usr/local/src/
    [root@localhost ~]# cd /usr/local/src/php-5.5.1
    [root@localhost php-5.5.1]#
    
  2. インストール要件を満たす

     マシンがインストールの要件を満たしている必要があります。 また、必要な拡張モジュールがある場合は、そのモジュールの要件も満たす必要があります。

    • Cコンパイラ

      [root@localhost ~]# yum install gcc
      
    • Make

      [root@localhost ~]# yum install make
      
  3. ビルドファイルを作成する

     configureをつかってビルドファイルを作成します。configureにオプションを与えることで、インストール先のディレクトリや有効にするモジュールを調整できます。 指定できるオプションについてはconfigure --helpManualを参照してください。 ビルドの要件を満たしていない場合、configureの処理は中断されます。

     例えば、インストール先のディレクトリを /usr/local/php-5.5.1 として、 ApacheモジュールMySQLiモジュールPDO MySQLモジュールOpenSSLモジュールを有効にする場合は次のようにconfigureを実行します。

    [root@localhost php-5.5.1]# ./configure \
    --prefix=/usr/local/php-5.5.1 \
    --with-apxs2=/usr/local/httpd-2.4.6/bin/apxs \
    --with-mysql=mysqlnd \
    --with-mysqli=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --with-openssl
    

     次に、configureのエラー例をいくつか示します。

    • xml2-config not found.

      checking for xml2-config path...
      configure: error: xml2-config not found. Please check your libxml2 installation.
      

       libxmlモジュール(デフォルトで有効)の要件であるlibxmlが必要です。

      [root@localhost php-5.5.1]# yum install libxml2-devel
      
    • configure: error: Cannot find OpenSSL’s <evp.h>

      configure: error: Cannot find OpenSSL's <evp.h>
      

       OpenSSLモジュールの要件であるOpenSSLが必要です。

      [root@localhost php-5.5.1]# yum search install openssl-devel
      

     configureの処理が終了してMakefileが作成されていれば、ビルドの段階へすすみます。

  4. ビルドとインストール

     ビルドとインストールにはmakeを使います。ディスクの容量が充分足りていることを確認してください。

    [root@localhost php-5.5.1]# make && make install
    

     makeの処理が無事に終了したらインストールは完了です。 configureの--prefixに指定した位置にファイルが展開されているはずです。

    [root@localhost php-5.5.1]# /usr/local/php-5.5.1/bin/php -v
    PHP 5.5.1 (cli)
    Copyright (c) 1997-2013 The PHP Group
    Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    

インストール後

 必要に応じて、php.iniの設定、実行バイナリへのパスの設定を行なってください。 ソースコードのアーカイブには標準のphp.iniが、開発環境向けと製品向けの2通り用意されています。

[root@localhost php-5.5.1]# cp /usr/local/src/php-5.5.1/php.ini-development /usr/local/php-5.5.1/lib/php.ini

 新しく設置したphp.iniが正常に認識されているかどうかは--iniオプションで出力される Loaded Configuration File などで確認できます。

[root@localhost php-5.5.1]# ./bin/php --ini
Configuration File (php.ini) Path: /usr/local/php-5.5.1/lib
Loaded Configuration File:         /usr/local/php-5.5.1/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

 標準のままの状態ではタイムゾーン未設定の警告がでますが、date.timezoneディレクティブにタイムゾーンを設定するとこの警告は出なくなります。その他のディレクティブも用途にあわせて設定してください。

PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Tokyo

動作を確認する

 最後に、PHP 5.5.1の動作を少し確認してみます。 ここではPHPの拡張モジュールが正常に機能しているかどうかを中心に確かめていきます。

参考

関連記事