ホームページ バックエンド開発 PHPチュートリアル Windows 上で PHP 拡張機能を作成する

Windows 上で PHP 拡張機能を作成する

Jun 13, 2016 pm 01:24 PM
nbsp php visual windows

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

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

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

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開発動向を見てください PHPの現在のステータス:Web開発動向を見てください Apr 13, 2025 am 12:20 AM

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

PHP対その他の言語:比較 PHP対その他の言語:比較 Apr 13, 2025 am 12:19 AM

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

PHPの永続的な関連性:それはまだ生きていますか? PHPの永続的な関連性:それはまだ生きていますか? Apr 14, 2025 am 12:12 AM

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

PHPの目的:動的なWebサイトの構築 PHPの目的:動的なWebサイトの構築 Apr 15, 2025 am 12:18 AM

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

PHP:多くのウェブサイトの基礎 PHP:多くのウェブサイトの基礎 Apr 13, 2025 am 12:07 AM

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

PHP対Python:コア機能と機能 PHP対Python:コア機能と機能 Apr 13, 2025 am 12:16 AM

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

See all articles