ホームページ php教程 php手册 PHP Web サイトを高速化するための 3 つのソフト ヒント

PHP Web サイトを高速化するための 3 つのソフト ヒント

Jun 21, 2016 am 09:02 AM
apache fastcgi gzip mod zend

 

  代码优化

  通常要求程序员要有好的编程习惯,尽量减少冗余代码的出现,目前也有好多工具能够完成这项功能,对于一般的html文件,用于减少冗余的减肥工具很多,而对于PHP程序来说这样的工具就不太多了,但是Zend TechnologiesZend Optimizer是一款非常好的代码优化工具,可以免费从Zend Technologies的网站上获得。Zend Optimizer的使用方法也非常简单,只要将下载的ZendOptimizer-1[1].0.0-PHP_4.0.4- Linux_glibc21-i386.tar.gz文件解压缩,将其中的ZendOptimizer.so文件拷贝到/usr/local/Zend/lib目录下,然后修改php.ini文件,在最后添加以下几行:

  显示说明Zend Optimizer工作正常

  zend_optimizer.optimization_level=15

  zend_extension="/usr/local/ Zend/lib/ ZendOptimizer.so"

  设置完成后重启Apache服务器,编写一段PHP程序:

  <?

  Phpinfo();

  ?

  一般来说Zend Optimizer能将系统的效率提升30%40%,这是用户最关心的。

  压缩页面

HTTP1.1このプロトコルはページ圧縮送信をサポートしています。これは、サーバーがページを圧縮してクライアントに送信し、その後クライアントでページを解凍することを意味します。顧客に再表示。サーバー側で送信する方法は 2 つあります。1 つは、送信するときに、圧縮されたページをクライアントに送信するだけです。これは、静的な Web ページが多い場合に適しています。ほとんどのサイトでは、動的ページの数が多くなりますが、クライアントに送信されるページの多くは実際には存在しないため、クライアントからのユーザー要求を受信したときにサーバーによって動的に生成されるため、この方法は適していません。生成された動的ページは、圧縮してクライアントに送信する前に、まず生成する必要があります。 PHP4.0.4 以降のバージョン php.ini ファイルに「output_handler = ob_gzhandler」という設定行を追加します。 " により、動的に生成された各ページはクライアントに送信される前に圧縮されますが、PHP 公式サイトの指示によれば、このパラメーターはできません"zlib.output_compression = on" パラメーターを同時に使用すると、PHP が正しく動作せず、PHP プログラムの動的に生成されたページのみを圧縮できますが、多数の静的なページは圧縮できませんページ、特に画像ファイル。ただし、mod_gzip モジュールは、Apahe に静的ページを渡す機能を提供します。 の最大圧縮率は 10 で、通常の状況では 3。これは、Web サイトの送信速度が 3 倍以上増加したことを意味します。要想使用mod_gzip功能首先要下载mod_gzip.cmod_gzip.so文件,如果下载的是.c文件还要用Apache带的工具将它转化为.so文件才能使用,方法是运行下面的命令:

   -i -a mod_gzio.c

  cp mod_foo.so/path/to/apache/libexec/mod_gzip.so

  chmod 755/path/to/apache/libexec/mod_foo.so

  系统会在/path/to/apache/ etc/httpd.conf中自动激活该模块,如果下载的是.so文件则要将该文件拷贝到相应的目录下,然后在httpd.conf文件中添加LoadModule gzip_module libexec/ mod_gzip.so,使模块生效。需要注意两点,第一,要想使用.so文件,Apache必须包含了mod_so模块(可以通过httpd -l命令来查询该模块是否生效);第二,如果下载的是.so文件,它是与Apache的版本有关的,要注意下载的版本与自己使用的Apache是否一致,如果是.c文件就没有这个问题。模块生效后还要对Apache进行相应的配置,需要在httpd.conf文件中加入一些参数:

  mod_gzip_on Yes(模块是否生效)

  mod_gzip_minimum_file_size 1002(最小压缩文件大小)

  mod_gzip_maximum_file_size 0(最大压缩文件大小,0表示没有限制)

  mod_gzip_maximum_inmem_size 60000(最大可占用内存)

  mod_gzip_item_include file "..gif102SINA>DOUBLE_QUOTATION (以gif结尾的文件要压缩传送)

  mod_gzip_item_include file ".txt102SINA>DOUBLE_QUOTATION

  mod_gzip_item_include file ".html102SINA>DOUBLE_QUOTATION

  mod_gzip_item_exclude file ".css102SINA>DOUBLE_QUOTATION

  使用了压缩模块后,当用户访问站点时会在日志文件中记录相应的信息,比如“mod_gzip :OK In:file_length Out:gzipfile_length”,表示该页面传输中使用了gzip功能,输入文件、输出文件大小都有说明。

  文件缓存

