CentOS8 PHP8.0 ビルドインストール
2020年12月02日 22:02
はじめに
CentOS8にPHP8.0をソースコードからビルドしてインストールします。
ここではrootにログインしていることを前提に説明しています。
ビルドに必要なパッケージのインストールはdnfコマンドを使います。
PHPとApache,nginx等Webサーバとの連携については割愛しておりますのでご了承ください。
PHPのソースコード
PHPの公式サイトからソースコードのアーカイブファイルをダウンロードして展開しましょう。
# wget https://www.php.net/distributions/php-8.0.0.tar.gz # tar fzxv php-8.0.0.tar.gz # cd php-8.0.0
PHPのビルドに必要なパッケージ
個人的に必要なパッケージを挙げています。カッコ内は各パッケージのリポジトリです。
- libxml2-devel (AppStream)
- krb5-devel (BaseOS)
- openssl-devel (BaseOS)
- sqlite-devel (BaseOS)
- bzip2-devel (BaseOS)
- libcurl-devel (BaseOS)
- libpng-devel (BaseOS)
- libjpeg-turbo-devel (AppStream)
- freetype-devel (BaseOS)
- libc-client-devel (epel)
- oniguruma-devel (PowerTools)
- libxslt-devel (AppStream)
- libicu-devel (BaseOS)
これらをdnfコマンドを使ってインストールします。
リポジトリの準備
ビルドに必要なパッケージの中には初期にインストールされていなかったり、有効化されていないリポジトリに含まれているものがあります。
1. epel リポジトリ
epel(Extra Packages for Enterprise Linux)をインストールします。
このリポジトリのインストール方法については色々なところで解説されていると思います。
# dnf install epel-release
リポジトリの設定ファイルを編集します。
# vi /etc/yum.repos.d/epel.repo
[epel]セクションに優先順位の設定を追記して保存します。
priority=10
2. PowerTools リポジトリ
このリポジトリは最初からインストールされていますが、有効化されていません。
有効化するにはリポジトリの設定ファイルを編集します。
# vi /etc/yum.repos.d/CentOS-PowerTools.repo
20行目あたりを下記のように変更します。
enabled=1
configure コマンドとオプション
個人的に必要なオプションを設定しています。
# ./configure --prefix=/opt/php80 --with-openssl --enable-mbstring --with-mysqli --with-pdo-mysql --with-pdo-sqlite --with-libdir=lib64 --enable-gd --enable-gd-jis-conv --with-jpeg --with-freetype --with-zlib-dir --enable-opcache --with-curl --enable-exif --enable-ftp --with-bz2 --with-gettext --with-xsl --with-imap --with-kerberos --with-imap-ssl --without-pear --enable-intl
備考
- インストールディレクトリ "/opt/php80"
- PEAR無し。PEARが必要な場合は"--without-pear"を削除
ビルド・インストール
makeコマンドを動かすとビルドが始まります。マシンスペックによりますが10~20分と大変時間がかかります。気長に待ちましょう。(´・ω・)
# make
エラーが発生せず無事ビルドが終了したら、次のコマンドでインストール完了です。
# make install
確認
とりあえずバージョン確認まで。
# /opt/php80/bin/php --version PHP 8.0.0 (cli) (built: Dec 2 2020 06:12:34) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies