背景
どうしてもPHPのstatsモジュールを利用しなければならない機会があり、PHP8の環境下で動作させるまでの過程を記録しておく。
peclではインストールができない
statsはpeclからインストールすることが可能で、公式を見ると2.0.3のバージョンが存在することがわかった。
$ pecl install stats-2.0.3
しかし、上記を実行してもphp8.1の環境下ではエラーが発生してインストールに失敗してしまった。
どうやら構文エラーが発生しており、このバージョンではインストールするのが難しそう。
git
情報を辿るとstatsのgit repositoryを発見した。
最新のコミットがPHP8に対応している。
コミットを見るとバージョンが2.1.0になっていたため、このrepositoryをcloneしてコンパイルすることにしてみた。
$ git clone https://github.com/php/pecl-math-stats.git
$ phpize
$ ./configure
$ make
$ make install
peclの拡張モジュールをコンパイルする方法。上から順に実行すると所定の箇所に stats.so ファイルが作成される。
php.ini を確認し、作成された stats.so ファイルを extensions を読み込む先のディレクトリに移動させ、php.ini に stats.so を読み込むように修正を加える。
[extensions]
extension=stats.so
$ php -m
...(省略)
sqlite3
standard
stats
上記コマンドを実行し、statsが読み込まれていることを確認する。
$ php -r "echo stats_rand_gen_beta(1, 100);"
0.020464261993766%
php8の環境下でstats関数を実行できることが確認できた。