Archive

Posts Tagged ‘mysql’

さくらのVPS契約&wordpress周りの再設定

January 30th, 2011 No comments

先日、さくらのVPSを契約し、yusukezzz.netのコンテンツ全てを移行しました

その際、wordpress周りの設定を大分弄ったので備忘録として残しておきます
パフォーマンスの指標として今回はYSlowを使って測定しました
変更前は記録していないのですが、確かGrade Dで50台だったと思います…

設定内容はググって出てきたものをほとんどコピペしてるだけです

まずはhttpd.conf

<VirtualHost *>
~略
    <Directory /your-htdocs-root>
        AllowOverride All
        Options FollowSymLinks -MultiViews

        # gzip compress setting
        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

        # ここからフィルター設定
        FilterDeclare Compression CONTENT_SET
        FilterProvider Compression DEFLATE Content-Type $text/plain
        FilterProvider Compression DEFLATE Content-Type $text/css
        FilterProvider Compression DEFLATE Content-Type $application/xhtml
        FilterProvider Compression DEFLATE Content-Type $application/xml
        FilterProvider Compression DEFLATE Content-Type $application/xhtml+xml
        FilterProvider Compression DEFLATE Content-Type $application/rss+xml
        FilterProvider Compression DEFLATE Content-Type $application/atom+xml
        FilterProvider Compression DEFLATE Content-Type $application/x-javascript
        FilterProvider Compression DEFLATE Content-Type $image/svg+xml
        FilterProvider Compression DEFLATE Content-Type $text/html
        FilterProvider Compression DEFLATE Content-Type $application/javascript
        FilterChain Compression
        # ここまでフィルター設定

        # Don't append Vary heder for specific files
        SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|zip|lzh|exe)$ dont-vary

        # Make sure proxies don't deliver the wrong content
        Header append Vary User-Agent env=!dont-vary
        Header append Vary Accept-Encoding env=!dont-vary
        # expires headers
        <FilesMatch "\.(ico|jpg|jpeg|png|gif|js|css|swf)$">
            ExpiresActive On
            ExpiresDefault "access plus 3 days"
        </FilesMatch>
    </Directory>
~略
</VirtualHost>

次にmysqlのクエリキャッシュ設定

[mysqld]
# query cache
query_cache_limit=1M
query_cache_min_res_unit=4k
query_cache_size=24M
query_cache_type=1

最後に、wp-minify の導入
wp-minify はwordpress内で使用されているjavascript, cssを1ファイルにまとめてくれるプラグインです
インストール後、wp-minify/cache に書き込み権限を与えておきます

APCや eAcceralatorなどもある程度効果ありますね
yusukezzz.netはAPCを導入しています

以上の設定を施したところ、YSlowのスコアは以下のようになりました
Grade A
Overall performance score 90
後はhttpリクエスト数を減らせ(CSSスプライトが未実施)&CDN使え(パフォーマンスと無関係)の2点が評価悪いだけなので、今回はこの辺までで十分だと思います
#CDNについては about:config からYSlowの設定を弄ることで強制的にオレオレCDNを登録出来るそうですが、スコアが上がるだけなのでやってないです
CSSスプライトはテーマによっては対応してそうなので、もう少しいい評価になるかもしれません

#2011/02/19 追記
そもそも YSlow の RuleSet を Small site or Blog にするべきでした
その状態で計測するとスコアは94まで行きました
あと、下記チューニングの通りにデーモンを停止してみました
CentOSをサーバーとして活用するための基本的な設定 (さくらインターネット創業日記)
#追記終了

以下参考サイト一覧(順不同)
DSAS開発者の部屋:負荷分散環境でブラウザキャッシュが効かないときは – ETagの解説 -
Webサイトの高速化 ルール13 ETagを正しく設定する! (Yahoo! developer netoworkより翻訳) | 株式会社インターオフィス
クラウド環境でのApacheの設定 | cloudrop
ゆっくりと… » WP MinifyでCSS/JavaScriptをまとめて軽量化、ページの応答速度を向上させる
mod_expires – Apache HTTP サーバ
YSlow対策でmod_expireを利用してHTTPレスポンスヘッダにExpiresを追加する – blog.katsuma.tv
Apacheで圧縮してコンテンツ配信しよう – takami_hirokiの日記
Apache 2.2 mod_filterを使いこなす – AddOutputFilterByType DEFLATE text/htmlを書き換えてみる « cyano

旧blogの画像URL修正

January 31st, 2009 No comments

mod_rewriteでやろうと思ったんですが、面倒だし今後同様のリンクが増えることもないし
…というわけで結局Mysqlで一括置換しました

参考:MySQLだけで文字列を一括置換する :: Webプログラマー+WebデザイナーなZARU日記

なんかリダイレクトも上手くいってない?みたいなので旧blogの記事は全部このblogのtopにリダイレクトしてます;
mod_rewriteムツカシネー

Tags: