AMAZON linux2 php7.3インストール

phpモジュールのインストールは年に1回くらいのペースで遭遇しますが毎回カオスになります。

AMAZON linux2のphp7.3はremiリポジトリとamzn2extra(-php7.3)リポジトリがある。その他には、たぶんepelもある(一切使わず)。ググって最初にremiの記事しか出てきていないかったので最初はremiでやったのですが(remiのインストールコマンドはググって下さい)、AWSのほうがメンテナンスしっかりやってくれそうなイメージがあるから、amzn2extraのphp7.3モジュールに全部やりなおしました。

そのため、途中でremiを

yum remove php php-*
yum remove php73 php73-*

で全部削除してamzn2extra-php7.3のモジュールを以下の手順で入れた。

sudo yum install --enablerepo=remi,remi-php73 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
sudo yum install --enablerepo=remi,remi-php73 php
sudo amazon-linux-extras enable php7.3
sudo yum clean metadata
sudo yum install php php-{common,curl,mbstring,gd,mysqlnd,bcmath,json,xml,fpm,ctype,fileinfo,openssl,tokenizer}

しかし、remiのモジュールがきちんと全部削除されたかどうか、怪しい感じもあります。この段階でphpinfo(); で確認すると入れたいphpモジュールは全部入ってることを確認できました。ですが、以下のphpモジュール確認コマンド

yum list installed | grep php
php -m

では表示されないモジュールがあり、phpinfo(); との相違が気になる。

尚、apache2.4の再起動やっても同じ現象は起きました。

sudo service httpd restart

phpモジュールについてはマイナーなものだとamzn2extraには無い可能性があるのかなぁ。

インストール要件のphpモジュール

  1. BCMath
  2. Ctype
  3. Fileinfo
  4. JSON
  5. Mbstring
  6. OpenSSL
  7. PDO
  8. Tokenizer
  9. XML
  10. MySQL
  11. GD
  12. devel
  13. mcrypt

上記の中でamzn2extra-php7.3で確実にインストールできたと思われるモジュール

  1. BCMath
  2. JSON
  3. Mbstring
  4. PDO
  5. XML
  6. MySQL
  7. GD

いずれ、remiとamzn2extra混合でカオスになる

開発していくうちに、Laravelやら node.jsやら その他インストールしていくとremiも増えます。なので、どこのリポジトリからphp7.3モジュールを持ってこようが、もう気にしない。