PHP日記

PHP Debug環境構築 ZendDebugger使用

1 Mins read

ZendDebuggerにてPHPのDebug環境構築 By php.ini編

環境、Apache2.2、PHP5.2.6

ステップ実行や変数の内容が見れるので楽に開発がすすむのでお薦め
環境はeclipseからPHPプラグインより使用します。

時間があったらeclipse設定方法も記載します(苦笑)
もちろん、ZendStudioっていうのもありです・・・こちらも結局eclipseかぁ(汗)

php.iniに以下を記載(php ver5.2.6)

・Linuxの場合
[ZendDebugger]
#「zend_extension_manager」無し(zend_optimizerなどと併用)
zend_extension="/hoge/zendDebugger/5_2_x_comp/ZendDebugger.so"
 
#「zend_extension_manager」有り(フォルダ名はzendDebugger直下に「php-5.2.x」)
zend_extension_manager.debug_server="/hoge/zendDebugger"
 
zend_debugger.allow_hosts = 127.0.0.1/32,192.168.0.0/24
zend_debugger.expose_remotely = always
zend_debugger.deny_hosts = all

・Windowsの場合
[ZendDebugger]
#「zend_extension_manager」無し(zend_optimizerなどと併用)
zend_extension_ts="D:\hoge\php\zendDebugger/5_2_x_comp/ZendDebugger.dll"
 
#「zend_extension_manager」有り(フォルダ名はzendDebugger直下に「php-5.2.x」)
zend_extension_manager.debug_server_ts = "D:\hoge\php\zendDebugger"
 
zend_debugger.allow_hosts = 127.0.0.1/32,192.168.0.0/24
zend_debugger.expose_remotely = always
zend_debugger.deny_hosts = all

注意点はLinuxの場合「zend_extension」として「_ts」はいらない
「zend_extension_manager.debug_server」の時も同じ

スレッドセーフか非スレッドセーフなどでも設定が変わるので詳しくはここもチェック

Read more
PHP日記

PHP環境の高速化 Zend_Optimizer eAccelerator

1 Mins read

PHPで高速化といえば、「eaccelerator」と「zend_optimizer」が有名だが、
CentOS5.2で確認した結果、eacceleratorのみの使用が一番速かった。

eaccelerator+zend_optimizerは逆に遅くなったので注意が必要!
なので「eaccelerator」だけでOK♪

Read more
日記

Firebug IEではInternet Explorer Developer Toolbar Or DebugBar

1 Mins read

前回はFirebugについて書いたのでIEにも同じようなのがないかなぁと
思っている人もいると思います?

IEではInternet Explorer Developer Toolbarというのがあり
同じようなデバッグ環境がつくれます♪

もう一つ似たようなものでDebugBarというのもあります。

DebugBarは、個人利用か学術目的での利用は無償なのでregstするところで
「Private User」でクリックすると60日指定が解除されます。
もちろん、設定で日本語表記になりますよん!

Read more
PHP日記

FirefoxでFirebug&YSlowでサイト調査

1 Mins read

下の記事でも少し出てきたYahooが出してるYSlowについてカキカキ

サイトを調査開発するときにも御世話になってるFirefox用アドオンのFirebug
こやつで開いたサイトの構成を簡単に見れるのだが、これプラスYSlowでサイトの健全性?調査が
出来るようになる

調査項目以下

  1. Make Fewer HTTP Requests
  2. Use a Content Delivery Network
  3. Add an Expires Header
  4. Gzip Components
  5. Put CSS at the Top
  6. Move Scripts to the Bottom
  7. Avoid CSS Expressions
  8. Make JavaScript and CSS External
  9. Reduce DNS Lookups
  10. Minify JavaScript
  11. Avoid Redirects
  12. Remove Duplicate Scripts
  13. Configure ETags

評価はA~F
そんな中に「Gzip Components」という項目があり、自分のサイトが「E」となってしまい
mod_deflateになったしだい(苦笑)

他のサイト調査にも便利なのでおススメ度88%!

Read more
Apache日記

mod_deflateでコンテンツ圧縮

1 Mins read

Apacheでは結構、昔からコンテンツの圧縮が可能だったが、
久しぶりに設定したのを忘れないように覚書!

今回はApache2.2系に設定

そもそもgzipでの圧縮のメリット、デメリットは?
■メリット
・ネットワークトラフック軽減
・ファイル減による通信速度向上
・トラフックの低下に伴うネットワークアクセスに使用されていたサーバーCPU使用量が軽減

■デメリット
・圧縮の処理為にタイムロス
・圧縮の処理為、サーバーCPU負荷増
・解凍の処理為、クライアントCPU負荷増
・HTTP1.1以上の通信が必要
・圧縮によりProxyサーバーなどへの影響

こんなもんでしょうか。

圧縮はサーバーマシンもクライアントマシンもスペックが上がってきている為、
問題(サーバーサイドは確認してくださいね。)はないでしょうし、
ネットワーク負荷も下がれば公共に対しても良いことしているので
速度Upと一日一善?ってことでやりましょう。

まずは「mod_deflate.so」をconfファイルに設定し以下の記述を追加してください。

#
# Deflate gzipにてコンテンツ圧縮
# 
 
#==============================================
#ディレクティブは zlib が一度に圧縮する塊の大きさをバイト単位で指定します。
#==============================================
DeflateBufferSize 8096
 
#==============================================
#ディレクティブは 圧縮の程度を設定します。大きな値では、
#より圧縮が行なわれますが、 CPU 資源を消費します。
#値は 1 (低圧縮) から 9 (高圧縮) です。
#==============================================
DeflateCompressionLevel 9
 
#==============================================
#圧縮比に関するメモがリクエストに付加されることを指定します。
#メモ (note) の名前はディレクティブに指定された値です。
#メモはアクセスログに 値を記録し、統計を取る目的にも使えます。
#確認できたらコメントしておくほうがパフォーマンスによろしい
#==============================================
#DeflateFilterNote Input instream
#DeflateFilterNote Output outstream
#DeflateFilterNote Ratio ratio
 
#LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
#CustomLog /hoge/logs/deflate_log deflate
 
#==============================================
#zlib が圧縮に使うメモリのレベルを設定します (1 から 9 の間の値)。
#(訳注: 2 を底とする対数の値になります。 8 程度が良いでしょう。)
#==============================================
DeflateMemLevel 8
 
#==============================================
#zlib の圧縮用ウィンドウ (訳注: zlib で使用される履歴バッファ) の大きさを指
#定します (1 から 15 の間の値)。
# 一般的に大きなウィンドウサイズを使用すると圧縮率が向上します。
# (訳注: 2 を底とする対数の値になります。 8 から 15 にするのが良いでしょう。)
#==============================================
DeflateWindowSize 15
 
#==============================================
#Output Compression
#圧縮機能は DEFLATEフィルタ により実装されています。
#以下のディレクティブはそのディレクティブのある コンテナ中のドキュメントを
#圧縮するようにします:
 
#上位Pathより機能を有効にする
#==============================================

 
# Insert filter
SetOutputFilter DEFLATE
 
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
 
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
 
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
 
# Don't compress images
#SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary
 
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
 
#通常、特定のMIMEタイプについてのみ圧縮したいのであれば、
#AddOutputFilterByType ディレクティブを使用します。
#次に Apache のドキュメントの html ファイルのみの圧縮を有効にする例を示します。
#AddOutputFilterByType DEFLATE text/html text/plain text/xml #連続指定可
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rdf+xml

注意!Win版では以下をコメント!Proxyなどバッティングは調査が必要
「Header append Vary User-Agent env=!dont-vary」

こんな感じであとはYSlowを使って確認してみましょう!

Read more