さくらの VPS で遊ぶ (WordPress 編)

昨日に引き続きまして、さくらさんの VPS。 今度は我らが WordPress のインストールに挑戦してみたいと思います。

WordPress なら VPS じゃなくて普通のレンサバでいいじゃないか、という声も聞こえてきそうですが、VPS の場合は レンサバでは自分で自由にいれることができない PHP アクセラレータとか memcached とか、MySQL のクエリーキャッシュとかをいじれるのがポイントになります。

まぁ面白そうだというのが一番だったりもしますです。 🙂

てなわけで さくら VPS は初期状態、本当にまっさらな感じなので、まずは Apache と PHP と MySQL のインストールから。

# yum update
# yum install httpd php php-mbstring php-mysql php-gd mysql-server

まぁこんな感じで…(SSH のログとばしてしまったので、間違っていたらすいません。。)

で、httpd.conf を設定します。 ここではこんな感じで。

   1: # cat /etc/httpd/conf/httpd.conf 
   2: <VirtualHost sakura.maple4ever.net:80>
   3:    ServerName sakura.maple4ever.net
   4:    DocumentRoot /home/apache/sakura.maple4ever.net/public_html
   5:    <Directory /home/apache/sakura.maple4ever.net/public_html>
   6:       AllowOverride all
   7:       Options -MultiViews
   8:    </Directory>
   9: </VirtualHost>

ディレクトリの権限などは chown –R apache:apache しておきます。 また、wp-config.php と .htaccess をつくらせるために public_html に書き込み権限を。 あとで落としてください。 (試験の適当設定なので本気でやるときはユーザを作成するなど注意深くやってください)

でもって、httpd と mysqld を起動して mysql にデータベースを作成。 ここではやってませんが、mysql のパスワードもちゃんと設定のこと。

# /etc/init.d/httpd start
# /etc/init.d/mysqld start
# mysql -u root -p
パスワードは初期状態なし
\ create database 'sakura' default character set utf8 collate utf8_general_ci;

あとはいつも通り、WordPress を public_html にいれて、URL にアクセスでございます。、 🙂

   1: # cd /home/apache/sakura.maple4ever.net/public_html
   2: # wget http://ja.wordpress.org/wordpress-3.0.1-ja.tar.gz
   3: # tar zxvf wordpress-3.0.1-ja.tar.gz
   4: # cp -R wordpress/* .
   5: # rm -Rf wordpress
   6: # cd ..
   7: # chown -R apache:apache public_html
   8: # chmod +w public_html

ということで、無事起動します。 データもプラグインも入っていないのでなかなかさくさく動きます。

いけるか!?。。

これだと実運用の動きが分からないので、hiromasa.another (ここ)のデータをインポートしてみました。 画像の http セッションも確認したかったので、画像も移して URL を置換しています。

いけ~。

[tegaki]きゅるるるるるる、ぼぼん![/tegaki]

ひろまさ「ずがーん、のこりメモリ 40MByte。。。。。」

ひろまさ「ちょっぱ~を寝かせてきます。」

Masayan「…」

失意のひろまさくん。

ちなみにこのブログで一番重い処理は、kougabu のサムネイル作成だったりします。 複数画像を非同期で縮小かけにいくので結構メモリをくいます。(そのため kougabu ではプログラムで一定数以上同時につくらないように動作を制限しています。 なかなかサムネイルできないときあるのはこの機能のせいです)

はたして残りメモリ 40M じゃ、PHP アクセラレータも memcached もいけんわなぁと思いつつ、せっかくだからと言うことでどうなるのか APC のインストールをしてみる。

PHP: 導入 – Manual

Alternative PHP Cache (APC) は、PHP の実行コードをキャッシュする仕組みで、 フリーかつオープンに使用できます。PHP の中間コードのキャッシュ・最適化を行うための、 フリーでオープンかつ堅牢なフレームワークを提供するということを目標としています。

# yum install php-pear php-devel 
# pecl install APC
no と答えた
# vi /etc/php.ini
extension=apc.so # 入れる
# /etc/init.d/httpd restart

うまくはいると phpinfo() にこんなんでます。

sakura21 

そして、WordPress を表示して、いろいろアタックしてみたあとに free。

ひろまさ「なんと、のこりメモリ 200M キター!」

ぼのを「…」

