nginx に Webサーバーを変えてみた(正確にはサーバーを変えてみた)
twitter でツイートした nginx 1.0リリース。熱が冷めぬうちに自分のブログを移設してみた。
nginxは HTTPサーバー(だけじゃないけど)ですね。広く利用されている Apacheと比較して軽い・早いと評判を聞き、最近オープンしているサービスも nginx 使っているのもあるので使ってみたかったのでした。インストール好きとしては。
なんで nginx かというと、単に使ってみたいというのが大きな理由なんだけど
今度リリースする予定のサービスが高負荷になるかもしれなくて、クラウドなどは利用するとして Apache というここまでほぼ一択で来ていた Webサーバーの選択について見直してみようかという思いもあったからです。
Apache 自体そんなにあれこれチューニングできるレベルには達してないけど、簡単な設定ならスイスイ設定できるくらい慣れ親しんでいる。ちょっとくらいのトラブルであればなんとか復旧もできる。
しかし、より高いパフォーマンス・安定しているという話を聞き、何時までも枯れたWebサーバーに甘んじるのではなく、個人的にもスキルが停滞しているし、ここはひとつ重い腰を動かすことにした。
で、さくらVPSに ubuntu いれたサーバーがあったのでそこに突っ込んだ。
というわけでメモ残し。
nginx インストール
$ sudo su -
# nginx=stable
# add-apt-repository ppa:nginx/$nginx
# aptitude update
# aptitude install nginx
majima.net 用バーチャルホストの設定
/etc/nginx/site-available/www.majima.net を作成
server {
listen 80;
server_name www.majima.net;
access_log /var/log/nginx/majima.net-access.log combined;
location / {
root /var/www/majima.net;
index index.php index.html index.htm;
# static files
if (-f $request_filename) {
expires 30d;
break;
}
# request to index.php
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/majima.net$fastcgi_script_name;
}
}
で、設定を有効にするために
ln -s /etc/nginx/site-available/www.majima.net /etc/nginx/site-enable/
/etc/init.d/nginx configtest
/etc/init.d/nginx reload
結構簡単だったな。
WordPressを100倍速くする! MySQLの調整やnginx proxy cache | KRAY Inc
を参考に、proxy cache も組み込んでみたけど大きく早くなったような気もしないので、うまくいっていないかもしれんので、詳しくは上記を見てください。
Googleサイトマッププラグイン(Google Sitemap Generator for WordPress)
WordPressでの投稿リストを GoogleSitemapsで利用する sitemap.xml に書き出してくれるプラグインを導入した。
Googleサイトマップは Google Webmaster Centralにあるウェブマスターのツールに含まれているもので、Webサイトのサイトマップを XMLファイルでリスト化し GoogleサイトマップからそのXMLファイルのURLを登録することで検索エンジンがクロールしてくれる仕組みだ。
普通検索エンジンのロボットは訪れたページにあるリンクをたどりインデックスをしていくのだが、きちんとサイト構築がされていないと、どこからもリンクされていないページやリンクをうまくたどれず取りこぼしのあるページなどが出てきてしまう。
Googleサイトマップへリスト登録を行えば、XMLファイルにリスト化されたものはもれなくインデックス化してくれるため、SEOとして有効な手段となる。
つい最近まで知らなかったのだが、Yahoo!, MSNも同じ形式のサイトマップファイルを取り込むようになっていた。
これでGoogle以外の検索エンジンでも効果がでることになり、SEOとしてより重要となった。
で、Wordpressでのプラグイン導入である。
ブログのエントリーごとのサイトマップを自動的に(エントリーの投稿があった時点で)構築してくれる。
Google Sitemap Generator for WordPress v2である。
導入は至って簡単
1. 上記URL English version をダウンロード
2. wp-content/plugins/ ディレクトリへアップロード
3. 管理画面よりプラグインを有効化
4. 各種設定
以上。
後は、GoogleサイトマップにURLを登録する。
Yahoo, MSNに対応するには robot.txt にサイトマップファイルのURLを記述することで認識される。
Sitemap: http://www.majima.net/sitemap.xml
WordPressのプラグイン関係はこれでもういいかな(3つ位しか入れてないけど)
ま、タグクラウドとパンくずとこの Googleサイトマップくらい導入できればあとはエントリーで勝負ですね(最近更新頻度落ちてる人が言う言葉ではない)
WordPress用パンくずプラグインを導入 – Breadcrumb Navigation XT
Breadcrumb いわゆるパンくず機能が欲しいな〜と思いたどり着いたのが
Breadcrumb Navigation XT。
ひとまず満足行く結果は得られました。
インストール方法
インストールは簡単で、上記ページよりダウンロードしたプラグインを wp-content/plugins/ フォルダへアップロードし、管理画面からプラグインを有効化するだけだ。
これで、パンくず機能は使えるようになるので、あとはその表示をするための設定を使用しているテーマにあわせて行うことになる。
表示方法など
自分の使用しているテーマでは、 header.php に設定。
Breadcrumb Navigation XTは、パンくずの表示を行うのに色々とオプションの設定ができるのが便利な点なのだが、デフォルトの設定が個人的には余計な設定になっているため、コード上は余計に記述をしなければいけないのが難点ではありました。
余計だな〜と思うところは、パーマリンクやカテゴリーの一覧などを表示する際に、パンくずの Prefixとしてそれぞれ、「Blog article:」「Archive by category '」が設定されているためパンくずの表示として、
Home > Blog article: WordPress用パンくずプラグイン - Breadcrumb Navigation XT
のように表示される。この Blog article: って邪魔じゃね?と思うわけである。
ただ、これらの表示はオプションとして設定することで、変更することが出来るので機能としてはとてもよくできているプラグインという印象だった。
このブログでの設定は次のような内容で行った。
- パンくずの一番頭の表示テキストを Home に変更(title_blog)
- パンくずとパンくずの間にはいる文字を > に変更(separator)
- 個別エントリーを表示する際にパンくずに現れる「Blog article: 」を消す(singleblogpost_prefix)
- 同じく日付・カテゴリー・タグの一覧を表示する際にパンくずに現れる余計なテキストを消す(archive_category_prefix, archive_date_prefix)
- カテゴリー一覧を表示する際にパンくずの最後に表示される ' はいらない(archive_category_suffix)
- パンくずの最後の要素もリンクさせる(link_current_item)
-
個別エントリーを表示する際に、カテゴリーに属するエントリーのように表示させる(singleblogpost_category_display)
Home > WordPress用パンくずプラグイン がデフォルトの表示だが、これを Home > WordPress > WordPress用パンくずプラグイン のように、カテゴリーにぶら下がるエントリーとして表示させる。
これでよりパンくずらしくなった。
以下、ソースコード。
<div class="breadCrumbs"<>
<?php
if (class_exists('breadcrumb_navigation_xt')) {
// Display a prefix
//echo 'Navigation: ';
// new breadcrumb object
$mybreadcrumb = new breadcrumb_navigation_xt;
// Apply options
$mybreadcrumb->opt['title_blog'] = 'Home';
$mybreadcrumb->opt['separator'] = ' > ';
$mybreadcrumb->opt['singleblogpost_prefix'] = '';
$mybreadcrumb->opt['archive_category_prefix'] = '';
$mybreadcrumb->opt['archive_date_prefix'] = '';
$mybreadcrumb->opt['link_current_item'] = true;
$mybreadcrumb->opt['archive_category_suffix'] = '';
$mybreadcrumb->opt['tag_page_prefix'] = '';
$mybreadcrumb->opt['singleblogpost_category_display'] = true;
//$mybreadcrumb->opt[''] = '';
// Display the breadcrumb
$mybreadcrumb->display();
}
?>
</div>
また、自分はタグ機能の実装に UltimateTagWarrior を使用している。
Breadcrumb Navigation XT でタグの表示もパンくず化させるためには、Breadcrumb Navigation XTに手を加える必要があった(デフォルトで Simple Tagging Pluginに対応しているようだったのだが、すでに UltimateTagWarrior 入れちゃってたので、また違うタグ機能入れるの面度かったので、、、)
168行目あたり、
//elseif (class_exists('UltimateTagWarriorCore')) {
//elseif (class_exists('SimpleTagging')) {
//if ( STP_IsTagView() ) $swg_type = 'tag';
elseif ( is_tag() ) $swg_type = 'tag';
//}
のように。class_exists(‘UltimateTagWarriorCore’) の判別入った方がいいのかな〜と思ったのだけどなんだかうまく表示されなかったので(PHPなどの環境の問題か?)上記に変更。
そして、345行目あたり
$result_array['last']['title'] = STP_GetCurrentTagSet();
を
$result_array['last']['title'] = UTW_GetCurrentTagSet("simplelist");
とする。
後どっか変更した記憶があるのだけど、忘れてしまいました。すいません。
テーマ変更とタグクラウド機能の実装 (UltimateTagWarrior)
WordPress いじり。今回の自己満足は以下の通り。
- デザインの変更(テーマの変更)
- UltimateTagWarrior 日本語版によるタグクラウド機能の実装
デザイン(テーマ)の変更
WordPressはテーマから色々とデザイン選べるので気軽に変えらるのがいいところ。
本当は一から作ってみたいんだけど、そんな暇もないわけで色々と探していたところであったのがこのデザイン(2007年4月6日現在)。
N.Design Studioによる GlossyBlue 1.3です。
何となく見やすい感じ。エントリーの日めくりカレンダーっぽい日付がいい感じ。そんな理由です。
あとは、こいつをベースにテキトーにいじっていく予定。
UltimateTagWarrior 日本語版によるタグクラウド機能の実装
WordPressにタグ機能をインストール – さとウォークも参考にさせていただきました。
タグクラウド機能は個人的に欲しかったのでプラグインを探してみた。
UltimateTagWarrior 日本語版というのがあったので組込。
- まずは本家プラグインUltimate Tag Warrior 3をダウンロード
- UltimateTagWarrior 日本語版をダウンロード
- wp-content/plugins/ に本家をアップロード(解凍した pluginsに入っている UltimateTagWarriorを)
- wp-content/plugins/UltimateTagWarrior/ に日本語版のものを上書きアップロード
- 管理画面から有効に
- あとは管理画面から色々設定
と言ったところです。
サイドメニューにある “Tags” っていうのが設定した物。
使用しているテーマの sidebar.php に
<li>
<h2 class="sidebartitle"><?php _e("Tags"); ?></h2>
<ul>
<?php UTW_ShowWeightedTagSet("sizedtagcloud"); ?>
</ul>
</li>
を挿入。
ブログのソフトをざっくり変更
絶対にブログをやらんだろうな〜っていう人がブログをはじめた。
やったらきっと面白いだろうな〜と思ってたけど、そーゆーの嫌いそうだから絶対やらないかと思ってたのに、、、
それで触発されて、自分も心を入れ替えてブログの更新を滞らせないようにしようと思ったわけです。
手始めに、ブログソフトの変更・・・
なんというか、気分というか、ちょっとフレッシュな気分ではじめたかったので。
たんなるインストール・設定オタクの血が騒いだだけともいうが。
今まで MovableTypeを使っていたところを、今回は WordPress。
この後も自己満足的に、デザイン変更・プラグイン組込などに明け暮れますが
明け暮れすぎずに本来の目的である、ブログ更新もきちんとやっていこうと思います。
ひとまずご挨拶まで。