Successfully reported this slideshow.

WordPress を使いこなそう

71,440 views

Published on

Published in: Technology
  • Be the first to comment

WordPress を使いこなそう

  1. 1. WordPressを使いこなそう Vol.1 2012.08.24 - wokamoto2012年8月23日木曜日
  2. 2. 自己紹介 WordPress Plugins/JSeries プロジェクト の一員で、主に WordPress のプラグイン をつくっています。 Head Cleaner - <head> 部分のお掃除をするプ ラグイン OAuth Provider - WordPress を OAuth プロ バイダにするプラグイン http://profiles.wordpress.org/wokamoto2012年8月23日木曜日
  3. 3. WordPress のパフォーマンス チューニング済 AMI "網元" を 公開したりしました。 http://ja.megumi-cloud.com/2012年8月23日木曜日
  4. 4. 最近、こんなん書きました WordPress 高速化&スマート運用 必携ガイド2012年8月23日木曜日
  5. 5. 概要 WordPress を使ったウェブサイトの パフォーマンス改善について ボトルネックの特定方法 プラグインを導入した改善手法 サーバサイドの改善方法2012年8月23日木曜日
  6. 6. ボトルネックを探る2012年8月23日木曜日
  7. 7. 遅くなる原因 PHP の処理が遅い MySQL の処理が遅い 回線速度の問題2012年8月23日木曜日
  8. 8. PHP の処理が遅い プラグインやテーマが非効率 無駄に WordPress が動作している アクセスが多くて、処理が追いついてない2012年8月23日木曜日
  9. 9. MySQL の処理が遅い プラグインの詰め込みすぎでクエリーが多い クエリーが適切にチューニングされていない MySQL サーバが適切にチューニングされてい ない2012年8月23日木曜日
  10. 10. 回線速度の問題 画像ファイルなど大きいファイルが多い CSS, JS の読み込みが多い 外部から読み込んでいる JS が遅い2012年8月23日木曜日
  11. 11. Debug Bar と Debug Bar Extendar2012年8月23日木曜日
  12. 12. http://wordpress.org/extend/plugins/debug-bar/ http://wordpress.org/extend/plugins/debug-bar- extender/2012年8月23日木曜日
  13. 13. インストールしたら wp-config.php に以下を追加 define(SAVEQUERIES, true); define(WP_DEBUG, true); define(WP_DEBUG_DISPLAY, false);2012年8月23日木曜日
  14. 14. Debug Bar でボトルネックに なっている処理を特定する2012年8月23日木曜日
  15. 15. Debug Bar の Profiler タブに 表示するチェックポイントを追加 <?php if ( function_exists("dbgx_checkpoint") ) dbgx_checkpoint( $note="注釈" ); ?>2012年8月23日木曜日
  16. 16. WordPress を 極力動かさない2012年8月23日木曜日
  17. 17. 存在しないファイルへのアクセス で WordPress が実行してしまう # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress2012年8月23日木曜日
  18. 18. ブラウザ・クローラが 存在確認するファイル /favicon.ico /apple-touch-icon.png /robots.txt /crossdomain.xml2012年8月23日木曜日
  19. 19. # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} ! !.(html?|xml|txt|xsl|js|css|jpe?g|png|gif|ico)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress2012年8月23日木曜日
  20. 20. JavaScript の 重複に気をつける2012年8月23日木曜日
  21. 21. <?php wp_enqueue_script(jquery); ?>2012年8月23日木曜日
  22. 22. jQuery だけ Google AJAX Libraries のモノを使う <?php wp_deregister_script(jquery); wp_enqueue_script( jquery, http:/ /ajax.googleapis.com/ajax/libs/ jquery/1.7.2/jquery.min.js, array(), 1.7.2); ?>2012年8月23日木曜日
  23. 23. 静的ファイルに 有効期限を設ける2012年8月23日木曜日
  24. 24. <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 seconds" ExpiresByType text/html "access plus 1 seconds" ExpiresByType image/gif "access plus 30 days" ExpiresByType image/jpeg "access plus 30 days" ExpiresByType image/png "access plus 30 days" ExpiresByType image/x-icon "access plus 30 days" ExpiresByType text/css "access plus 7 days" ExpiresByType text/javascript "access plus 7 days" ExpiresByType application/x-javascript "access plus 7 days" </IfModule>2012年8月23日木曜日
  25. 25. Expires 設定した時の 注意点 wp_enqueue_style( my-theme-style, get_template_directory_uri() . /style.css, array(), date(YmdHis, filemtime(get_template_directory() . /style.css) ) );2012年8月23日木曜日
  26. 26. テキストファイルを gzip 圧縮転送する2012年8月23日木曜日
  27. 27. <IfModule mod_deflate.c> SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE/[1-6] !no-gzip !gzip-only-text/html SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|ico|pdf)$ no-gzip dont-vary SetEnvIfNoCase Request_URI _.utxt$ no-gzip DeflateCompressionLevel 4 AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php </IfModule>2012年8月23日木曜日
  28. 28. .htaccess を 極力使わない2012年8月23日木曜日
  29. 29. / に対して AllowOverride が有効になっている場合 /wp-includes/js/jquery/jquery.js にアクセスがあった 際は Apache は以下のファイルをすべて調べる /.htaccess /wp-includes/.htaccess /wp-includes/js/.htaccess /wp-includes/js/jquery/.htaccess2012年8月23日木曜日
  30. 30. 画像ファイルを 最適化する2012年8月23日木曜日
  31. 31. http://wordpress.org/extend/plugins/wp-smushit/2012年8月23日木曜日
  32. 32. 配信先を複数に 分ける2012年8月23日木曜日
  33. 33. http://wordpress.org/extend/plugins/wp-flickr-press/2012年8月23日木曜日
  34. 34. http://wordpress.org/extend/plugins/tantan-s3/2012年8月23日木曜日
  35. 35. CDN を使って コンテンツを配信する2012年8月23日木曜日
  36. 36. http://wordpress.org/extend/plugins/wpbooster-cdn- client/2012年8月23日木曜日
  37. 37. CSS, JS を 最適化する2012年8月23日木曜日
  38. 38. http://wordpress.org/extend/plugins/head-cleaner/2012年8月23日木曜日
  39. 39. 適用前2012年8月23日木曜日
  40. 40. 適用後2012年8月23日木曜日
  41. 41. WordPress の出力を キャッシュする2012年8月23日木曜日
  42. 42. Object Cache2012年8月23日木曜日
  43. 43. よくある WordPress 高速化の手法 <?php bloginfo(stylesheet_url) ?> テンプレートタグをテーマ中に書くと MySQL サーバに アクセスして遅くなるので URL を直接書こう。 http://example.jp/wp-content/themes/example/style.css 残念ながら、この手法にはあまり効果がありません。2012年8月23日木曜日
  44. 44. wp_cache_add( $key, $data, $group ) wp_cache_replace( $key, $data, $group ) wp_cache_set( $key, $data, $group ) wp_cache_get( $key, $group ) wp_cache_delete( $key, $group ) wp_cache_flush()2012年8月23日木曜日
  45. 45. オブジェクトキャッシュされたデータは 通常、毎回破棄される2012年8月23日木曜日
  46. 46. オブジェクトキャッシュされたデータ を永続的に使用するためのプラグイン http://wordpress.org/extend/plugins/wp-file-cache/ http://wordpress.org/extend/plugins/apc/ http://wordpress.org/extend/plugins/memcached/2012年8月23日木曜日
  47. 47. DB のクエリー実行結果 をキャッシュする2012年8月23日木曜日
  48. 48. http://wordpress.org/extend/plugins/db-cache- reloaded-fix/2012年8月23日木曜日
  49. 49. WordPress の出力を 丸ごとキャッシュする2012年8月23日木曜日
  50. 50. http://wordpress.org/extend/plugins/wp-super-cache/2012年8月23日木曜日
  51. 51. http://wordpress.org/extend/plugins/nginx-champuru/2012年8月23日木曜日
  52. 52. MySQL の チューニング2012年8月23日木曜日
  53. 53. $ wget mysqltuner.pl $ chmod +x mysqltuner.pl $ ./mysqltuner.pl2012年8月23日木曜日
  54. 54. Twitter : @wokamoto2012年8月23日木曜日

×