#はじめに
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 [ここまで]