ホームページ  >  記事  >  バックエンド開発  >  Ubuntu12.04 は C を使用して PHP 拡張モジュールを作成するチュートリアル Sharing_PHP チュートリアル

Ubuntu12.04 は C を使用して PHP 拡張モジュールを作成するチュートリアル Sharing_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:18:37950ブラウズ

システムはubuntu 12.04、Apacheとphpがインストールされており、phpのバージョンは5.3.10です。

次の操作中に権限の問題が発生した場合は、root 操作に切り替えることをお勧めします。

1. ソースコードをダウンロードします

php 5.3.10のソースコードを確認してください

コードをコピーしてください コードは次のとおりです:

$ svn checkout https://svn.php.net/repository/php/php-src/ブランチ/PHP_5_3_10/

ヒント: このコマンドがない場合は、まず apt-get を使用して svn を ubuntu に直接インストールする必要があります。

コードをコピーします コードは次のとおりです:
$ sudo apt-get install subversion

PHP ソース コードに関して、さらに詳しい情報が必要な場合は、PHP Wiki で svn の説明を確認できます: https://wiki.php.net/vcs/svnfaq

2.モジュールを作成する

a. ソース コードがチェックアウトされたら、ソース コードの ext ディレクトリに入り、最初に ext_skel を使用してモジュール名を作成します。

コードをコピーします コードは次のとおりです:
$ ./ext_skel --extname=my


b. モジュールを入力します:

コードをコピーします コードは次のとおりです:
$ cd my


c. config.m4 ファイルを変更し、次の内容を見つけます。

コードをコピーします

コードは次のとおりです:dnl PHP_ARG_WITH(my, for my support,
dnl コメントが整列していることを確認してください:
dnl [ --with-my Include my support])



以前のDNLを削除すると、最終結果は次のようになります:

コードをコピーします

コードは次のとおりです:PHP_ARG_WITH(私のサポートのため、
コメントが揃っていることを確認してください:
[ --with-my私のサポートも含めてください])



その後、ファイルを保存します。
ヒント: 変更が正しいかどうかをテストする必要がある場合は、php my.php を使用してテストできます:

コードをコピーします

コードは次のとおりです:$ php my.php
confirm_my_compiled

おめでとうございます! ext/my/config.m4 が正常に変更されました。これでモジュール my が PHP にコンパイルされました。
上記のconfirm_my_compiledは、モジュールのデフォルト関数です。後でモジュールをロードした後、この関数を呼び出すことができます。

3. モジュールをコンパイルする

引き続きモジュールのディレクトリで次のコマンドを実行します:

コードをコピーします

コードは次のとおりです:

$ phpize$ ./configure$ make$ make install


コンパイルが成功すると、次のメッセージが表示されます:


コードをコピーします

コードは次のとおりです:

共有拡張機能のインストール: /usr/lib/php5/20090626+lfs/
モジュールがコンパイルされ、php モジュール ディレクトリにコピーされたことを示します。

ヒント: phpize コマンドが見つからない場合は、apt-get を使用して php5-dev を ubuntu に直接インストールする必要があります。

コードをコピーします

コードは次のとおりです:

$ apt-get install php5-dev
4. モジュールをロードする

ファイルを編集します:

コードをコピーします

コードは次のとおりです:

$ vim /etc/php5/conf.d/my.ini
次のコンテンツを追加して my.so モジュールをロードし、保存します。


コードをコピーします

コードは次のとおりです:

extension=my.so
Apacheを再起動


コードをコピーします

コードは次のとおりです:

$ /etc/init.d/apache2 restart

Web 環境では、phpinfo を使用して、モジュールがロードされているかどうかを確認できます。ターミナルは php -iless | を使用して表示できます。

5. テストプログラムを書く

上記がスムーズに実行されると、myモジュールがロードされ、myモジュールのデフォルトメソッドconfirm_my_compiledを呼び出すことができます。 php テスト ファイルを作成します:

コードをコピーします コードは次のとおりです:

echoconfirm_my_compiled("Hello");

テストファイルを実行し、以下の出力が表示されれば成功です。

コードをコピーします コードは次のとおりです:

おめでとうございます! モジュール Hello が PHP にコンパイルされました。
http://www.bkjia.com/PHPjc/621656.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/621656.html技術記事システムはubuntu 12.04、Apacheとphpがインストールされており、phpのバージョンは5.3.10です。 次の操作中に権限の問題が発生した場合は、root 操作に切り替えることをお勧めします。 1. ソースコードをダウンロードしてチェックアウトしてください...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。