はじめに
PHP5.X特に5.4以降のソースビルド方法の備忘録です。
過去に投稿したapache2のソースビルド,mysqlのソースビルドでapache2とmysqlが用意されている事を想定しております。
前者の記事では各主要パスを通す作業も記述しておりますので、PHPのパスを通したい場合はそちらも参照ください。
PHPソースビルド
コード取得
※足りないモジュールは随時yum -install
※wgetで取得するソースのURLは読み替える
PHPのソース取得元は公式サイトを参照
cd /usr/src
wget http://www.php.net/get/php-5.4.12.tar.gz/from/jp2.php.net/mirror
tar xvzf php-5.4.12.tar.gz
cd php-5.4.12.tar.gz
./configure --enable-mbstring --with-mysql --enable-mbregex \
--makewith-openssl \
--with-pdo-mysql \
--with-mysqli \
--with-apxs2=/usr/local/apache2/bin/apxs
make
make install
PHPの設定ファイルの配置・修正・追記
ダウンロード後に解凍したパッケージ内にあるphp.iniを規定のディレクトリにコピー、修正
パスはダウンロードした場所で読み替える
php.iniの配置
cp -p /usr/src/php-5.4.12/php.ini-production /usr/local/lib/php.ini
vi /usr/local/lib/php.ini
php.iniの修正箇所
[PHP]
output_handler = mb_output_handler
expose_php = On
default_charset = "UTF-8"
[Date]
date.timezone = Asia/Tokyo
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
php.iniの追記箇所
extension=mysql.so
extension=mysqli.so
extension_dir = "/usr/local/lib/php"
[mysqli]
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
; http://php.net/mysqli.default-socket
mysqli.default_socket = /tmp/mysql_master.sock
; Default host for mysql_connect() (doesn't apply in safe mode).
; http://php.net/mysqli.default-host
mysqli.default_host =127.0.0.1
; Default user for mysql_connect() (doesn't apply in safe mode).
; http://php.net/mysqli.default-user
mysqli.default_user =root
apacheの設定ファイルからPHPを参照
httpd.confの位置はソースビルド時の規定パスに順ずるので適宜読み替える
vi /usr/local/apache2/conf/httpd.conf
[以下追記]
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
AddType application/x-httpd-php .php
HPIniDir "/usr/local/lib"
[ここまで]
[以下修正]
DocumentRoot "/usr/local/apache2/htdocs"
LoadModule php5_module /usr/local/apache2/modules/libphp5.so
[ここまで]