検索
ホームページバックエンド開発PHPチュートリアルPHP の基礎となる動作メカニズムと動作原理の詳細な説明

PHP の基礎となる動作メカニズムと動作原理の詳細な説明

Aug 04, 2020 pm 03:41 PM
php基礎となる原則動作機構

PHP の基礎となる動作メカニズムと動作原理の詳細な説明

最近サーバーをセットアップしたのですが、突然、ランプがどのように機能するのか、またはどのように接続されているのかを感じました。私は普段プログラムを書くだけで、プログラム間の動作原理について考えたことはありません。

#関連する学習の推奨事項: PHP プログラミングの入門から熟練度まで

図 1 PHP の構造

以下からわかるように、写真、php 下から上への 4 層システムです。

①Zend エンジンZend は純粋な C で実装されており、PHP のコア部分であり、PHP コード (語彙、語彙、プロセス) 実行可能なオペコードを処理し、対応する処理メソッドを実装し、基本的なデータ構造 (ハッシュテーブル、oo など)、メモリ割り当てと管理を実装し、外部呼び出しに対応する API メソッドを提供するすべての中核です。周辺機能はすべてzendを中心に実装されています。

②拡張機能

zendエンジンを中心に、共通の各種組み込み関数(配列系列など)や標準ライブラリなど、さまざまな基本サービスをコンポーネントベースで提供する拡張機能です。これを実現するために、ユーザーは機能拡張、パフォーマンスの最適化、その他の目的を達成するために、必要に応じて独自の拡張機能を実装することもできます (たとえば、現在 Tieba で使用されている PHP 中間層やリッチ テキスト解析は、拡張機能の典型的なアプリケーションです)。

③Sapi

Sapi の正式名は Server Application Programming Interface で、サーバー アプリケーション プログラミング インターフェイスです。Sapi を使用すると、PHP は一連のフック関数を通じて周辺データと対話できます。これは PHP の非常にエレガントで、成功した設計は、SAPI を通じて PHP 自体を上位層アプリケーションから切り離し、分離することに成功しました。PHP は、異なるアプリケーションとの互換性を考慮する必要がなくなり、アプリケーション自体も、その特性に応じて異なる処理方法を実装できます。これについては、後ほど sapi の章で紹介します。

④上位層アプリケーション

これは、私たちが通常作成する PHP プログラムです。さまざまな sapi メソッドを通じて、さまざまなアプリケーション モードを取得できます。 webserver コマンドラインからスクリプトとして適用、実行など。

アーキテクチャのアイデア:

エンジン (Zend) コンポーネント (ext) モデルは内部結合を削減します

中間層 (sapi) は Web サーバーを分離しますそしてphp

***************************************** ****** ******************************

php が車の場合、 車の骨格 phpそのものです

Zendは車のエンジン(エンジン)です

Ext以下の各コンポーネントは車の車輪です

Sapiは道路とみなすことができ、車はさまざまな種類の道路を走行できます

PHP プログラムの実行は、車が道路を走るのと似ています。

したがって、次のものが必要です: 優れたパフォーマンスのエンジン、適切なホイール、正しい滑走路


Apache と php の関係



Apache for php分析は多くのモジュールの中からphpモジュールを通じて完了します。

#最終的に php を Apache システムに統合するには、Apache に必要な設定をいくつか行う必要があります。ここではphpのSAPI動作モードmod_php5を例に説明しますが、SAPIの概念については後ほど詳しく説明します。 インストールするバージョンが Apache2 と Php5 であると仮定すると、Apache のメイン設定ファイル http.conf を編集し、次の行を追加する必要があります。

Unix/Linux 環境の場合:

LoadModule php5_module modules/mod_php5.so
AddType application/x-httpd-php .php

注: modules/mod_php5.so は、X システム環境における mod_php5.so ファイルのインストール場所です。

Windows 環境の場合:

LoadModule php5_module d:/php/php5apache2.dll
AddType application/x-httpd-php .php

注: d:/php/php5apache2.dll は、Windows 環境の php5apache2.dll ファイルのインストール場所です。

これら 2 つの構成は、サフィックスとして php を使用して今後受信される URL ユーザー リクエストは、処理のために php5_module モジュール (mod_php5.so/php5apache2.dll) を呼び出す必要があることを Apache サーバーに伝えます。

#Apache のライフサイクル

##Apache のリクエスト処理プロセス

Apache リクエスト処理サイクルの詳細な説明

Apache リクエスト処理サイクルの 11 段階は次のとおりです。完了しました 何か? 1. 読み取りリクエスト後のフェーズ

通常のリクエスト処理プロセスでは、これはモジュールがフックを挿入できる最初のステージです。この段階は、リクエストの処理を非常に早い段階で開始したいモジュールに利用できます。

2. URI 変換ステージ

このステージにおける Apache の主な仕事は、要求された URL をローカル ファイル システムにマッピングすることです。モジュールはこの段階でフックを挿入して、独自のマッピング ロジックを実行できます。 mod_alias はこのフェーズを使用して動作します。

