検索
ホームページバックエンド開発PHPチュートリアルPHP アクセラレータ (XCache)、PHP はモジュールの形式で LAMP を実装します

PHP の紹介

PHP は、主に Web 開発で動的 Web ページを実装するために使用される、スクリプトを埋め込むための最も初期のサーバーサイド スクリプト言語の 1 つです。 HTML ソース文書内。同時に、PHP はコマンド ライン インターフェイスも提供するため、ほとんどのシステムで独立したシェルとしても使用できます。


PHP Zend Engine

Zend Engine はオープンソースの PHP スクリプト言語インタープリターであり、C 言語で開発され高度に最適化されており、PHP のバックエンド モジュールとして使用できます。 Zend Engine は、PHP にメモリおよびリソース管理機能やその他の標準サービスを提供し、その高いパフォーマンス、信頼性、拡張性により、PHP が人気の言語になるのに重要な役割を果たしています。

Zend Engine の出現により、PHP コードの処理は 2 つの段階に分割されます。まず、PHP コードを分析し、Zend オペコードと呼ばれるバイナリ形式 (Java バイトコードに似た) に変換し、それをメモリ Medium に保存します。段階では、Zend Engine を使用して、これらの変換されたオペコードを実行します。


PHP の Opcode

Opcode は、Java の ByteCode や .NET の MSL と同じように、PHP スクリプトによってコンパイルされる中間言語です。 PHP は通常、PHP スクリプト コード (正確には、PHP の言語エンジン Zend である必要があります) を実行するときに次の 4 つの手順を実行します。

1. スキャン (Lexing) (スキャン) - PHP コードを言語フラグメント (トークン) に変換します。

2. 解析 (分析) —— トークンを単純で意味のある式に変換します

3. コンパイル (コンパイル) —— 式を Opocdes にコンパイルします

4. 実行 (実行) —— オペコードを 1 つずつスムーズに実行しますこれにより、PHP スクリプトの機能が実現されます


php アクセラレータ

PHP プロセスによってコンパイルされた結果 (1 つのリクエストに対応) は、2 番目の PHP プロセスでは使用できません (オペコードは共有できません)。動的ページに対するすべてのリクエストをスキャン、分析、コンパイル、実行する必要があります。まったく同じリクエストであっても、これらの 4 つの手順を実行する必要があります。次に、さまざまな PHP アクセラレータがあります。

PHP のアクセラレータは、オペコード キャッシュ拡張機能などの PHP の特別な拡張メカニズムに基づいており、PHP の共有メモリにオペコードをキャッシュすることもできるため、同じコードの後続の繰り返し実行でコンパイル フェーズをスキップしてパフォーマンスを向上させることができます。また、これらのアクセラレータは実際にはオペコードの実行速度を向上させるのではなく、オペコードを分析して再配置して高速実行を実現するだけであることもわかります。一般的な PHP アクセラレータには、APC (Alternative PHP Cache)、eAccelerator、XCache、NuSphere PhpExpress、Zend Optimizer、Zend Guard Loader があります。その中でも、XCache は高速で安定しており、厳密にテストされており、運用環境で広く使用されています。プロジェクトのアドレス: http://xcache.lighttpd.net/


XCache のインストール

インストールされているバージョンは xcache-3.1.0.tar.bz2

です

1 です。 local/php-5.4/bin/phpize この手順はここで実行する必要があります。実行が完了すると、インストール パッケージのディレクトリに設定スクリプト ファイルが作成されます

[root@www ~]# lltotal 20532.....-rw-r--r--.  1 root root    146444 Jul  5 10:41 xcache-3.1.0.tar.bz2.....[root@www ~]# tar xf xcache-3.1.0.tar.bz2 [root@www ~]# cd xcache-3.1.0[root@www xcache-3.1.0]# /usr/local/php-5.4/bin/phpize  #准备一个模块以实现编译php支持                                      #第三方模块(与当前的php整合)Configuring for:PHP Api Version:         20100412Zend Module Api No:      20100525Zend Extension Api No:   220100525

