先日、amazon-linux-extras に PHP8.0 が追加されたので試してみました。
1 |
sudo amazon-linux-extras enable php8.0 |
有効にできたら、次のように表示されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
0 ansible2 available [ =2.4.6 =2.8 =stable ] 1 httpd_modules available [ =1.0 =stable ] 2 memcached1.5 available \ [ =1.5.1 =1.5.16 =1.5.17 ] 4 postgresql9.6 available [ =9.6.8 =stable ] 5 postgresql10 available [ =10 =stable ] 6 redis4.0 available [ =4.0.10 =stable ] 7 R3.4 available [ =3.4.3 =stable ] _ php7.2 available \ [ =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 ] _ lamp-mariadb10.2-php7.2 available \ [ =10.2.10_7.2.11 =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 ] 14 libreoffice available [ =5.3.6.1 =stable ] 16 docker=latest enabled \ [ =18.06.1 =18.09.9 =stable ] 18 GraphicsMagick1.3 available \ [ =1.3.29 =1.3.32 =1.3.34 =stable ] 19 tomcat8.5 available \ [ =8.5.32 =8.5.38 =8.5.40 =8.5.42 =8.5.50 =stable ] 20 epel available [ =7.11 =stable ] 21 testing available [ =1.0 =stable ] 22 ecs available [ =stable ] 23 corretto8 available \ [ =1.8.0_202 =1.8.0_212 =1.8.0_222 =1.8.0_232 =1.8.0_242 =stable ] 24 golang1.11 available \ [ =1.11.3 =1.11.11 =1.11.13 =stable ] 25 squid4 available [ =4 =stable ] _ 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 ] 27 java-openjdk11 available [ =11 =stable ] 28 lynis available [ =stable ] 29 kernel-ng available [ =stable ] 30 BCC available [ =0.x =stable ] 31 nginx1 available [ =stable ] 32 ruby2.6 available [ =2.6 =stable ] 33 mock available [ =stable ] 34 postgresql11 available [ =11 =stable ] _ php7.4 available [ =stable ] 36 python3.8 available [ =stable ] 37 lustre2.10 available [ =stable ] 38 haproxy2 available [ =stable ] 39 collectd available [ =stable ] 40 R4 available [ =stable ] 41 kernel-5.4 available [ =stable ] 42 selinux-ng available [ =stable ] 43 php8.0=latest enabled [ =stable ] Now you can install: # yum clean metadata # yum install php-cli php-pdo php-fpm php-mysqlnd |
43の PHP8.0 が enabled になっています。
メッセージに従って、メタデータをクリーンしておきます。
1 |
yum clean metadata |
PHP8.0 が有効になると、yum で PHP8.0 に関連するパッケージが使えるようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
libsodium.aarch64 1.0.18-2.amzn2 amzn2extra-php8.0 libsodium-devel.aarch64 1.0.18-2.amzn2 amzn2extra-php8.0 libsodium-static.aarch64 1.0.18-2.amzn2 amzn2extra-php8.0 php.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-bcmath.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-cli.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-common.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-dba.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-dbg.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-devel.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-embedded.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-enchant.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-fpm.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-gd.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-gmp.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-intl.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-ldap.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-mbstring.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-mysqlnd.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-odbc.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-opcache.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-pdo.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-pgsql.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-process.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-pspell.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-snmp.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-soap.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-sodium.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 php-xml.aarch64 8.0.2-1.amzn2 amzn2extra-php8.0 |
ARMベースの T4gインスタンスで、PHP8.0 の opcache で JIT が有効になるか試してみます。
1 |
sudo yum install php-cli php-opcache |
/etc/php.d/10-opcache.ini を修正して、コマンドラインで opcache を有効化して、JIT も有効にしたいと思います。
変更するのは、次の項目あたり。
1 2 3 |
opcache.enable_cli=1 opcache.jit=1235 opcache.jit_buffer_size=32M |
php -v でバージョンなど確認します。
1 2 3 4 |
PHP 8.0.2 (cli) (built: Feb 11 2021 18:25:40) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.2, Copyright (c) Zend Technologies with Zend OPcache v8.0.2, Copyright (c), by Zend Technologies |
php -i | grep JIT とかやって確認。
1 2 3 |
PCRE JIT Support => enabled PCRE JIT Target => ARM-64 64bit (little endian + unaligned) JIT => Not Available |
うむ。やっぱりダメだよね。なとあべいらぼー。
ARM-64は未対応だよねぇ。
ちなみに、おとなりの t3.nano で確認するとこうなる。
1 2 3 |
PCRE JIT Support => enabled PCRE JIT Target => x86 64bit (little endian + unaligned) JIT => On |
残念。まぁそうだよなぁ。
どうしようかなぁ。
フロントのWebサーバは6月末まで無料ということもあるので、 t4g.micro で h2o を起動しておいて、となりの t3.nano (RIを36か月買っちゃってるし・・・)で php8 と MariaDB 起動して分離しちゃおうかなぁ。
そうすれば、t3側はインターネット側に穴開ける必要ないしなぁ。メモリもきついし。
せっかくだから、h2o と php-fpm を同じインスタンスで起動して、socket通信にしたかったんだけど、あきらめるかなぁ。