オープンソースの汎用スクリプト言語 PHPをサーバサイドのアプリケーション開発言語として CentOSサーバーにインストールします。

事前準備

当サイトでは、関連パッケージとして下記を事前にインストールしています。
MySQL
MySQLデータベースサポートでコンパイルします
PostgreSQL
PostgreSQLデータベースサポートでコンパイルします
apache
Apache2.x用の共用モジュールを作成します
GDパッケージを有効にするため、必要なグラフィックライブラリをインストールします。
《先頭文字 \:rootユーザー、$:一般ユーザーでの実行になります》
$ sudo yum -y install \
>   libjpeg-devel \
>   libpng-devel
libjpeg-devel ... JPEGグラフィックスフォーマット用ライブラリ
libpng-devel ... PNGグラフィックスフォーマット用ライブラリ

Mcrypt暗号化関数を使用するため、必要なライブラリをインストールします。
《先頭文字 \:rootユーザー、$:一般ユーザーでの実行になります》
$ sudo yum -y install libmcrypt-devel

IMAP/POP3/NNTP関数を使用するため 、必要なライブラリをインストールします。
《先頭文字 \:rootユーザー、$:一般ユーザーでの実行になります》
$ sudo yum -y install \
>   libc-client-devel \
>   pam-devel
$ sudo ln -s /usr/include/imap /usr/include/c-client
libc-client-devel ... IMAP拡張モジュール用c-clientライブラリ
pam-devel ... PAM認証用ライブラリ

インストール

/usr/local/srcに PHPの日本ミラーサイト からソールファイルをダウンロードしてインストールします。
なお、ソースファイルからインストールした際のアンインストールを考慮しインストールには、パッケージ管理ツール pacoを使用しています。
※ /usr/local/srcには、インストールするユーザーで書き込み権限を設定しています。
《先頭文字 \:rootユーザー、$:一般ユーザーでの実行になります》
$ cd /usr/local/src
# 2014/05/17時点での最新バージョンをダウンロードしています
$ wget http://jp.php.net/get/php-5.5.12.tar.bz2/from/jp2.php.net/mirror \
>   -O php-5.5.12.tar.bz2

# ファイルを展開して、コンパイルを行います
$ tar jxvf php-5.5.12.tar.bz2
$ cd php-5.5.12
$ ./configure \
    (configureパラメータ) \
    2>&1 | tee configure.log
$ make 2>&1 | tee make.log
$ make test 2>&1 | tee make_test.log
     :
Do you want to send this report now? [Yns]: n

$ sudo env PATH=$PATH paco -D make install 2>&1 | tee make_install.log
configureパラメータには以下を指定しています。
--with-libdir=lib64
64bit環境でのライブラリディレクトリを指定しています
--with-apxs2=/usr/local/apache2/bin/apxs
Apache2用の共用モジュールを作成します
--with-mysql=/usr
MySQLのベースディレクトリを指定します
--with-mysqli=/usr/local/bin/mysql_config
拡張 MySQLサポートを有効にするため mysql_configのパスを指定しています
--with-pgsql=/usr/local/pgsql
PostgreSQLのベースディレクトリを指定します
--with-imap
IMAP/POP3/NNTP関数を有効にしています
--with-imap-ssl
SSL対応の IMAP/POP3/NNTP関数を有効にしています
--with-zlib
Zlibサポートを有効にしています
--with-gd
GDモジュールを有効にしています
--with-jpeg-dir=shared
JPEGライブラリを使用します
--with-mcrypt
Mcrypt暗号化関数を有効にします
--with-kerberos
Kerberos認証を使用します
--enable-mbstring
マルチバイト処理を有効にしています
--enable-calendar
カレンダ関数を有効にしています

設定

PHPの開発環境用テンプレート設定ファイルをコピーし、PHPの設定ファイル php.iniを作成します。
《先頭文字 \:rootユーザー、$:一般ユーザーでの実行になります》
$ sudo cp -f /usr/local/src/php-5.5.12/php.ini-development /usr/local/lib/php.ini

$ sudo vi /usr/local/lib/php.ini
----------(vi ここから)----------
     :
; 国際化版の機能を有効にしています
;zend.multibyte = Off
zend.multibyte = On
     :
; スクリプトの既定文字を UTF-8にしています
;zend.script_encoding =
zend.script_encoding = UTF-8
     :
; エラーログのファイル名を指定しています
;error_log = php_errors.log
error_log = /var/log/php/error_log
     :
; POSTデータの最大サイズを32Mにしています
post_max_size = 32M
     :
; includeファイルの既定ディレクトリを指定しています
;include_path = ".:/php/includes"
include_path = ".:/usr/local/lib/php"
     :
; ファイルアップロードの最大サイズを32Mにしています
upload_max_filesize = 32M
     :
; タイムゾーンを指定しています
;date.timezone =
date.timezone = Asia/Tokyo
     :
; セッションファイルのディレクトリを変更しています
;session.save_path = "/tmp"
session.save_path = "/var/phpsess";
     :
; mbstringのデフォルト言語を日本語にしています
;mbstring.language = Japanese
mbstring.language = Japanese
     :
; マルチバイト文字の内部コードをUTF-8にしています
;mbstring.internal_encoding = UTF-8
mbstring.internal_encoding = UTF-8
     :
----------(vi ここまで)----------

Apacheの mime-typeを追加します。
《先頭文字 \:rootユーザー、$:一般ユーザーでの実行になります》
$ sudo vi /usr/local/apache2/conf/mime.types
----------(vi ここから)----------
     :
application/x-httpd-php         php
application/x-httpd-php-source  phps
     :
----------(vi ここまで)----------

# mime-typeを追加したので Apacheを再起動します
$ sudo service httpd graceful

フィードバック

記事の内容についてのご質問、ご指摘、その他ご意見等は下記にてお願いいたします。
System House ACT公式ブログ内記事 :
PHP - CentOS Linux開発環境 汎用スクリプト言語

トラックバックまたはコメントにてお寄せください。