CentOS7, PHP5.4
PHPで、POSIX関数がエラーになるとき、posix関数が入ってないのでインストールする
$ sudo yum install php-process
PHP: posix_times - Manual
posix_times() 便利そうじゃん と思ってちょっと調べたところ
$ php -r 'print_r(posix_times());' PHP Fatal error: Call to undefined function posix_times() in Command line code on line 1
そんな関数は無いと言われた。
無いってこた無いだろ と調べたら本当に無かった
$ php -r 'var_dump(function_exists("posix_times"));' bool(false)
そういえばセーフモードってのがあったなぁと思ったけど、PHP5.4ではそんなものは廃止されていた
(posix関数などやばそうなのが軒並み制限される機能)
PHP: セキュリティとセーフモード - Manual
ダメもとで Bard に聞いてみたら、「php.ini に extension=posix.so をちゃんと書いた?」的な回答を得た。
つまり、 php-mbstring みたいに posix関数もパッケージが分かれていて、インストールしなければ入らないとわかった。
stackoverflow.com
そして、そのパッケージ名は php-process ということがわかった。
$ sudo yum install php-process
これで無事インストール出来て めでたしめでたし。
インストール後、ねんのため どこに何が入ったかを確認
$ find / -xdev -name posix.so 2>/dev/null /usr/lib64/php/modules/posix.so $ grep posix.so -r /etc/php.* /etc/php.d/posix.ini:extension=posix.so
やったぜ