タグ

ブックマーク / dogmap.jp (26)

  • WordPress をとにかく速くする (WordPress Advent Calendar 2011 20日目) - dogmap.jp

    12月25日まで毎日ブログをつないでいく WordPress Advent Calendar 2011、20日目担当 @wokamoto です。 @mypacecreator さんに引き継いでいただきました!ドキドキ。 そんな、@mypacecreator さんのエントリはこちら。 3大「WordPressに慣れていない人がやってしまいがちだけど、こっちのほうがいいのになぁ」って思うこと 去年は PHP Advent Calendar に参加して「匿名関数と無名関数 (PHP Advent Calendar 2010 16日目)」って記事を書いたんですが、今年は WordPress Advent Calendar に参加します! そんなわけで、(一部の)みんな大好き WordPress のハイパフォーマンスチューニングの話題。 このサイト dogmap.jp で行っている施策について書きま

    deeeki
    deeeki 2011/12/21
    WordPress高速化
  • Nginx + lsyncd で WordPress を負荷分散させる - dogmap.jp

    最近、め組ことデジタルキューブさんと、一緒に仕事をやらせてもらってます。 今の所は、主に WordPress サイトの高速化とかやってるんですけど、その中で WordPress サイトを複数台のサーバで負荷分散させて高速化させる案件があったので、その時の作業内容をシェア。 最近はさくらの VPS とか、低価格の VPS が出てきてるので、個人でも手を出せる領域かもしれませんね。 今回は2台のサーバを使って PHP の処理を負荷分散しました。 構成は、こんな感じです。 プライマリサーバ ( vps1.example.com : 192.168.0.1 ) Nginx, Load Balancer、PHP FastCGI のアプリケーションサーバ lsyncd (リアルタイム rsync を実現するためのサービス) セカンダリサーバ ( vps2.example.com : 192.168.0

  • VPS 借りたら、せめてこれくらいはやっとけというセキュリティ設定 - dogmap.jp

    さくらのVPSやら、ServersMan@VPS やらの出現で、やたらと敷居のさがった感のある VPS 。 かく言うこのサーバもめ組VPSで運用されてるわけですが、VPSを既存のレンサバ感覚で使ってる人にせめてこれくらいのセキュリティ設定はやっておいたほうが良いよっていうお話です。 今回、対象にする OS は CentOS です。 さくらVPS 借りて Ubuntu とか、別の OS で運用するような中上級者は自分でできるよね。 リモートからの root ログインを無効にする ssh 経由で root でログインして作業したりしてませんか? これ root パスワードが破られたら、サーバが乗っ取られちゃうので、大変に危険です。 root ログインを無効にして、権限のあるユーザでログインしてから sudo or su して作業するようにしましょう。 root ログインを無効にする方法は、こん

  • WordPress マルチサイト版の高速化アイデア - dogmap.jp

    WordPress をマルチサイトで使用していると、画像のURLが以下のような感じになると思います。 http://hoge.example.com/files/2011/05/fuga.jpg しかし、実際にはサーバ上には /files/2011/05/fuga.jpg ってファイルは存在してません。 WordPress が、どうやってこのファイルを処理しているかというと… wp-includes/rewrite.php の WP_Rewrite クラスで wp-includes/ms-files.php?file=2011/05/fuga.jpg に書き換え wp-includes/ms-files.php で、/wp-content/blogs.dir/{blog ID}/files/2011/05/fuga.jpg を読み込んで出力 つまり、静的ファイルにアクセスするためにわざわざ

  • WordPress でカテゴリのリンクを変更する - dogmap.jp

    WordPress でカテゴリのリンクを標準以外に変更する方法です。 まぁ、それ専用のプラグインとかも探せば有ると思うんですが… http://example.com/?cid=xx 形式に変更する 例えば、カテゴリのリンクを http://example.com/?cid=xx とかって形式でも表示できるようにするには、以下のようにして parse_query フィルタを使うと良いです。 # functions.php とかに追加してやってください。 class add_category_link_to_different_link { function __construct(){ add_filter('query_vars', array(&$this, 'add_query_vars')); add_action('parse_query', array(&$this, 'par

  • WordPress でスニペットを簡単に管理する方法 - dogmap.jp

    昨今の WordPress 人気にあやかって、「WordPress スニペット」とか「WordPress functions.php カスタマイズ」とかで検索すると、functions.php を使ってできる簡単なカスタマイズ方法が出てきます。 これらを functions.php で管理してるとテーマを変更した時とか、コピペしなおさなきゃ行けなくなって面倒くさいことこの上ありません。 このカスタマイズやっぱ要らないなーとか思っても、すでにどこに書いていたか分からなくなっちゃうなんてこともしばしば。 そんなわけで、私はこれらのスニペットについては簡単なプラグインを作って管理してます。 # 昔は my-hacks.php ってファイルを使って管理できたんですが、WordPress 2.8 以降から非推奨になっちゃいました。 プラグインのソースは、こんな感じです。 これを wp-content

  • WordPress の自動メディアリンクにメディア形式を追加する - dogmap.jp

    WordPress 2.9 から追加された oEmbed (自動メディアリンク) が便利です。 例えば、YouTube や Flickr の URL を書くだけで、投稿が表示される際に URL の位置に自動的に YouTube 動画や Flickr の写真が埋め込まれて表示されます。 現在、デフォルトで対応しているのは、以下のメディアです。 YouTube Vimeo DailyMotion blip.tv Flickr (both videos and images) Viddler Hulu Qik Revision3 Scribd Photobucket PollDaddy Google Video WordPress.tv(現在は VideoPress 形式の動画のみ) SmugMug(WordPress 3.0 以降) FunnyOrDie.com(WordPress 3.0 以

  • WordPress で JSON 形式のデータを吐き出すプラグイン Feed JSON - dogmap.jp

    WordPress で JSON, JSONP 形式のデータを吐き出すプラグイン WordPress › Feed JSON を公式プラグインディレクトリで公開しました。 ダウンロードは、以下から。 WordPress > Feed JSON « WordPress Plugins このプラグインを導入することで、<script type="text/javascript" src="https://dogmap.jp/feed/json?callback=callback"></script> みたいな感じで呼び出してやれば、JSONP 形式で最新記事の一覧を取得できます。 これで、簡単に他サイトや静的HTML上に簡単に更新情報を表示できるようになります。 詳しいやり方は、以前のエントリを参考にしてください。 WordPress の更新情報を JSONP 形式で出力 : dogmap.j

    WordPress で JSON 形式のデータを吐き出すプラグイン Feed JSON - dogmap.jp
  • WordPress サイトに Varnish を導入する - dogmap.jp

    WordPress サイトにリバースプロキシサーバ Varnish を導入する際の tips。 リバースプロキシって何?って人は、以下のURL辺りを参考にしてください。 Insider's Computer Dictionary [リバースProxy] − @IT 通常は複数台あるバックエンドのサーバを取りまとめるロードバランサー的な使われ方をします。 しかし、一台しかサーバが無い場合でも、フロントにリバースプロキシを置いてリクエストを受けて、バックエンドで動作している Web サーバから受け取った動的コンテンツをキャッシュさせて負荷を軽減させることもできます。 この構成を取っておけば、負荷が増えてサーバがきつくなったときに、わりと手軽にアプリケーションサーバを分離できますね。 # 個人ブログで、そこまで行くとは思いませんが… Varnish のインストール方法とか、基的な設定は以下のサ

    WordPress サイトに Varnish を導入する - dogmap.jp
  • WordPress 開発に便利なプラグイン Debug Bar - dogmap.jp

    WordPress 3.1 から導入された管理バー。 僕は好きなんだけど、結構嫌いな人は多いみたいですね。 そんな人達に管理バーがあると便利だよって伝えたいエントリ。 まずは、以下の2つのプラグインをインストールしてみてください。 Debug Bar Debug Bar Console そうすると、管理バーの右端に「Debug」ってメニューが追加されるはずです。 これが相当便利。 wp-config.php に以下の3行を追加することで、このプラグインは真価を発揮します。 define('SAVEQUERIES', true); define('WP_DEBUG', true); define('WP_DEBUG_DISPLAY', false); デバッグ作業終了後は、これらはコメントアウトしておいたほうが良いでしょう。 Deprecated というメニューを選択すると、WordPres

    WordPress 開発に便利なプラグイン Debug Bar - dogmap.jp
  • WordPress で URL をすべて相対 URL にする方法 - dogmap.jp

    WordPress で SSL 対応した時に、プラグインが書き出すリンクやコンテンツ内のリンクが https:// にならずに哀しくなることはありませんか? そんなときは、こんな感じのコードを functions.php に書いておけば、一発で全てのリンクを相対URLに変更してくれますよ。 class relative_URI { function relative_URI() { add_action('get_header', array(&$this, 'get_header'), 1); add_action('wp_footer', array(&$this, 'wp_footer'), 99999); } function replace_relative_URI($content) { $home_url = trailingslashit(get_home_url('/')

  • WordBench.org のサーバをチューニング - dogmap.jp

    ※すべて同じサーバ上で実験しています。 アクセラレータ無しと比べると圧倒的なパフォーマンスをたたき出してますね。 Apache の設定 WordBench サーバを収容しているデータセンターはサンノゼにあるため通信量を抑える必要があります。 というわけで /etc/httpd/conf.d/ に以下のような内容の設定ファイルを追加し mod_deflate と mod_expires を設定しました。 AddType image/x-icon .ico <IfModule mod_deflate.c> SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSI[E] !no-gzip !gzip-o

  • 匿名関数と無名関数 (PHP Advent Calendar 2010 16日目) - dogmap.jp

    shin1x1 さんから、開始された PHP Advent Calendar jp 2010 16日目です。 書くTipsは、10分で考えて、5分で書ける内容で ok です。 とのことなので、さらっと。 PHP5.3から導入された無名関数って、5.2以前からある匿名関数とどうちがうの?ってお話。 PHP5.3から無名関数が利用できるようになりました。こんな感じで書けます。 $closure_echo = function( $s ){ echo $s . "\n"; }; $closure_echo('Hello World!'); preg_replace_callback なんかの第2引数に使う一時的な関数を定義するのに便利ですね。 PHP5.2までは、同様のことを create_function を使って、実現してました。 $anonymous_echo = create_funct

    匿名関数と無名関数 (PHP Advent Calendar 2010 16日目) - dogmap.jp
    deeeki
    deeeki 2010/12/16
  • め組VPSに移行後に設定した項目 - dogmap.jp

    さくらの共用サーバから、め組のVPSに移行した際に設定した項目のメモです。 大まかにはこんな感じ Apache の設定変更 mod_deflate, mod_expires の有効化 VirturlHost の設定 MySQL の設定変更 クエリキャッシュの設定 ソートバッファ等の設定 PHP の設定変更 APC のインストール memcached のインストール PECL :: Package :: memcache の導入 WordPress への Memcached Object Cache Plugin の導入 DB Cache Reloaded プラグインの改造 Apache, MySQL の設定は飛ばします。 APC のインストール APC のインストールは、PECL で一発です。 # pecl install apc あとは、php.ini に設定を追加してやればOK。 僕の

  • WordCamp Yokohama 公式サイトの作り方 - その他 - dogmap.jp

    さて、WordCamp Yokohama 公式サイトの作り方3回目は、その他のテクニックです。 WordCamp Yokohama 公式サイトを作ったときに使った、細々としたテクニックのご紹介。 つっても、過去にこのブログでも紹介したテクニックばかりなので、あまり詳細は書きません。 それぞれの記事へのリンクを付けておきますので、気になる方はそちらをご参照くださいまし。 .htaccess の書き方 DB エラー画面、アップデート時のメンテナンス画面の変更 <head>部にMETA情報他を追加する .htaccess の書き方 .htaccess は、以前に紹介したモノを、ほぼそのまま使ってます。以前の紹介記事はこちら。 WordPressサイト用の.htaccess例 : dogmap.jp ただし、今回のサイトではコメント欄はつけず、トラックバック・ピングバックのみ受け付ける仕様ですので

  • Google AJAX Feed API - dogmap.jp

    みなみさんが静的ページに WordPress の新着記事一覧を表示する方法を急募していた。 これを実現するために JavaScriptRSS フィードを取得して表示する方法を調べたので、自分用にメモ。 使用するのは Google AJAX Feed APIGoogle AJAX Feed API を使用するには、APIキーが必要。 Google Map を利用する際に取得した API キーがあれば使えるが、無ければGoogle AJAX Feed API への登録をしておこう。 まずは、Google API のロード。 <head>内に以下の記述を追加して、Google API をロードしよう。 ※ YOUR_KEY_HERE には取得しておいたGoogle AJX Feed API のキーをセットする。 <script type="text/javascript" src="h

    Google AJAX Feed API - dogmap.jp
  • WordPress 3.0 プラグイン管理画面の「追加機能」 - dogmap.jp

    WordPress 3.0 RC1 日語版もリリースされ、いよいよ WordPress 3.0 正式版の公開も近づいてきました。 WordPress 3.0 RC1 をインストールして試している方も多いと思いますが、ダッシュボードのプラグイン管理画面に「追加機能ドロップイン(Drop-ins)」という項目が追加されたのにお気づきでしょうか? ここには、Drop-ins と呼ばれる特殊なプラグイン( Drop-ins are advanced plugins )がインストールされている場合に表示されます。 この Drop-ins は、wp-content ディレクトリに、決まった名前の php ファイルを保存することによって有効にすることができます。 例えば、db-error.php という名前の php ファイルを、wp-content ディレクトリに保存しておくと、WordPress

    WordPress 3.0 プラグイン管理画面の「追加機能」 - dogmap.jp
  • プラグイン作成から、公式ディレクトリでの公開まで - wokamoto

    WordPress には、以下のようなプラグインを作成するための仕組みが多数用意されています。 フィルターフック・アクションフック プラガブルファンクション ショートコードAPI ウィジェットAPI これらを使用してプラグインを作成するための勘所を紹介します。 また、作成したプラグインを全世界のWPユーザーに向けて簡単に公開・通知できる公式プラグインディレクトリへの登録方法もあわせて紹介します。 自己紹介 ( wokamoto ) WordPress Plugins/JSeries プロジェクトの一員でPluginをつくっています。 Head Cleaner - <head> 部分のお掃除をするプラグイン Google Maps Anywhere - Google Map 挿入用プラグイン Simple Tweet - Twitter 通知用プラグイン、oAuth に対応 ...etc W

  • WordCamp Yokohama 公式サイトの作り方 - プラグイン編 (2) - dogmap.jp

    さて、前日に引き続いて WordCamp Yokohama 公式サイトに導入したプラグインの解説。 今回の公式サイト構築にあたり、2つほど専用プラグインを新規で作りました。 時間が無い中で作ったんで汎用的なモノでは無いですが、WordCamp Yokohama が終了したら、改良してリリースしようとは思っています。 気長に待ってくださいね。 で、今回作ったプラグインは以下の2つ Custom Register – 独自のサインアップ画面、ログイン画面をページに実装 WordCamp Yokohama に参加登録するには WordPress で作成された公式サイトにユーザ登録・ログインしてもらい、アンケートに答えてもらう必要があります。 ここでサインアップ画面やログイン画面が、デフォルトの WordPress のモノだと芸が無いので、カッコイイサインアップ画面・ログイン画面を実装するためのプ

    WordCamp Yokohama 公式サイトの作り方 - プラグイン編 (2) - dogmap.jp
  • WordCamp Yokohama 公式サイトの作り方 - プラグイン編 (1) - dogmap.jp

    WordCamp Yokohama 公式サイトが、ようやく公開されました。 この公式サイト構築にあたり、専用プラグインを作ったり、既存のプラグインのカスタマイズを行ったりしたので、ざっくりと紹介させていただきます。 公式サイトのテーマに付いては、きっとおでこんのサイトで解説してくれると思うよ。 このサイトを構築するにあたり、WordPress コアソースに手を入れたりはしていません。 素のままの WordPress 2.9.2 に公開されているプラグインを追加したり、新規でプラグインを作成したりして構築されています。 WordCamp Yokohama 公式サイトを構築した際、使ったプラグインは以下の15個です。 Akismet – SPAM対策 Contact Form 7 – お問い合わせフォーム Custom Profile – 専用プラグイン、新規開発 Custom Registe

    WordCamp Yokohama 公式サイトの作り方 - プラグイン編 (1) - dogmap.jp