Linux での LAMP 構成環境が完了したら、PHP 拡張機能の開発に進むことができます。
PHP での拡張機能の開発は、ソース コード パッケージの /ext フォルダーの下にあります。ここには、多くの拡張機能が開発されていることがわかります。たとえば、データベース関連の mysql や xml 処理モジュールなどです。
まずフォルダーを作成します:
mkdir こんにちは
このフォルダーに入ったら、まず構成ファイルを作成して開きます:
vim config.m4
これは構成の問題の例です:
リーリー
* この設定ファイルは --enable-hello 設定オプションを作成し、PHP_ARG_ENABLE の 2 番目のオプションが設定中に表示されます
※ PHP_ARG_ENABLE の第 3 パラメータは ./configurehelp を呼び出すと表示されます
* なぜ、enable-xxx を使用することもあれば、with-xxx を使用することもあるのですか?有効化はオフにできますが、追加のサードパーティライブラリが必要です
* 設定中に --enable-hello が存在する場合、パラメータ $PHP_HELLO が Yes に設定され、次の操作が実行されます
* PHP_NEW_EXTENSION は、必要なすべてのソース ファイルを宣言します: PHP_NEW_EXTENSION(sample,sample.c sample2.c sample3.c, $ext_shared)
※共有モジュールを構築する場合、最後のパラメータは通常このようになります。 $ext_shared
以下に、構成ファイル内で使用可能な構成オプションをリストします。
* PHP_ARG_WITH または PHP_ARG_ENABLE は、PHP 拡張モジュールの動作方法を指定します。前者はサードパーティのライブラリが必要ないことを意味し、後者はその逆です。
* PHP_REQUIRE_CXX は、この拡張機能が C++ を使用することを指定するために使用されます
* PHP_ADD_INCLUDE は、PHP 拡張モジュールによって使用されるヘッダー ファイル ディレクトリを指定します。
* PHP_CHECK_LIBRARY は、PHP 拡張モジュール PHP_ADD_LIBRARY_WITH_PATH 定義とライブラリ接続エラー情報などを指定します
;
* PHP_ADD_LIBRARY(stdc++,"",EXTERN_NAME_LIBADD) は、標準 C++ ライブラリを拡張機能にリンクするために使用されます
* PHP_SUBST(EXTERN_NAME_SHARED_LIBADD) は、この拡張機能がダイナミック リンク ライブラリにコンパイルされる方法を記述するために使用されます。
* PHP_NEW_EXTENSION は、コンパイルするソース ファイルを指定するために使用され、ファイルはスペースで区切られます。
次にヘッダー ファイル php_sample.h を見てみましょう。
リーリー
最後に、次の 2 つの点に注意してください。
※php.hの導入が必要です
* 宣言 zend_module_entry は extern として宣言されているため、拡張子を extension= で拡張すると、 。フォームがロードされると、Zend は dlopen() および dlsym() を通じてフォームを見つけることができます。
最後に、ソース ファイルsample.cを見てください。
リーリー
これがソースコードの内容です。
次に、拡張機能を生成する必要があります。
phpize
./configure --enable-sample
作る
sudo メイクインストール
これらのステートメントを実行した後、この拡張機能を php.ini に追加する必要があります: extension=sample.so
次に、Apacheを再起動します
sudo /etc/init.d/httpd 再起動
次に、サンプル拡張機能が既に phpinfo ページで利用可能かどうかを確認し、利用可能である場合は、以下の test.php で確認します。
リーリー
「Hello World!」と表示されたら、php 拡張機能が正常に開発されたことを意味します。
http://www.bkjia.com/PHPjc/621615.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/621615.html技術記事 Linux での LAMP 構成環境が完了したら、PHP 拡張機能の開発に進むことができます。 php での拡張機能の開発は、ソース コード パッケージの /ext フォルダーの下にすでに存在していることがわかります...。