まず、php 環境を構築します
php 5.2.6 ソース コードをダウンロードして解凍します
コンパイルしてインストールし、php 環境を構築します
次に、拡張機能プロジェクト
ソース コード ディレクトリに移動します
cd php5.2.6/ext/
./ext_skel --extname=my_ext
my_ext という名前のプロジェクトを作成します。 my_ext.so
3、設定とプログラムを変更します
$ vi ext/my_ext/config.m4
を変更しますdnl php_arg_with(my_ext、my_ext support、
dnlコメントが揃っていることを確認してください。 aligned:
[ --with-my_ext Include my_ext support])
または
dnl PHP_ARG_ENABLE(my_ext, my_ext サポートを有効にするかどうか,
dnl コメントがaligned:
dnl [ --enable-my_ext my_ext サポートを有効にする])
PHP_ARG_ENABLE(my_ext、my_ext サポートを有効にするかどうか、
コメントは整列しています:
[ --enable-my_ext my_ext サポートを有効にする])
$ vi ext/my_ext/php_my_ext.h
Change
PHP_FUNCTION(confirm_my_ext_compiled) / * テストのために、後で削除します。 */
PHP_FUNCTION(say_hello);
$ vi ext/my_ext/ my_ext.c
に変更します。 zend_function_entry php5cpp_functions[] = {
PHP_FE(confirm_my_ext_compiled, NULL) /* テスト用に後で削除します */
{NULL, NULL, NULL} /* php5cpp_functions[] の最後の行である必要があります */
};
zend_function_entry php5cpp_functions[] = {
PHP_FE(say_hello, NULL)
{NULL, NULL, NULL} / * php5cpp_functions[] の最後の行である必要があります */
};
最後に次を追加します:
PHP_FUNCTION(say_hello)
{
zend_printf("hello worldn");
}
4. Compile
$ cd my_ext
$ /usr/local/php/bin/phpize
ps: Cannot find autoconf ... というエラー メッセージが表示された場合は、autoconf をインストールする必要があります。 (インストール処理は省略します)
$ ./configure --with-php-config=/usr/local/php/bin/php-config
$ make My_ext/modules/my_ext .so はこの時点でコンパイルされます
5. php.ini を設定します
my_ext.so を
/usr/local/php/ext/directory
に置きます
$ vi php.ini
次のように変更して追加します。
extension_dir = '/usr/local/php /ext/'
extension=my_ext.so
6. テスト
$ vi test.php );?>
$ /usr/local/php/bin/php test.phphello world.
これで完了です
ps: ご質問がございましたら、メッセージを残してください。一緒に話し合うことができます。