どうやら APC でバイトコードをつくるとメモリ使用量がずいぶん減るようです。(たぶん) しかも速度が 1.5倍くらい速くなりました。

Powered by WordPress. Built on the Thematic Theme Framework. (75 queries.1.902seconds.)

最初は 3秒以上くらいかかっていたのでだいぶいい感じです。

そして調子に乗って memcached も導入して、WordPress コアのクエリなどをキャッシュしてみます。

# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
# yum install memcached php-pecl-memcache
# /etc/init.d/memcached start
# cd /home/apache/sakura.maple4ever.net/public_html/wp-content
# wget http://plugins.trac.wordpress.org/export/285287/memcached/trunk/object-cache.php
# chown apache:apache object-cache.php

これで、PHP から memcached がみえて WordPress が使ってくれるハズです。

sakura20 

で、キャッシュを効かせる感じで、ブラウザからぽちぽちあくせす。。 🙂

Powered by WordPress. Built on the Thematic Theme Framework. (28 queries.1.415seconds.)

1.9 秒かかっていたのが、1.4 秒になりました! (昔やったときはクエリ 4 くらいまで落ちたのですが、テーマとかプラグインなど対応していない SQL のせいかもです。 チューニングの余地あり)

で、しばらく触った後のメモリを観測。

# free
             total       used       free     shared    buffers     cached
Mem:        510532     504212       6320          0       3372     111752
-/+ buffers/cache:     389088     121444
Swap:      2048276      28984    2019292
# memcached-tool 127.0.0.1 display
  #  Item_Size  Max_age   Pages   Count   Full?  Evicted Evict_Time OOM
  1      96B       478s       1       3      no        0        0    0
  2     120B       478s       1       3      no        0        0    0
  3     152B      1068s       1       4      no        0        0    0
  4     192B       963s       1       3      no        0        0    0
  5     240B      1062s       1       3      no        0        0    0
  7     384B       574s       1      34      no        0        0    0
  8     480B       957s       1      62      no        0        0    0
  9     600B       957s       1     145      no        0        0    0
 10     752B       957s       1      32      no        0        0    0
 11     944B      1640s       1       5      no        0        0    0
 13     1.4K      1640s       1       3      no        0        0    0
 14     1.8K      1640s       1       2      no        0        0    0
 16     2.8K      1654s       1       3      no        0        0    0
 17     3.5K       958s       1       4      no        0        0    0
 18     4.4K      1655s       1       4      no        0        0    0
 19     5.5K       958s       1      10      no        0        0    0
 20     6.9K      1644s       1       4      no        0        0    0
 21     8.7K      1655s       1       2      no        0        0    0
 22    10.8K       958s       1       5      no        0        0    0
 23    13.6K       958s       1       4      no        0        0    0
 24    16.9K       958s       1       4      no        0        0    0
 25    21.2K       958s       1       6      no        0        0    0
 26    26.5K         0s       1       0      no        0        0    0

のこり 121M キター。 これならいける。 いける。

さすがに VPS なので CPU 的な部分はやはり遅いようで、ここのコアサバの表示速度には及びませんが(ちなみに最近ひどく調子がいい。 0.3秒くらいでレンダリング終了します)、必ず一定の速度で動けて、その他工夫次第でチューニングもできるので遊ぶには面白いのではないかと思います。

ちなみに今回動かしたサイトは、こんなかんじです。 (そのうち消えます)

ひろましゃ.さくらVPS :o)

というわけで、もうすこしいろいろな角度から検証は必要そうですが、APC いれるとなかなかいけそうな気がします。 もちろん使い方、サイトの規模にもよると思いますので、やられる方は2週間の試用期間で確認するといいと思います。 🙂

以上、デプロイ田中でした。

DVC00012

あ、関係ない。(笑)

さくらの VPS で遊ぶ (WordPress 編)」への7件のフィードバック

  1. こんにちは、こんにちは。

    SAKURA さん、入れ替えもできるみたいですが基本はセントくんですね。 😀
    HipHop 面白そうですね!! 間に合えば是非やってみたいと思います~。

  2. ピンバック: さくらVPSに lighttpd + PHP 5.3 + MySQL 5.1 をインストール : dogmap.jp

  3. ピンバック: 作業時に参考にしたものまとめ

  4. ピンバック: さくらのVPSでWordPressを動かす。 APCの導入したときのメモ | やってみるか(仮名)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です