TermuxでPHP7を使いたい! PHP8からPHP7にして使う。

じゃんくはっく
じゃんくはっく

今年の初めくらいからtermuxのPHPは7から8に上がったようですね!

何か不具合でも?

ぴー
ぴー
じゃんくはっく
じゃんくはっく

WordPressを動かすには少々、問題ありで。

termux はダウングレードできないですよね?

ぴー
ぴー

先日、termux上でNGINXとPHP-FPMの設定記事を書いたときに気がついたんですが、termuxのPHPって7から8になってPHP7はもうPKGがなく入れられませんでした。

TermuxでNGINX+php-fpm+mariadbを動かす具体的な設定例

Link

で、一つ前の記事でPHP7を暫定配布していたのですが、ビルドしたのでその過程とビルドしたPHP7のdepパッケージをどうやって入れるのかネタにしようかと思います。

ビルドしたPHP7のダウンロード先

GITHUBに、ビルドしておきました。arm64bitのCPUを使っている方向けです。32bit版はありません。

Github: termux-php7

LINK

インストールの仕方は簡単に記載しておきます。

(1) 一旦、PHP8関連を入れておく

とりあえず一旦、アップデートしておきます。アップデートできない人は1つ前の記事を見てください。

$ pkg update $$ upgrade

その後、php8やphp-fpm、php-apacheなど入れておきます。

$ pkg install php php-fpm php-apache

今入っているバージョンを再確認しておきます。

$ dpkg -l | grep php

2021/06/01現在ですと以下が最新です。

$ dpkg -l | grep php | cut -b 4-35
 php                8.0.6       
 php-apache         8.0.6       
 php-fpm            8.0.6 

PHP8関連だけ消す

例えば、上の3つPHP8関連だけ消したい場合は以下のようにします。

$ apt purge php php-apache php-fpm

ちゃんと消えたか、1つ上のコマンドをタイプして確認してみましょう。

PHP7をダウンロードしてインストール

php-pgsqlは今回入れないので、消しておきます。

$ wget https://github.com/take-i/termux-php7/raw/master/php7.4.12-aarch64-deb.zip
$ unzip php7.4.12-aarch64-deb.zip
$ cd php7.4.12-aarch64-deb.deb/
$ rm php-pgsql*
$ dpkg -i ./php* ./libicu_67.1_aarch64.deb

以下のようになっていればOKです。

$ dpkg -l | egrep "php|libicu"
ii  libicu             67.1           aarch64
ii  php                7.4.12         aarch64
ii  php-apache         7.4.12         aarch64
ii  php-fpm            7.4.12         aarch64

apache や、nginxの設定をしてみてphpinfo()関数が動作することを確認しておきました。libicuだけ最新の環境から下がっていますので、何かこれ関連で入れられないパッケージが出るかもしれません。何かあれば教えてください。

PHP7をアップデートしないよう設定

今入れたのがアップデートされないよう設定しておきます。

$ apt-mark hold libicu php php-apache php-fpm

確認は以下で。

$ apt-mark showhold
libicu
php
php-apache
php-fpm

ホールドを解除したい場合は、apt-mark unhold <package-name> で解除できます。

まとめ

今回、なんとなくわかったのは以下となります。

・ビルドするときは、dockerイメージをubuntuに実機に作ってあれこれする
・これはまた次回に紹介
・termux独自のパッケージ管理のバージョンなどについては未調査
・とりあえず、PHP7はapacheでもnginxでも使えるようになった

あとがき

WordPressなんかを動かすときは、まだPHP7が安定しています。この前、PHP8で動かしてみたんですが対応していないプラグインなどもあり、またWP-CLIというコマンドラインのツールも警告を出します。ということで、PHP8はもう少し、様子見となりました。termuxでPHP7とか勉強している人もいると思うので今回のネタは少しは需要があるかもしれません。やっぱりビルドするって、面倒ですしね。いつか、その過程も紹介していきたいです。

著者にメッセージ

間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。