このメソッドは通常、PHPPERL などに使用されます。CGI プログラムに関して言えば、これらのプログラムには共通の特徴があるため、ユーザーのリクエストを受け取った後、すぐに結果がユーザーに返されるのではなく、実行結果がクライアントによって解釈され実行された後にクライアントに返されます。この期間中、通常はデータベースへのアクセスが行われ、実行結果がクライアントに返されます。これにより問題が発生します。2 人のユーザーが同じページにアクセスすると、システムは 2 つのリクエストを別々に処理しますが、実際には 2 つの操作がまったく同じである可能性があり、目に見えないほどシステムの負荷が増加します。したがって、通常の解決策は、ユーザーが初めてページにアクセスしたときにシステム メモリにスペースを空け、ユーザーが再度そのページにアクセスしたときに、システムがそのページを直接削除することです。再解釈や実行を行わずにメモリから呼び出されるこのメモリ空間はキャッシュと呼ばれます。現在、人気のあるキャッシュ管理プログラムは 2 つあり、1 つは FastCGI、もう 1 つは Zend テクノロジーZend キャッシュFastCGI は主に PerlCC++ およびその他の CGI スクリプト プログラムは、クライアントからのリクエストをキャッシュするためにメモリを効果的に使用するように設計されています。 FastCGI アプリケーション サービス プログラムに送信され、FastCGI がユーザーのリクエストを処理しますその後、結果がユーザーに返されます。一般的CGI程序这时将结束进程自动退出,但是FastCGI进程继续保持,这时它在接到新的用户请求后不必建立新的进程,可以立即处理用户请求,也就是说CGI程序建立进程顺序执行然后退出,而FastCGI程序顺序执行并永远循环。

  Zend Cache的管理界面

  要想使用FastCGI首先要把FastCGI编译到Apache中,方法非常简单,这里就不说明了,还要在http.conf文件里作设置:

  AddHandler fastcgi-script .fcg .fcgi .fpl

  Options ExecCGI Indexes Includes

  这样FastCGI就可以正常工作了,下面是FastCGI程序员手册中的一段例子程序:

  #!fcgi-savvy-perl

  use FCGI; # 初始化

  # Initialization code

   = 0;

  # Response loop

  while (FCGI::accept = 0) {

   #FastCGI建立循环体

  print "Content-type:text/html "; #程序执行

  print "head><titleFastCGI Demo Page (perl)/title></head ";

  print "h1FastCGI Demo Page (perl)/h1 ";

  print "This is coming from a FastCGI server. BR ";

  print "Running on EMpublish152.internal.sina.com.cn/EM to EM></EM><BR ";

  ++;

  print "This is connection number ";

  }

FastCGI for Perlなど CGI プログラムは非常に強力ですが、PHP プログラムには無力で、プログラミング中にコンテンツを追加する必要があるため、何らかの人的要因が必要になります。登場する可能性があります。対照的に、Zend TechnologiesZendキャッシュPHP のキャッシュ機能は非常に強力で、ソフトウェアがインストールされている限り、プログラマは他の PHP を作成できます。 プログラムは同じです。キャッシュ機能を実装するために追加のコードは必要ありません。これはシステムのアップグレードに役立ち、非常に便利です。有料のソフトウェアです。它有缓存功能并能通过图形界面对其进行管理,其中:Cache Control页面,可以配置Zend Cache,显示其当前状态,还能启动和停止Zend Cache功能;Scripts页面,Zend Cache的内容,包括每个文件的状态,还可以根据点击次数和缓存占有大小选择文件;Benchmark页面,可以测试Zend Cache的缓存效果,并以图形方式给出显示,它测试的是每秒钟完成PHP请求的次数。

  它的安装、验证方法与Zend Optimizer基本相同,这里就不详细说明了,感兴趣的读者可以参考用户手册,它的强大功能和便利的管理方法确实让人心动。

  以上是网站提速常见的几种方法,对于不同的网站需要采用不同的手段,所对应的提速方案也不尽相同,但总体上不外乎是以上提到的三招,读者可以根据自己的实际情况具体问题具体分析。

  注意:考虑到客户端软件的复杂性,因为有些客户端软件可能不支持某些特性,比如,mod_gzip对页面进行压缩,但是如果客户端使用的是Netscape就不行,因为它不能把接收到的压缩页面解压缩,导致页面不能正常显示。





このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

サイバーパンク 2077 では、新しく最適化されたパス トレーシング MOD によりパフォーマンスが最大 40% 向上します サイバーパンク 2077 では、新しく最適化されたパス トレーシング MOD によりパフォーマンスが最大 40% 向上します Aug 10, 2024 pm 09:45 PM

サイバーパンク 2077 の際立った機能の 1 つはパス トレースですが、パフォーマンスに大きな負担をかける可能性があります。 RTX 4080 (Gigabyte AERO OC 現行価格。Amazon で 949.99 ドル) のような、そこそこ性能のあるグラフィックス カードを搭載したシステムでも、安定したパフォーマンスを提供するのは困難です。

