1. 開発準備
WAMPをインストールします。使用バージョンはWampServer Version 2.5、そのうちPHPバージョンは5.5.12です。
WAMP インストールディレクトリ: D:wamp
apache ディレクトリ: D:wampbinapache
php ディレクトリ: D:wampbinphp
PHP-5.5.12 ソースコードパッケージをダウンロードし、任意のディレクトリに解凍します。例: E:php-5.5.12
2. phpinfo() を通じて php バージョンのコンパイル関連情報をクエリし、主に以下を確認します:
コンパイラー MSVC11 (Visual C++ 2012)
アーキテクチャx86
Zend Extension Build API220121212 ,TS,VC11
PHP Extension BuildAPI20121212,TS,VC11
上記の情報から、WampServer 2.5 の PHP は MSVC11 (VS2012) および TS (スレッド セーフ) を介して x86 (win32) 上でコンパイルされていることがわかります。 ) 属性が設定されます。
したがって、拡張プラグインをコンパイルするときに同じコンパイル環境と TS 設定を使用する必要があります (デフォルト値は TS)
3. プラグインのコンパイル時に必要な config.w32.h ファイルを生成します
「VS2012 開発者コマンド」を開きますPrompt" を入力して、E:php-5.5.12 ディレクトリを入力します。
buildconf.bat コマンドを実行して、現在のディレクトリに configure.js ファイルを生成します。
configure コマンドを実行して、E:php-5.5.12mainconfig.w32 を生成します。 .h ファイル。
実行中に bison 関連のエラーが発生した場合は、bison がインストールされていないことを意味します。configure.js ファイルを開いて次の 3 行をコメントし、configure コマンドを再実行します。
if (!PATH_PROG('bison')) {
ERROR('bison is required')
}
なぜこれができるのでしょうか? PHP をコンパイルする必要がないため、構成を生成するだけで済みます。拡張機能をコンパイルするための w32.h ファイル。
4. プラグインコンパイルファイルの準備
E:php-5.5.12ext ディレクトリに入り、E:php-5.5.12extskeleton ディレクトリをコピーし、名前を開発する必要があるプラグインの名前 (my_plugin など) に変更します。 ;
php_skeleton.h、skeleton.c、skeleton.dsp の名前を php_my_plugin.h、my_plugin.c、my_plugin.dsp に変更します
上記の 3 つのファイルをそれぞれ開き、ファイル内の extname を my_plugin に置き換え、EXTNAME を MY_PLUGIN に置き換えます。 (大文字と小文字が一致していることを確認してください);
D:wampbinphpphp5.5.12devphp5ts.lib が my_plugin ディレクトリにコピーされます。
5. プラグインをコンパイルしてインストールします
VS2012 を使用して my_plugin.dsp ファイルを開き、Release_TS (リリース バージョンを生成) を選択し、C コードへのコンパイルを構成します (ソリューション プロパティ - 構成プロパティ - C/C++ - 詳細 - コンパイル先) C コードにコンパイルします (/TC));
ソリューションをコンパイルし、プラグインに対応する php_my_plugin.dll ファイルを生成します (E:php-5.5.12Release_TS ディレクトリにあります)。
コンパイルされた DLL ファイルを Wamp にコピーします。 PHP 拡張ディレクトリ (D:wampbinphpphp5.5.12ext);
D:wampbinapacheapache2.4.9binphp.ini ファイルを編集し、「extension=」キーワードを探し、元の PHP プラグインの後に「extension=php_my_plugin.dll」を追加します。
特別な注意: 編集された php.ini これは、D:wampbinphpphp5.5.12php.ini ではありません。Wamp が PHP を初期化するときに、ファイル D:wampbinapacheapache2.4.9binphp.ini を読み取るからです。
Apache サーバーを再起動します。
6. プラグインをテストします
プラグインが正常にロードされたら、Apache サーバーを再起動し、phpinfo() にアクセスして、新しく追加された my_plugin プラグインを確認します。
my_plugin_test.php ファイルを生成し、D:wampwww ディレクトリに配置します。 ファイルの内容は次のとおりです:
echoconfirm_my_plugin_compiled("my_plugin");
?>
ブラウザを使用して新しくアクセスします。上記の my_plugin_test.php ファイルを作成すると、次のページにプラグインが正常に実行されていることを示します: おめでとうございます! ext/my_plugin/config.m4 が正常に PHP にコンパイルされました。
著作権声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく転載することはできません。
上記では、Windows WAMP PHP 拡張機能の開発についてその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。