#Amazon Linux2でPHP7系がインストールできないんだけど!!??
この記事を書く30分前まで半ギレでコンソールと戦ってました。
故あってremi版のPHP7.1をインストールしようとしたところ、何回叩いても
Error: Package: php-xml-7.1.33-10.el7.remi.x86_64 (remi-php71)
Requires: libxslt.so.1(LIBXML2_1.0.22)(64bit)
Error: Package: php-xml-7.1.33-10.el7.remi.x86_64 (remi-php71)
Requires: libxslt.so.1(LIBXML2_1.0.18)(64bit)
っていう感じのが出てきて、一向にインストールが進まず、
この関連パッケージが足りないからインストールが出来ないんだろうと思って色々調べて試したけど、
「もう既に新しいの入ってて他のものに使われてるからインストールできないよ」
とかいうのが出てきて頭噴火。
#救いの手
何回目かのインストール失敗後に、以下回答がAL2から帰ってきました。
php-fpm is available in Amazon Linux Extra topics "php7.2" and "lamp-mariadb10.2-php7.2" and "php7.3" and "php7.4"
To use, run
$ sudo amazon-linux-extras install :topic:
Learn more at
https://aws.amazon.com/amazon-linux-2/faqs/#Amazon_Linux_Extras
[要約]
その依存パッケで使うphp7.2とかなら、amazon-linux-extrasで使えるよ。
amazon-linux-extrasコマンドを叩いてごらん。
詳しくはドキュメントを見てね。
#Amazon Linux Extrasってなに!?
CentOSにおける標準パッケージのようなものです。これはAmazon Linuxのサポートが切れる2023年6月30日まで長期サポートされます。
$amazon-linux-extras listで利用できるパッケージが一覧で見ることが出来ます。
php7.2~7.4まで使えるのは嬉しい!
当初入れようとしたのは7.1だったけど、7.2でも良かったので7.2を入れることにしました。
$ sudo amazon-linux-extras list
0 ansible2 available \
[ =2.4.2 =2.4.6 =2.8 =stable ]
2 httpd_modules available [ =1.0 =stable ]
3 memcached1.5 available \
[ =1.5.1 =1.5.16 =1.5.17 ]
5 postgresql9.6 available \
[ =9.6.6 =9.6.8 =stable ]
6 postgresql10 available [ =10 =stable ]
8 redis4.0 available \
[ =4.0.5 =4.0.10 =stable ]
9 R3.4 available [ =3.4.3 =stable ]
10 rust1 available \
[ =1.22.1 =1.26.0 =1.26.1 =1.27.2 =1.31.0 =1.38.0
=stable ]
11 vim available [ =8.0 =stable ]
15 php7.2 available \
[ =7.2.0 =7.2.4 =7.2.5 =7.2.8 =7.2.11 =7.2.13 =7.2.14
=7.2.16 =7.2.17 =7.2.19 =7.2.21 =7.2.22 =7.2.23
=7.2.24 =7.2.26 =stable ]
17 lamp-mariadb10.2-php7.2 available \
[ =10.2.10_7.2.0 =10.2.10_7.2.4 =10.2.10_7.2.5
=10.2.10_7.2.8 =10.2.10_7.2.11 =10.2.10_7.2.13
=10.2.10_7.2.14 =10.2.10_7.2.16 =10.2.10_7.2.17
=10.2.10_7.2.19 =10.2.10_7.2.22 =10.2.10_7.2.23
=10.2.10_7.2.24 =stable ]
18 libreoffice available \
[ =5.0.6.2_15 =5.3.6.1 =stable ]
19 gimp available [ =2.8.22 ]
20 docker=latest enabled \
[ =17.12.1 =18.03.1 =18.06.1 =18.09.9 =stable ]
21 mate-desktop1.x available \
[ =1.19.0 =1.20.0 =stable ]
22 GraphicsMagick1.3 available \
[ =1.3.29 =1.3.32 =1.3.34 =stable ]
23 tomcat8.5 available \
[ =8.5.31 =8.5.32 =8.5.38 =8.5.40 =8.5.42 =8.5.50
=stable ]
24 epel available [ =7.11 =stable ]
25 testing available [ =1.0 =stable ]
26 ecs available [ =stable ]
27 corretto8 available \
[ =1.8.0_192 =1.8.0_202 =1.8.0_212 =1.8.0_222 =1.8.0_232
=1.8.0_242 =stable ]
28 firecracker available [ =0.11 =stable ]
29 golang1.11 available \
[ =1.11.3 =1.11.11 =1.11.13 =stable ]
30 squid4 available [ =4 =stable ]
31 php7.3 available \
[ =7.3.2 =7.3.3 =7.3.4 =7.3.6 =7.3.8 =7.3.9 =7.3.10
=7.3.11 =7.3.13 =stable ]
32 lustre2.10 available \
[ =2.10.5 =2.10.8 =stable ]
33 java-openjdk11 available [ =11 =stable ]
34 lynis available [ =stable ]
35 kernel-ng available [ =stable ]
36 BCC available [ =0.x =stable ]
37 mono available [ =5.x =stable ]
38 nginx1 available [ =stable ]
39 ruby2.6 available [ =2.6 =stable ]
40 mock available [ =stable ]
41 postgresql11 available [ =11 =stable ]
42 php7.4 available [ =stable ]
43 livepatch available [ =stable ]
44 python3.8 available [ =stable ]
45 haproxy2 available [ =stable ]
46 collectd available [ =stable ]
47 aws-nitro-enclaves-cli available [ =stable ]
48 R4 available [ =stable ]
#いざ実践
$ sudo amazon-linux-extras install php7.2
~
Installed:
php-cli.x86_64 0:7.2.34-1.amzn2 php-fpm.x86_64 0:7.2.34-1.amzn2 php-json.x86_64 0:7.2.34-1.amzn2 php-mysqlnd.x86_64 0:7.2.34-1.amzn2
php-pdo.x86_64 0:7.2.34-1.amzn2
Dependency Installed:
libzip5.x86_64 0:1.7.3-1.el7.remi php-common.x86_64 0:7.2.34-1.amzn2
Complete!
$ php -v
PHP 7.2.34 (cli) (built: Oct 21 2020 18:03:20) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
一瞬で終わったが?
#感想
これを知ってれば、余計なリポジトリ入れたりインストールしたりしてインスタンスを汚さずにすみました。。
弊社は基本CentOSでご提供をするんですが、Amazon Linuxの方がミドルウェアの対応が広いなら、
こっちの方が良いかもしれませんね…。
OS標準外のPHPも特別対応で出したりしてますが、サポート2年とかで切れちゃいますし。