ホームページ >バックエンド開発 >PHPチュートリアル >PHPの知識は必須
最も人気のある PHP MVC フレームワーク
http://yp.oss.org.cn/software/show_resource.php?resource_id=742
Yii (yingyi フレームワーク、私は通常 YII を直接読みます) CodeIgniter (略称 CI) Symfony CakePHP
MVC、これについては Baidu を見てください。MVC はコンピューター業界で一般的に使用されています
http://baike.baidu.com/view/31.htm
PHP の実行速度を向上させる方法
http://www. php100.com/html/webkaifa/PHP/PHPyingyong/2012/0105/9616.html
Zend Optimizer についてはここで言及されていますが、一般的には使用されません
Zend キャッシュ、APC および Afterburner キャッシュ、これらのモジュール キャッシュ、APC は一般的に使用されます。使用されるキャッシュには、必要なものが含まれます (apc 関数をオンにした後、これらは自動的に行われます。つまり、PHP が実行して必要なものはハードディスクを読み取りませんが、キャッシュを読み取ります)
圧縮 Web コンテンツとは、コンテンツ タイプの Web サイトを指します。 、出力 HTML には大量のコードがあります。gzip をオンにして、ネットワーク送信の量を減らします。コード レベルでは、内部関数、より優れたアルゴリズム、および簡素化されたロジックを使用して、ある程度高速化できます。速度を向上させ、本質的に機能ブロックのパフォーマンスのボトルネックを発見します。 問題の特別な最適化。
たとえば、mysql の読み取り量が多い場合、mysql への複数のリクエストを回避し、負荷を分散するために、使用頻度に基づいてキャッシュが作成されます。キャッシュには、ローカル ファイル キャッシュ、memcache redis、および一部の nosql データベースを使用できます (nosql データベースは通常、キーと値のデータベースです)。これらを事前に処理できるかどうか、ストレージを定期的に処理できるかどうかを検討できます。スケジュールされたタスクを通じて、今すぐ計算するのではなく、使用時に直接呼び出します。
同時実行性の高い Web サイトのアーキテクチャはすべて分散する必要があります。つまり、Web サイト サーバーの分散、データベースの分散、ストレージの分散など、リクエストは複数のマシンで共有される可能性があります。
ウェブサイトの配布では、さまざまな地域のユーザーのアクセス速度を向上させるために、ウェブサイトのホストはチャイナテレコム、チャイナユニコム、チャイナレールコム、チャイナモバイル、海外およびその他のコンピュータルームなどのさまざまなコンピュータルームに配置されます。アクセス時には、ソースに応じて対応するサーバーに割り当てられます。通常、同じネットワーク内のサーバーは、スケジュールに使用されます。ランダムな割り当てには、DNS ラウンドロビンも使用できます。負荷分散などの実装の詳細を知る必要はありません。これを行うための専用のハードウェアがあり、実装をシミュレートするためのプログラムを使用することもできます。プログラムの実装は、ランダムに割り当てるアルゴリズムを記述するだけです。 DNS ラウンド ロビンは DNS 解決層で実行する必要があります。これらは運用と保守の問題です。
ウェブサイトは分散されており、リソース要求は内部で行われ、各コンピューター室のサーバーを通じて高速アクセスが実現されます。これはネットワークの運用と保守の問題です。簡単な方法は、サーバー上でデュアル回線または複数回線を使用することです。つまり、1 台のサーバーに Telecom の IP と China Netcom の IP が割り当てられ、異なるネットワークが接続して異なる IP アドレスを要求し、より高速なアクセスを実現します。
データベースの分散では、MySQL はマスター/スレーブ方式を提供します。つまり、データベースにはマスター サーバーがあり、スレーブはマスターからのデータを同期し、Web サイト サーバーからのクエリを実行します。マスターにかかるプレッシャー。データ ビジネスに応じて分割し、異なるデータを異なるサーバーに配置することもでき、これによりデータ リクエストの負荷も軽減されます (ただし、複数のデータベース サーバーに同時にアクセスするとオーバーヘッドが発生します)。 mysqlのマスタ・スレーブ同期原理はbinlogであり、マスタサーバの運用コマンド処理を同期させることで、スレーブサーバ上でデータを再構築します。同時に、このモードは読み取りと書き込みの分離も実現します。書き込みの場合はマスターに書き込み、読み取りの場合はスレーブで読み取られます。大量の同時実行中に読み取り速度が書き込み速度の影響を受けるのを防ぎます
ストレージ分散、js css 画像など、一部のリソースはメイン Web サイトに配置する必要がなく、他のマシンに配置できます。一部の大規模 Web サイトでは、img1、img2、img3、static、pic などで始まるドメイン名はすべて、そのようなリソースを分離する方法です。同時に、これらの静的リソースは CDN を使用して高速化できます (CDN の正式名は Content Delivery Network、つまりコンテンツ配信ネットワークです)。CDN サーバーは自分で構築することも、サードパーティのサービスを購入することもできます
。 CVS から SVN および GIT へのバージョン管理 一般に、CVS は初期に使用され、現在は SVN に置き換わっていることを理解する必要があります。コード バージョン管理ソフトウェアの機能は、コードをサーバーに保存し、更新と送信の 2 つの操作を通じてコードの最終的な変更を達成することです。これにより、複数の人が共同作業するのが便利になります。バージョンがリリースされたら、その時点でコードをフリーズするタグを追加します。そのタグに干渉することなく、開発を続けることができます。複数のブランチを開くこともできるので、異なる人が複数のバージョンを開発したり、1.0 や 2.0 などのバージョンを相互に影響を与えることなく同時に開発したりできます。開発完了後にバージョンをマージすることもできます。
バージョン管理を使用するもう 1 つの利点は、ローカル マシンが壊れた場合でも、コードがサーバー上にあるため、全員の作業結果に影響を与えないことです。誰かが間違いを犯してコードを破壊した場合でも、コードはロールバックできます。これら 3 つのバージョン管理ソフトウェアの使用方法については、Baidu ご自身で
HTTP プロトコル
http://www.blogjava.net/zjusuyong/articles/304788.html
ステータス コード 200 304 403 404 500 502 に注目してください。ここで、304 は静的ファイルの有効期限を設定するサーバーです。有効期間を過ぎると、ブラウザはサーバーからリクエストを受信したときに 304 ステータスを返し、サーバーからファイルを送信せず、ブラウザのキャッシュを使用します。時間があるので、この記事をよく読んでください。これが Web リクエスト全体の基礎です。多くの最適化の本質は、このプロトコルを中心に展開されます。 Cookie を含めることは、http プロトコルの不可欠な部分です。
セッションを維持する 2 つの一般的な方法の違い: Cookie セッション
http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html
GET POST の 2 つの http リクエストの違い
http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
JSON と XML は 2 つのデータ形式です
http://wenku.baidu.com/view/49800b83d4d8d15abe234e83.html
これら2 データ形式。通常はサードパーティの要求データの戻り形式として使用されます。また、サーバーがフロントエンドにデータを返す形式としても使用されます。私自身のプロジェクトは主に AJAX リクエストの戻りで使用されます。
AJAX について
http://www.w3school.com.cn/ajax/
AJAX = 非同期 JavaScript および XML。 XML の代わりに Json を使用することもできます。
次に、JavaScript のいくつかのフレームワークが関係します
http://www.blogjava.net/kent/articles/202855.html
主流なのは jQuery で、使いやすく理解しやすいためよく使用されます
jQueryチュートリアル http://www.w3school.com.cn/jquery/
一般的な Linux コマンド
cd ls cp rm mkdir ssh rsync wcp sudo
特定のコマンドはテストされていない可能性がありますが、方法を知っているかどうかを必ず尋ねられます。インターネット企業の Web プロジェクトの 90% が Windows
Mysql のいくつかのストレージ (テーブル) エンジン
http://database.51cto.com/art/201105/259232 の代わりに Linux または Unix をサーバーとして使用しているため、Linux を使用する必要があります。 htm
MyISAM InnoDB の主流の使用法
InnoDB と Myisam の違い
http://wenku.baidu.com/view/2630add5b9f3f90f76c61b35.html
NoSQL データベース
http://www.infoq.com/cn/news/ 2011/ 01/nosql-why
http://robbin.iteye.com/blog/524977
Redis、東京キャビネット、MongoDB
Memcache も NoSQL データベースですが、永続的なストレージではなく、単なるキャッシュですメモリに配置
http://www.cnblogs.com/qiantuwuliang/archive/2011/03/07/1974499.html
memcacheの使用状況
3つの主要なWEBサーバーapache lighttpd nginxの比較分析
http://wenku. baidu.com/view/96095c1f2279168888486d7d2.html
PHPプログラム開発時に注意すべき42の最適化ガイドライン