インストールが完了すると、次の行が表示されます。次のような内容が表示されます:

[root@www xcache-3.1.0]# ./configure --enable-xcache --with-php-config=/usr/local/php-5.4/bin/php-config.......[root@www xcache-3.1.0]# make && make install


2. php.ini を編集し、php と xcache を統合します

まず、xcache によって提供されるサンプル設定を php.ini にインポートします

Installing shared extensions:/usr/local/php-5.4/lib/php/extensions/no-debug-non-zts-20100525

注: xcache。 ini ファイルは xcache のソース コード ディレクトリにあります。

次に /etc/php.d/xcache.ini を編集し、zend_extension で始まる行を見つけて、次の行に変更します:

[root@www xcache-3.1.0]# mkdir /etc/php.d[root@www xcache-3.1.0]# cp xcache.ini /etc/php.d

注: php.ini に複数の zend_extension コマンド ラインがある場合ファイルでは、この新しい行が最初に来ることを確認してください。

xcache.ini のいくつかのパラメーター:

extension = /usr/local/php-5.4/lib/php/extensions/no-debug-non-zts-20100525/xcache.so

完了後、センターはサービスをロードします

; to enable : xcache.size=64M etc (any size > 0) and your system mmap allowsxcache.size  =               60M                             #用于缓存的内存大小; set to cpu count (cat /proc/cpuinfo |grep -c processor)xcache.count =                 1                              #设置成cpu的核心数; just a hash hints, you can always store count(items) > slotsxcache.slots =                8K; ttl of the cache item, 0=foreverxcache.ttl   =                 0; interval of gc scanning expired items, 0=no scan, other values is in secondsxcache.gc_interval =           0

構成ページにアクセスします:


xcache がロードされました


使用するPHPサーバーへのabコマンドはストレステストを実行します。 コマンドの形式は次のとおりです


ab -n num -c num url

-n #合計リクエスト数

-c #同時リクエスト数

Turn最初にキャッシュ機能をオフにする:

[root@www xcache-3.1.0]# service php-fpm restartGracefully shutting down php-fpm . doneStarting php-fpm  done

テストの開始:

[root@www php.d]# mv xcache.ini xcache.ini.bak[root@www php.d]# service php-fpm restartGracefully shutting down php-fpm . doneStarting php-fpm  done

xcache の開始:

[root@www ~]# ab -n 200 -c 5 http://admin.xiaoxiao.com/index.phpThis is ApacheBench, Version 2.3 <$Revision: 1554214 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking admin.xiaoxiao.com (be patient)Completed 100 requestsCompleted 200 requestsFinished 200 requests

速度は 2 倍強で、効果は明ら​​かです~~

... ......... ...^_^



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?Apr 25, 2025 am 12:16 AM

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッション関連の問題をどのようにデバッグしますか?PHPでセッション関連の問題をどのようにデバッグしますか?Apr 25, 2025 am 12:12 AM

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()が複数回呼び出されるとどうなりますか?session_start()が複数回呼び出されるとどうなりますか?Apr 25, 2025 am 12:06 AM

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでセッションのライフタイムをどのように構成しますか?PHPでセッションのライフタイムをどのように構成しますか?Apr 25, 2025 am 12:05 AM

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

セッションを保存するためにデータベースを使用することの利点は何ですか?セッションを保存するためにデータベースを使用することの利点は何ですか?Apr 24, 2025 am 12:16 AM

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでカスタムセッション処理をどのように実装しますか?PHPでカスタムセッション処理をどのように実装しますか?Apr 24, 2025 am 12:16 AM

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

セッションIDとは何ですか?セッションIDとは何ですか?Apr 24, 2025 am 12:13 AM

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

ステートレス環境(APIなど)でセッションをどのように処理しますか?ステートレス環境(APIなど)でセッションをどのように処理しますか?Apr 24, 2025 am 12:12 AM

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

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

Video Face Swap

Video Face Swap

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

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

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

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

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません