LoginSignup
9

More than 5 years have passed since last update.

PHP5.4以降をソースビルド(apache2,mysqli対応)

Last updated at Posted at 2014-07-24

はじめに

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
[ここまで]

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9