ホームページ  >  記事  >  php教程  >  Linux での php への C 言語拡張

Linux での php への C 言語拡張

WBOY
WBOYオリジナル
2016-06-13 12:25:40871ブラウズ

まず、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: ご質問がございましたら、メッセージを残してください。一緒に話し合うことができます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。