PHP 5.3.8をソースからインストール

前回はApacheをソースからインストールしました。

今回はPHPをソースからインストールしてみます。

環境

CentOS 6.0
PHP 5.3.8(5.3.7はcrypt関数に重大なバグがあるので注意!)
paco 2.0.9(必須ではない)

インストール手順

ソースをダウンロード
wget http://jp2.php.net/get/php-5.3.8.tar.gz/from/this/mirror
tar zxvf php-5.3.8.tar.gz
cd php-5.3.8
インストール準備

指定するオプションによります。

yum install libxml2-devel
yum install libjpeg-devel
yum install libpng-devel
インストール

オプションは任意で必要なものを選択してください。
Apacheとの連携のために --with-apxs2 には
インストール済みのApacheのapxsを指定する。

./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-mbregex --enable-zend-multibyte --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --enable-libxml --enable-xml --with-gd --enable-gd-native-ttf --with-pear --enable-bcmath --with-jpeg-dir --with-png-dir --with-zlib-dir --with-config-file-path=/etc
make
paco -D make install

インストール完了です!

設定

PHP設定
cp /usr/local/src/php-5.3.8/php.ini-production /etc/php.ini
vim /etc/php.ini

デフォルトタイムゾーンの設定を追加
※これがないとdate系関数の使用時にエラーが出る

date.timezone = Asia/Tokyo
Apache設定
vim /etc/httpd/conf/httpd.conf

ApacheからPHPを実行できるように設定を追加する

LoadModule php5_module /usr/local/apache2/modules/libphp5.so
AddType application/x-httpd-php .php

これでPHPのインストール作業は完了です!

ドキュメントルートに index.php を用意して
ブラウザからアクセスしてみます!

Starting httpd: httpd: Syntax error on line 203 of /etc/httpd/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: failed to map segment from shared object: Permission denied

エラー......

SELinuxのセキュリティによるもので
phpのライブラリがロード出来ないようになっていました。。

vim /etc/selinux/config

SELinuxの設定を変更します。

#SELINUX=enforcing
SELINUX=permissive

再起動して再度確認です!

shutdown -r now

無事アクセスが出来ました!