1: 2019-08-16 (金) 14:26:19 iseki |
現: 2023-08-15 (火) 20:34:12 iseki |
- | * PHP 関数拡張 [#qf39fc61] | + | * [[PHP]] 関数拡張 [#qf39fc61] |
| + | |
| + | ** Trouble Shooting [#pa1bbfc2] |
| + | |
| + | **** dl() でモジュールを呼んでくれない [#v9ecf83f] |
| + | - php.ini で enable_dl = On とする. |
| + | #br |
| + | |
| + | **** php.ini の設定が反映されない [#df20ad07] |
| + | - php -i |grep php.ini で PHPが実際に読み込んでいる php.ini を調べる |
| + | - PHPが WWWサーバのモジュールとしてではなく,php-fpm で動いている場合は,php-fpm を再起動する必要がある. |
| + | systemctl restart php-fpm |
| + | #br |
| + | |
| + | ** Tips [#u0ea17f1] |
| + | **** 有効な php.ini を探す [#h1f68dea] |
| + | php --ini|grep php.ini |
| + | #br |
| + | |
| + | *** 実装例 [#h9cb3f05] |
| + | - http://www.nsl.tuis.ac.jp/svn/linux/authd/trunk/php |
| + | #br |
| + | |
| + | ** PHP8 [#q6c5e82f] |
| + | *** xmlrpc [#ecdf43d3] |
| + | - PHP8 で標準から外れる |
| + | #br |
| + | |
| + | **** ソースからコンパイルする場合は [#hc3b8ad3] |
| + | --with-xmlrpc |
| + | #br |
| + | |
| + | **** パッケージに入れる場合 [#m25cb934] |
| + | yum install php-pear |
| + | yum install php-devel |
| + | pecl search xmlrpc |
| + | pecl install xmlrpc (エラー) |
| + | pecl install channel://pecl.php.net/xmlrpc-1.0.0RC3 |
| + | vi /etc/php.ini (add |
| + | extension = xml.so |
| + | extension = xmlrpc.so |
| + | systemctl restart php-fpm |
| + | |
| + | - undefined symbol: php_XML_GetCurrentColumnNumber のエラー |
| + | -- php.ini に extension = xml.so を追加 |
| + | #br |
| ** PHP7 [#jae4f806] | | ** PHP7 [#jae4f806] |
| + | |
| + | *** サンプル実行 [#t033cc47] |
| + | |
| + | **** PHP と 拡張機能(サンプル)をコンパイル [#w67d381b] |
| + | cd [php-dorce-dir] |
| + | cd ext |
| + | ./ext_skel --extname=ext_test |
| + | vi ext_test/config.m4 L10-13をコメントアウト(--with-ext_test 関連) |
| + | cd .. |
| + | ./buildconf --force |
| + | ./configure --with-ext_test |
| + | make |
| + | |
| + | **** 実行 (テスト) [#u6310e48] |
| + | - ./sapi/cli/php -f ext/ext_test/ext_test.php |
| + | -- ''Congratulations! You have successfully modified ext/ext_test/config.m4. Module ext_test is now compiled into PHP.'' が表示されればOK |
| + | #br |
| + | |
| + | **** モジュール (ext_test.so) を作る [#td1b6526] |
| + | cd ext/ext_test |
| + | phpize |
| + | ./configure |
| + | make |
| + | |
| + | - ./modules/ext_test.so ができる |
| + | #br |
| + | |
| ** PHP5 [#v5b55d7d] | | ** PHP5 [#v5b55d7d] |
| + | *** サンプル実行 [#m6b6e697] |
| + | |
| + | **** PHP のコンパイル [#g4318478] |
| + | cd [php-dorce-dir] |
| + | ./configure |
| + | make |
| + | |
| + | **** 拡張機能(サンプル)をコンパイル [#u739f526] |
| + | cd ext |
| + | ./ext_skel --extname=ext_test |
| + | cd ext/ext_test |
| + | config.m4 L10-13をコメントアウト(--with-ext_test 関連) |
| + | phpize |
| + | ./configure |
| + | make |
| + | |
| + | **** 実行 (テスト)[#j1177a63] |
| + | - モジュール(/modules/ext_test.so)を所定のディレクトリにコピー後: php ext_test.php |
| + | - または: php -d extension_dir=./modules ext_test.php |
| + | -- ''Congratulations! You have successfully modified ext/ext_test/config.m4. Module ext_test is now compiled into PHP.'' が表示されればOK |
| + | #br |
| + | *** Extensions [#j43576e9] |
| + | - [[Sodium>./Sodium]] |
| + | #br |