Rabbit R1 はゲームを実行するために改造され、予想よりも優れたパフォーマンスを発揮します Rabbit R1 はゲームを実行するために改造され、予想よりも優れたパフォーマンスを発揮します Jun 29, 2024 am 07:50 AM

今月初め、HowToMen という名前の YouTuber が、Android を実行する Rabbit R1 を紹介しました。この MOD を使用すると、本来は電話よりも気が散りにくいデバイスが、電話のように機能するようになりました。しかし、ウサギはそうではなかったので、それは悪いことではありません

DIY Asus ROG Ally mod は何も露出せずにバッテリー容量をほぼ 2 倍にします DIY Asus ROG Ally mod は何も露出せずにバッテリー容量をほぼ 2 倍にします Aug 20, 2024 am 06:57 AM

Asus ROG Ally は 40 Wh のバッテリーを搭載しており、通常、稼働時間は約 2 時間です。ただし、Ally X では、Asus はバッテリーを 80 Wh にアップグレードし、TDP に応じてバッテリー寿命を約 4 時間に延ばしました。 iFixit が考え出したのは、

Java 同時プログラミングで同時実行テストとデバッグを実行するにはどうすればよいですか? Java 同時プログラミングで同時実行テストとデバッグを実行するにはどうすればよいですか? May 09, 2024 am 09:33 AM

同時実行テストとデバッグ Java 同時プログラミングにおける同時実行テストとデバッグは非常に重要であり、次の手法が利用可能です。 同時実行テスト: 単体テスト: 単一の同時タスクを分離してテストします。統合テスト: 複数の同時タスク間の相互作用をテストします。負荷テスト: 高負荷時のアプリケーションのパフォーマンスとスケーラビリティを評価します。同時実行デバッグ: ブレークポイント: スレッドの実行を一時停止し、変数を検査するかコードを実行します。ロギング: スレッドのイベントとステータスを記録します。スタック トレース: 例外のソースを特定します。視覚化ツール: スレッドのアクティビティとリソースの使用状況を監視します。

58 ポートレート プラットフォームの構築におけるアルゴリズムの適用 58 ポートレート プラットフォームの構築におけるアルゴリズムの適用 May 09, 2024 am 09:01 AM

1. 58 Portraits プラットフォーム構築の背景 まず、58 Portraits プラットフォーム構築の背景についてお話ししたいと思います。 1. 従来のプロファイリング プラットフォームの従来の考え方ではもはや十分ではありません。ユーザー プロファイリング プラットフォームを構築するには、複数のビジネス分野からのデータを統合して、ユーザーの行動や関心を理解するためのデータ マイニングも必要です。最後に、ユーザー プロファイル データを効率的に保存、クエリ、共有し、プロファイル サービスを提供するためのデータ プラットフォーム機能も必要です。自社構築のビジネス プロファイリング プラットフォームとミドルオフィス プロファイリング プラットフォームの主な違いは、自社構築のプロファイリング プラットフォームは単一のビジネス ラインにサービスを提供し、オンデマンドでカスタマイズできることです。ミッドオフィス プラットフォームは複数のビジネス ラインにサービスを提供し、複雑な機能を備えていることです。モデリングを提供し、より一般的な機能を提供します。 2.58 中間プラットフォームのポートレート構築の背景のユーザーのポートレート 58

Eclipseにサーバーを追加する方法 Eclipseにサーバーを追加する方法 May 05, 2024 pm 07:27 PM

Eclipse にサーバーを追加するには、次の手順に従います。 サーバー ランタイム環境の作成 サーバーの構成 サーバー インスタンスの作成 サーバー ランタイム環境の選択 サーバー インスタンスの構成 サーバー デプロイメント プロジェクトの開始

PHP を使用して Web サイトを展開および維持する方法 PHP を使用して Web サイトを展開および維持する方法 May 03, 2024 am 08:54 AM

PHP Web サイトを正常に展開して維持するには、次の手順を実行する必要があります。 Web サーバー (Apache や Nginx など) を選択する PHP をインストールする データベースを作成して PHP に接続する コードをサーバーにアップロードする ドメイン名と DNS を設定する Web サイトのメンテナンスを監視する手順には、PHP および Web サーバーの更新、Web サイトのバックアップ、エラー ログの監視、コンテンツの更新が含まれます。

Kubernetes Operator を活用して PHP クラウド展開を簡素化するにはどうすればよいですか? Kubernetes Operator を活用して PHP クラウド展開を簡素化するにはどうすればよいですか? May 06, 2024 pm 04:51 PM

KubernetesOperator は、次の手順に従って PHP クラウド デプロイメントを簡素化します。 PHPOperator をインストールして、Kubernetes クラスターと対話します。 PHP アプリケーションをデプロイし、イメージとポートを宣言します。ログの取得、記述、表示などのコマンドを使用してアプリケーションを管理します。

See all articles