『ARMアーキテクチャではRemiは使えない模様』で言及のあった通り、ARM64アーキテクチャーではRemiのリポジトリのパッケージを利用できない ((利用しようとした場合、Not foundのエラーが出る)) ため、もしARM64アーキテクチャでPHPを使いたい場合は、何かしらの方法で自力でインストールする必要がある。今回はanyenv+phpenvを使ってシステムワイドにインストールする方法について記載したい。
PHPをインストールする
今回のインストール環境
今回は以下の環境でインストールを行った。
- OS: Red Hat Enterprise Linux 8.3
- 環境: AWS EC2 (t4g.micro) ((t4gシリーズはARM64アーキテクチャを採用している。それより前のt3/t3a世代ではx86_64アーキテクチャを採用していた。))
- 備考: EPEL及びCodeReady Linux Builderリポジトリを有効化済み。
ec2-userをwheelグループに追加
以下のコマンドでec2-userをwheelグループに追加する。
sudo gpasswd -a ec2-user wheel
Gitのインストール
もしGitがインストールされていない場合は、以下のコマンドでgit
をインストールする。
sudo dnf install git
anyenv/phpenvインストール
環境変数準備
anyenv
をシステムワイドにインストールするための環境変数を準備する。bash
を使っている場合は、以下のファイルを /etc/profile.d/anyenv.sh
として作成する。
export ANYENV_ROOT="/opt/anyenv" export ANYENV_DEFINITION_ROOT="${ANYENV_ROOT}/share/anyenv-install" export PATH="${ANYENV_ROOT}/bin:${PATH}" eval "$(anyenv init --no-rehash -)"
上記が終わったら、一旦ログアウトして、ログインし直す。
anyenvインストール
以下のコマンドで、anyenvを/opt
以下にインストールする。
sudo git clone https://github.com/anyenv/anyenv.git /opt/anyenv sudo mkdir /opt/anyenv/plugins sudo git clone https://github.com/znz/anyenv-git.git /opt/anyenv/plugins/anyenv-git sudo git clone https://github.com/znz/anyenv-update.git /opt/anyenv/plugins/anyenv-update
その後、以下のコマンドanyenvの権限を変更する。
sudo chgrp -R wheel /opt/anyenv sudo chmod -R g+rwxXs /opt/anyenv
その後、以下のコマンドでanyenvで初期化を行う。
anyenv install --init
以下のメッセージが表示されたら、以下のようにManifest directoryの作成場所が聞かれるので、/opt/anyenv/share/anyenv-install
(または任意のディレクトリ)であることを確認したら、y
を入れてEnterキーを押す。
Manifest directory doesn't exist: /opt/anyenv/share/anyenv-install Do you want to checkout ? [y/N]:
その後、 以下のコマンドで環境変数のリロードを行う。
exec $SHELL -l
phpenvインストール
以下のコマンドで、phpenvをインストールする。
anyenv install phpenv
インストール完了後、phpenvを利用可能にするために、以下のコマンドを入力するか、ログインし直す必要がある。
exec $SHELL -l
PHPのインストールで必要となるパッケージ類のインストール
その後、PHPのインストールの際には以下のパッケージ群が必要になる。もしインストールしていない場合は、ビルドの前段階でエラーが返ってくる。
- bzip2
- bzip2-devel
- gcc
- gcc-c++
- libxml2-devel
- openssl-devel
- sqlite-devel
- libcurl-devel
- libpng-devel
- libjpeg-devel
- libicu-devel
- oniguruma-devel
- readline-devel
- libtidy-devel
- libxslt-devel
- libzip-devel
- make
- autoconf
- automake
そのため、以下のコマンドでPHPのパッケージ群をインストールする。
sudo dnf install bzip2 bzip2-devel gcc gcc-c++ libxml2-devel openssl-devel sqlite-devel libcurl-devel libpng-devel libjpeg-devel libicu-devel oniguruma-devel readline-devel libtidy-devel libxslt-devel libzip-devel make autoconf automake
PHPのインストール
上記の対応が終わった場合は、以下のコマンドでPHPをインストールする。
phpenv install 8.0.2
インストール完了後、以下のコマンドでPHPのバージョンを指定する。
phpenv global 8.0.2
その後、以下のコマンドでバージョン名が表示されていれば、インストール完了である。
php --version
最後に
今回はARM64アーキテクチャのRHEL/CentOS系でPHPの新しいバージョンをインストールしようとした場合、Remiリポジトリ経由でインストールすることができないことから、その代替手段としてのインストール方法について記載を行った。
ただ、この方法はかなり特殊で面倒なものであり、パッケージ管理面も煩雑になるため、実用とはしない方が良いだろうなとかんがえている。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。