Windows 上で PHP 拡張機能を作成する
Windows で PHP 拡張機能を作成する
Windows での PHP 拡張機能の作成
2011 年 1 月 26 日
転載元: http://demon.tw/software/compile-php-on-windows.ht ml
PHP 拡張機能のコンパイルに必要ヘッダー ファイルは、一部の構成ヘッダー ファイルを含め、PHP ソース コードから取得する必要があります。これらのファイルは、以下の手順 8 の後に完了する必要があります。これは、PHP サーバー プログラムが、他の人によってコンパイルされたインストール パッケージを使用できることを意味します。 最近、PHP 拡張機能の作成を学習していましたが、Linux をインストールするのが面倒だったので、Windows で PHP をコンパイルする方法を研究し、最終的に Windows で PHP 拡張機能を開発する環境をセットアップしました。
1. C ドライブに新しいフォルダー C:PHPDEV を作成します
2. 公式 Web サイトから最新バージョンの PHP ソースコード (ここでは 5.2.14 を使用しています) をダウンロードし、ダウンロードした tar を圧縮します.gz または tar.bz2 パッケージを C:PHPDEV に保存し、現在のフォルダーに抽出します
3. php win32 ビルド エクストラをダウンロードして C:PHPDEV に保存し、現在のフォルダーに抽出します
4. Getコンパイルされた bison.exe および flex.exe は、デスクトップまたは C:PHPDEV 以外の場所に保存されます。圧縮パッケージを開いてそれぞれ bin フォルダーに入り、bison.exe と flex.exe を C: Windows フォルダーにコピーします
5. Visual Studio 2008 がインストールされていると仮定します (個人的には Visual Studio 2008 の使用はお勧めしません。 Platform SDK の使用が推奨されています (2003 年 2 月)。正式にコンパイルされたバージョンはこの PSDK でコンパイルされていますが、ここでは説明のために Visual Studio 2008 が使用されています)、[スタート] メニュー -> Microsoft Visual Studio 2008 -> Visual Studio Tools -> Visual Studio 2008 コマンド プロンプト、Visual Studio 2008 コマンド プロンプトを開きます
6. cd コマンドを使用して、ディレクトリを C:PHPDEVphp-5.2.14 に切り替えます
7. buildconf.bat と入力し、Enter キーを押します。このバッチ プロセスの目的は、すべての .w32 ファイルを検索し、configure.js を作成することです
8. 次のコマンドを入力します
cscript /nologo configure.js without-xml without-wddx without-simplexml without-dom without -libxml disable-zlib - without-sqlite disable-odbc disable-cgi Enable-cli Enable-debug without-iconv disable-ipv6
なぜこれほど多くの機能を使用せずに disable が必要なのでしょうか?これらの関数に必要なライブラリ ファイルは PHP ソース コード パッケージには含まれていないため (そうしないと非常に大きくなってしまうため)、これらの追加ライブラリ ファイルを自分でダウンロードする必要があります (すべてを見つけるのはそれほど簡単ではありません)。これらの機能を無効にしないと、コンパイル エラーが発生します。
9. nmake と入力して Enter キーを押します
10. ステップ 9 で、ファイルのエンコード エラーが発生している可能性があります。エラーのあるファイルを見つけ、EditPlus を使用して西ヨーロッパ (Windows) エンコードを選択し、それを開いて保存します。 utf-8 エンコーディングとして、nmake
11 を書き換えます。コンパイル後、C:PHPDEVphp-5.2.6Debug_TS に切り替えてテストします。
php -r "echo 'hello,world';" 2. Windows 拡張機能で PHP を開発する 転載元: http://blog.csdn.net/linvo/archive/2009/04/17/4086 909.aspx
ステップ 1: 準備
1. Windows に PHP ソース コード パッケージとバイナリ パッケージを配置し、Visual C++ をインストールし、Microsoft Visual StudioCommonMSDev98Bin の絶対パスを Windows 環境変数
に追加します。 2. ソース コード パッケージを d:php_src に解凍します
3. d:php_srcext ディレクトリに移動し、スケルトン ファイル フォルダをコピーし、開発する拡張機能の名前に変更します。この場合は「linvo」
4. バイナリ パッケージの dev ディレクトリにある php5ts.lib ファイルを次のディレクトリにコピーします。新しく作成された linvo ディレクトリ
5. linvo ディレクトリを編集します。 php_skeleton.h、skeleton.c、skeleton.dsp の 3 つのファイルについて、コンテンツ内のすべての extname を linvo に、EXTNAME を LINVO に置き換えます。 (大文字と小文字は厳密に区別されます)
ステップ 2: エンコード
6. php_skeleton.h ファイル (ヘッダー ファイル) を編集します。
以下に PHP_FUNCTION(confirm_linvo_compiled) を記述します。
PHP_FUNCTION(hello); hello 関数
7.skeleton.c ファイル (メイン ファイル) を編集します
以下に PHP_FE(confirm_linvo_compiled, NULL) を記述します
PHP_FE(hello, NULL)
これは関数のエントリです。関数の本体
テスト関数である PHP_FUNCTION(confirm_test_compiled) 関数を見つけます。この関数の後に新しい関数を記述します。
PHP_FUNCTION(hello)
{
char *arg = NULL;
int arg_len, len;
Char *strg;
/*パラメータを受け取る*/
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
return ;
}
len = spprintf(&strg, 0, "Hello,%s", arg);
RETURN_STRINGL(strg, len, 0);ステップ 3: コンパイル
8. cmd コマンド ラインを実行し、d:php_srcextlinvo ディレクトリに入ります
9. msdev linvo.dsp /MAKE "linvo - Win32 Release_TS" と入力します
10. エラーがない場合は、 php_src ディレクトリの Release_TS フォルダにファイルが生成され、コンパイルされた php_linvo.dll 拡張子が含まれます
ステップ 4: 使用
11. それを実行環境の php 拡張子ディレクトリ ext にコピーします
12. 編集php.ini に extension= php_linvo.dll を追加し、Apache を再起動します
13. PHP ファイルで次のステートメントを実行します。
echo hello('Linvo');
これにより、
Hello,Linvo
が出力されます。拡張機能がロードされました 情報
Linvo
linvo サポートが有効になりました 3. 読み込みの問題
生成された拡張機能がフォルダーに配置され、php.ini が変更されると、生成された拡張子dllが存在しない場合はphpで読み込まれますので、以下の点から確認できます。
1. PHP を作成し、phpinfo() 関数を使用して現在の PHP 情報を入力し、実際に PHP にロードされている php.ini を見つけます。
2. Apache を再起動しましたか?
3. Apache エラー ログをチェックして、拡張機能のロード時のエラーに関する情報があるかどうかを確認します。 「PHP 警告: PHP 起動: extname: モジュールを初期化できませんnモジュール API=20090626、debug=0、thread-safety=1n でコンパイルされたモジュール API=20060613、debug=0、thread-safety=1nこれらのオプションは、 「matchn in Unknown on line 0」のようなプロンプトは、コンパイル中に使用されたソース コードのバージョンが PHP アプリケーションと一致していないことを意味します (不一致がある場合、完全に一致するバージョンは必要ありません)。
4. 拡張機能を作成するときに他の DLL が参照されていますか? この問題の原因の詳細については、次を参照してください:
http://www.guyzyl.com/post-37.html

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。
