ホームページ >バックエンド開発 >PHPチュートリアル >C インターフェイスを呼び出すエラーのないバージョンの PHP の紹介_PHP チュートリアル
1. まず、PHPをインストールする必要があります
2. PHPのダウンロードおよび解凍ディレクトリの下にあるextディレクトリに移動します
#cd /root/php-5.3.6/ext
#./ext_skel --extname=hmc
注:
./ext_skel --extname=module_name
module_name は、私が選択した hmc など、選択できる拡張モジュールの名前です。ツールを実行すると、選択した module_name のディレクトリが ext ディレクトリに自動的に作成されます。これらのコードでは、config.m4 ファイル内の 3 行のコメントを調整するだけで済みます。このカスタマイズを使用して正常にコンパイルするには、PHP 用の拡張モジュールを使用します。
3. config.m4を変更します
生成されたモジュールディレクトリを任意の場所にコピーできます
hmcディレクトリに移動します
vi config.m4
テキストエディタを使用してconfig.m4ファイルを開きます
独自の選択に
dnl PHP_ARG_WITH(hmc, hmc support,
dnl コメントが整列していることを確認してください:
dnl [ --with-hmc Include hmc support])
に変更します
PHP_ARG_WITH(hmc for hmc support,
Makeコメントが整列していることを確認します:
[ --with-hmc Include hmc support])
または
dnl PHP_ARG_ENABLE(hmc, hmc support を有効にするかどうか,
dnl コメントが整列していることを確認してください:
dnl [ --enable- hmc hmc サポートを有効にする])
PHP_ARG_ENABLE(hmc、hmc サポートを有効にするかどうか、
コメントが整列していることを確認してください:
[ --enable-hmc hmc サポートを有効にする])
に変更します
4. .c および .h ファイルのコードを変更します
Vi hmc.c ファイル内の次のコードを変更します
/* ユーザーに表示されるすべての関数には hmc_functions[].
*/
const zend_function_entry hmc_functions[] = {
PHP_FE(say_hello, NULL) /* コード行を追加します*/
PHP_FE(confirm_hmc_compiled, NULL) /* テスト用に後で削除します */
{NULL, NULL, NULL} /* である必要があります。 hmc_functions[] */
};
の最後の行
PHP_FUNCTION(say_hello)
{
zend_printf("hello worldn");
}
ファイルを保存して終了します
ファイルの PHP_FUNCTION(confirm_hmc_compiled); 行の前に次のコードを追加します
PHP_FUNCTION(say_hello);
ファイルを保存して終了します
5. コンパイルしてインストールします
#phpize#./configure --enable-hmc
#make
#make install
php の modules ディレクトリに hmc.so ファイルがあるはずです。さまざまなマシン
6. PHP 設定を変更します
php.ini を編集して拡張子を追加します: [PHP] モジュールの下に追加します:
extension = hmc.so
Restart Httpd
#service httpd restart
7.php call
対応する www ディレクトリに c.php ファイルを作成します
say_hello();
?>
ブラウザは次のように出力します:
hello world
8. デバッグはコマンドラインで実行できます
#php –q c.php
現在のwwwディレクトリを入力する必要があります
php -m コマンドを使用することもできます
最初に
#that php
を使用して、php が配置されているディレクトリを見つけます
#/usr/bin/php -m
Vi hmc.c
最終のsay_hello 関数の内容を次のように変更します: PHP_FUNCTION(say_hello)
{
zval **yourname;
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1) 、&あなたの名前) == FAILURE)
{
WRONG_PARAM_COUNT;
}
zend_printf("hello world, %sn", Z_STRVAL_PP(あなたの名前));
}
c.php を
say_hello("Qingqing Yue'er");
?>
に変更します
http://www.bkjia.com/PHPjc/740212.html