3. ヘッダー解析ステージ
このステージにおける Apache の主な作業: リクエストのヘッダーをチェックします。モジュールはリクエスト処理フローのどの時点でもリクエスト ヘッダーをチェックするタスクを実行できるため、このフックが使用されることはほとんどありません。 mod_setenvif はこのフェーズを使用して動作します。

4. アクセス制御フェーズ
このフェーズにおける Apache の主な作業: 要求されたリソースへのアクセスが設定ファイルに従って許可されているかどうかを確認します。 Apache の標準ロジックは、許可ディレクティブと拒否ディレクティブを実装します。 mod_authz_host はこのフェーズを使用して動作します。

5. 認証段階
この段階での Apache の主な作業は、設定ファイルに設定されたポリシーに従ってユーザーを認証し、ユーザー名領域を設定することです。モジュールはこの段階でフックを挿入して、認証方法を実装できます。

6. 認可フェーズ
このフェーズにおける Apache の主な作業: 認証されたユーザーが設定ファイルに従って要求された操作の実行を許可されているかどうかを確認します。モジュールはこの段階でフックを挿入して、ユーザー権限管理メソッドを実装できます。

7. MIME タイプ チェック ステージ
このステージにおける Apache の主な作業: 要求されたリソースの MIME タイプの関連ルールに従って、使用するコンテンツ処理機能を決定します。標準モジュール mod_negotiation および mod_mime はこのフックを実装します。

8. FixUp ステージ
これは、モジュールがコンテンツ ジェネレーターの前に必要な処理を実行できるようにする一般的なステージです。 Post_Read_Request と同様に、これはあらゆる情報を取得できるフックであり、最も一般的に使用されるフックでもあります。

9. 応答ステージ
このステージにおける Apache の主な仕事は、クライアントに返されるコンテンツを生成し、クライアントに適切な応答を送信する責任を負います。この段階はプロセス全体の中核部分です。

10. ロギングフェーズ
このフェーズにおける Apache の主な作業: 応答がクライアントに送信された後のトランザクションの記録です。モジュールは、Apache の標準ログを変更または置き換えることができます。

11. クリーンアップ フェーズ
このフェーズにおける Apache の主な作業: ファイルやディレクトリの処理やソケットのクローズなど、このリクエスト トランザクションの完了後に残された環境をクリーンアップします。 . Apache にとって初めてのこと リクエスト処理の最終段階。

LAMP アーキテクチャ:

##下から上への 4 層:

①liunx 所属オペレーティング システムの最下位層に接続されます

②apache サーバー、セカンダリ サーバーに属し、Linux および PHP と通信します

③php: サーバー側プログラミング言語に属し、Apache に関連付けられますphp_module モジュール経由

##④mysql およびその他の Web サービス: アプリケーション サービスに属し、PHP の拡張プラグイン モジュールを通じて mysql に関連付けられます

Android システム アーキテクチャ図ランプと Android アーキテクチャ 写真を比較すると、ランプ アーキテクチャにいくらか似ているように見えます。Android についてはわかりませんが、少し似ているように感じます。専門家は違いを指摘できます。大変感謝しております。

上から下へ 次へ:

Android アーキテクチャ--------------説明--------LAMP アーキテクチャ

1. アプリケーション----- ---特定のアプリケーション--------Web アプリケーション

2. アプリケーション フレームワーク- ---java-------------PHP 言語とライブラリ

3. システム ランタイム ライブラリ:----仮想マシン--------WEB サーバー

⒋Linux カーネル:---オペレーティング システム-----ランプ アーキテクチャ L

ランプとコンピュータ内部の関係

CPU は工場、ハードディスクは大倉庫、メモリは通常の転送センター、仮想メモリは一時転送センター

Php 言語zend によって機械語にコンパイルされ、CPU が動作します。

データベースの操作は、I/O 操作と機械的な動作、つまり Web サイトの操作です。ボトルネックは、読み取りとハードディスクへの書き込みです。解決策は、I/O 操作の数を減らし、バッファリング テクノロジを使用することです。つまり、データ操作はメンキャッシュに配置されます。データ操作が一定の桁に達すると、データベースに書き込まれます。メンキャッシュはキーに属します --値の関係

非リレーショナル データもこの概念に基づいて構築され、キーと値の関係に属します

頻繁な読み取り操作-------mencache に入れてください

もっと読んで、書く量を減らしてください----nosql に入れてください------読み取り関数は非常に強力です。

以上がPHP の基礎となる動作メカニズムと動作原理の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はjb51で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
PHPの目的:動的なWebサイトの構築PHPの目的:動的なWebサイトの構築Apr 15, 2025 am 12:18 AM

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

PHP:データベースとサーバー側のロジックの処理PHP:データベースとサーバー側のロジックの処理Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO)PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO)Apr 15, 2025 am 12:15 AM

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHPおよびPython:コードの例と比較PHPおよびPython:コードの例と比較Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

アクション中のPHP:実際の例とアプリケーションアクション中のPHP:実際の例とアプリケーションApr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHP:インタラクティブなWebコンテンツを簡単に作成しますPHP:インタラクティブなWebコンテンツを簡単に作成しますApr 14, 2025 am 12:15 AM

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

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

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

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

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

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、