揮発性のメモ2

http://d.hatena.ne.jp/iww/

PHPで、POSIX関数がエラーになるとき

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

やったぜ