2019年12月19日記載
PHP7.4、CentOS7にソースコードからのインストールメモ
PHP7.4がリリースされた。まだネット情報も少なく、特にインストールに関する情報が枯渇している。情報不足だが、いち早く対応したい思いもあり、このほどソースコードからのインストールを実行した。

過去の7.2から7.3へのアップグレード時と異なり、7.4はインストールの設定ファイルが大きく変わったため、ぶっちゃけ苦労した。せっかくなので忘備録として公開する。

本題の前にWindows版のPHP7.4、なぜかpdo_sqliteが有効にならない。バグなのかそれとも私の問題なのかわからない。pdo_mysqlは問題なく動作するがpdo_pgsqlやpdo_sqliteは有効になってくれない。誰が教えてほしい。

今回紹介するのはCentOS7にPHP7.4をソースコードからインストール方法である。

configureオプションの変更が多い。どう変更されたかを確認するには

# ./configure --help

で確認してほしい。

いきなり結論を書くと、PHP7.3で書いていたconfigureオプションをそのまま7.4で適用させようと思っても動作しないオプションが増えている。

◆PHP7.3までに使用していたオプション
# ./configure --enable-zip --with-gettext --enable-bcmath --enable-sockets --enable-opcache --enable-exif --with-curl --with-bz2 --enable-calendar --enable-inline-optimization --with-pcre-regex --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-mbregex --with-libxml-dir=/usr --with-gd --with-zlib=/usr --without-libzip --with-png-dir=/usr --with-jpeg-dir=/usr --with-freetype-dir=/usr --with-webp-dir=/usr --with-xpm-dir=/usr --with-openssl=/usr/local/openssl --with-mysqli --with-pdo-mysql --with-mysql-sock=/tmp/mysql.sock

◆PHP7.4用に書き換えたオプション
# ./configure --with-zip --enable-gd --with-jpeg --with-xpm --with-zlib --with-gettext --enable-bcmath --enable-sockets --enable-opcache --enable-exif --with-curl --with-bz2 --enable-calendar --enable-inline-optimization --with-expat --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-mbregex --with-freetype --with-openssl --with-mysqli --with-pdo-mysql --with-mysql-sock=/tmp/mysql.sock

PHP7.3で使えなくなった差分をまとめるとこうだ。
--with-png-dir
--with-jpeg-dir
--with-zlib=/usr
--with-openssl
など、一部を除いてディレクトリ指定ができなくなった。

sqliteに関してはデフォルトで有効となっているので、PHP7.3まで書いていたオプション指定は不要となった。

その代わりに
# yum install sqlite sqlite-devel
を事前にやっておかないと叱られるので注意。

libzipはCentOS7の標準インストールではバージョンが古く叱られたので、こちらはソースからインストールしておく。

# tar xvzf libzip-1.5.2.tar.gz
# cd libzip-1.5.2
# cmake -DCMAKE_INSTALL_PREFIX=/usr
# make
# make install

cmakeのバージョンが古くてlibzipすらインストールできない人はcmakeもソースから入れておく。
# tar zxvf cmake-3.16.1.tar.gz
# cd cmake-3.16.1
# cd /var/mirait/src/cmake-3.16.1
# ./bootstrap --prefix=/usr/local --no-system-libs
# make
# make install
(3.16.1は2019年12月18日現在での最新バージョン)

onigurumaもないと叱られるのでこちらも入れておく。
# yum --enablerepo=remi install oniguruma oniguruma-devel

libicuもないと叱られたのでこちらも入れておく。
# yum install libicu libicu-devel

configureで文句言われなくなったら、あとはいつもどおりにmakeしておしまい。

php.iniファイルについては多少変更されているがコアな設定項目に変更はみられなかった。でも記載順列の相違があるため、7.3で設定中のiniファイルをそのまま使うのではなく、7.4ベースのiniファイルから設定し直しをおすすめする。

今回PHP7.4を入れていて思ったことだが、関連のライブラリのバージョンが古いと叱られるケースが増えてきた。CentOS8もリリースされていることもあり、そろそろCentOS8への対応も勧めていこうと誓うのであった。

なお、PHP7.4そのものの独自性については、すでにいろんな方がWebに公開してくれているので、私の方はインストールについてだけ触れて終わりにしたい。


コラムワード検索
表示件数
ワード検索
本コラムに関する意見
Twitterにて受け付けます @megahit_jp