note_21.4.0_lamp_preknow

4493 ワード

LAMP:
a: apache (httpd) m: mysql, mariadb p: php, perl, python
WEBリソースタイプ:
静的リソース:元の形式は応答内容と一致します.動的リソース:元の形式は通常プログラムファイルであり、サーバ側で実行した後、実行結果をクライアントに返す必要があります.
クライアントテクノロジー:javascriptサーバ側テクノロジー:php,jsp
CGI:Common Gateway Interface
Webブラウザからネットワークサーバ上で実行されるプログラムにデータを転送するクライアントを許可することができる.CGIはクライアントとサーバプログラム間の伝送の標準を説明する.
リレーションシップモデル:IngreSQL、Oracle、Sybase、Infomix、DB 2、SQL Server、MySQL、PostgreSQL、MariaDB
要求プロセス:Client--(httpd)-->httpd--(cgi)-->アプリケーションサーバ(program file)--(mysql)-->mysql
php:スクリプトプログラミング言語、htmlに埋め込まれた埋め込み式webプログラム開発言語;zendベースでopcodeにコンパイル(バイナリ形式のバイトコード、繰り返し実行、コンパイル環境省略可能)
PHPについて
一、PHP紹介
PHPは汎用サーバー側スクリプトプログラミング言語であり、主にweb開発に用いられ、動的webページを実現し、HTMLソースドキュメントにスクリプトを埋め込むサーバー側スクリプト言語の一つでもある.同時にphpはコマンドラインインタフェースも提供するので、ほとんどのシステムで独立したshellとして使用することもできる.
Rasmus Lerdorfは1994年にPHPの開発を開始し、著者の履歴書を表示し、ユーザーのウェブサイトへのアクセスを記録するために使用できるRasmus Lerdorfによって「Personal Home Page Tool」と呼ばれるPerlスクリプトのセットである.その後、Rasmus LerdorfはC言語でこれらのPerlスクリプトをCGIプログラムに書き換え、Web formsを実行する能力とデータベースとのインタラクションの特性を追加し、「Personal Home Page/Forms Interpreter」または「PHP/FI」と名前を変更した.このとき,PHP/FIは簡単な動的webプログラムの開発に利用できるようになった,すなわちPHP 1.0である.1995年6月、Rasmus LerdorfはPHPをcompに発表した.infosystems.www.authoring.cgi Usenetディスカッショングループは、PHPから人々の視野に入った.1997年にリリースされたバージョン2.0.
1997年、イスラエルのプログラマー2人のZeev SuraskiとAndi Gutmansが書き換えたPHPの分析器(parser)がPHPを3.0に発展させた基礎となり、それからPHPをPHP:Hypertext Preprocessorと名前を変えた.その後、この2人のプログラマーはPHPコア全体を書き換え始め、1999年にZend Engine 1.0を発表した.これはPHP 4.0の誕生を意味する.2004年7月にZend Engine 2.0がリリースされ、PHPもPHP 5時代に持ち込まれた.PHP 5には、オブジェクト向けプログラミングのサポートの強化、PDO(PHP Data Objects)拡張メカニズムのサポート、PHPのパフォーマンスの向上など、多くの重要な新しい特性が含まれています.
二、PHP Zend Engine
Zend EngineはオープンソースのPHPスクリプト言語の解釈器で、イスラエル工科大学(Technion)の学生Andi GutmansとZeev Suraskiによって最初に開発され、Zendもこの2人の名前の合称である.その後、二人は共同でZend Technologies社を設立した.
Zend Engine 1.0は1999年にPHP 4とともに発表され、C言語によって開発され、高度に最適化され、PHPのバックエンドモジュールとして使用することができる.Zend EngineはPHPにメモリと資源管理の機能とその他のいくつかの標準サービスを提供し、その高性能、信頼性と拡張性はPHPが流行の言語になることを促進する上で重要な役割を果たした.
Zend Engineの出現はPHPコードの処理過程を2つの段階に分けた:まずPHPコードを分析し、Zend opcodeと呼ばれるバイナリフォーマット(Javaのバイトコードのような)に変換し、メモリに格納する.第2段階はZend Engineを用いてこれらの変換後のOpcodeを実行する.
三、PHPのOpcode
OpcodeはPHPスクリプトのコンパイル後の中間言語であり、JavaのByteCodeのように、あるいは.NETのMSL.PHPがPHPスクリプトコードを実行するには、一般的に次の4つのステップ(正確には、PHPの言語エンジンZend):1、Scanning(Lexing)--PHPコードを言語フラグメント(Tokens)2、Parsing--Tokensを簡単で意味のある式3、Compilation--式をOpocdes 4、Executionにコンパイル--Opcodesを順次実行します.1本ずつPHPスクリプトの機能を実現
スキャン-->分析-->コンパイル-->実行
四、phpの加速器
PHPベースの特殊な拡張メカニズム、例えばopcodeキャッシュ拡張は、phpの共有メモリにopcodeをキャッシュすることもでき、同じコードの後続の繰り返し実行時にコンパイルフェーズをスキップしてパフォーマンスを向上させることができる.このことから、これらのアクセラレータは、opcodeの動作速度を本当に向上させるのではなく、opcodeを分析して再配置することによって、迅速な実行の目的を達成するだけであることが明らかになった.
一般的なphpアクセラレータは次のとおりです.
1、APC(Alternative PHP Cache)はPHP Licenseのオープンソースフレームワーク、PHP opcodeキャッシュアクセラレータに従い、現在のバージョンはPHP 5.4に適用されない.プロジェクトのアドレスhttp://pecl.php.net/package/APC.
2、eAcceleratorはTurck MMCacheに由来し、以前のバージョンにはPHP encoderとPHP loaderが含まれていたが、現在encoderはサポートされていない.プロジェクトのアドレスhttp://eaccelerator.net/.
3、XCache高速かつ安定なPHP opcodeキャッシュは厳格なテストを経て、生産環境に大量に使用される.プロジェクトのアドレスhttp://xcache.lighttpd.net/
4、Zend OptimizerとZend Guard Loader Zend Optimizerはopcode加速器ではなく、Zend TechnologiesがPHP 5である.2および以前のバージョンでは、Zend Guardによって生成された暗号化されたPHPコードまたはファジイコードを実行できる無料で閉じたソースのPHP拡張機能が提供されています.Zend Guard LoaderはPHP 5専用である.3 Zend Optimizer機能と同様の拡張機能を提供します.プロジェクトのアドレスhttp://www.zend.com/en/products/guard/runtime-decoders
5、NuSphere PhpExpress NuSphereのオープンソースPHP加速器で、NuSphere PHP Encoderで符号化されたPHPプログラムファイルのロードをサポートし、従来のPHPファイルの実行を加速させることができる.プロジェクトのアドレスhttp://www.nusphere.com/products/phpexpress.htm
五、PHPソースディレクトリ構造
PHPのソースコードは構造的に非常にはっきりしている.コード・ルート・ディレクトリには、主にいくつかの説明ファイルと設計案が含まれており、サブディレクトリなどがあります.
        1、build ——     ,                  ,         buildconf             。
        2、ext ——        ,       PHP         , array  ,pdo  ,spl        。                     ,      。
        3、main ——        PHP        ,   PHP     ,   Zend     ,Zend                  。
        4、Zend —— Zend       ,           ,opcode              。
        5、pear —— PHP        ,  PEAR     。
        6、sapi ——               ,  apache mod_php,cgi,fastcgi  fpm    。
        7、TSRM —— PHP         TSRM    ,PHP      *G     TSRM   ,TSRM(Thread Safe Resource Manager)         。
        8、tests —— PHP       ,  PHP         。
        9、win32 ——         Windows         ,  sokcet    Windows  *Nix       ,      Windows   PHP     。