お名前.com VPS WordPressテンプレートを触ってみる

お名前.com レンタルサーバー |使いやすさと高機能の両立を実現
VPSと言えば自分で環境構築が行える人向けというイメージだが、最近ではテンプレートを選択することによりミドルウェアの構築などを行ってくれるサービスが準備されてきている。
お名前.com VPSではWordPressテンプレートというインストールが完了するとWordPressセットアップ画面にすぐアクセスできるテンプレートが用意されている。

実際に、インストール完了後グローバルIPにアクセスしてみるとセットアップ画面が表示された。
f:id:arcright:20150306010813p:plain

WordPressがすぐに使えるということはわかった。興味があるのはサーバ側の構築状態。

上記紹介ページにOS及びミドルウェアのバージョンは下記の通り記載されている。

CentOS 6.5 (64bit) / PHP 5.5.16 / WordPress 4.0 / MySQL 5.5.36 / nginx 1.6.1

お名前.com レンタルサーバー |使いやすさと高機能の両立を実現

実際にサーバ側の状態を調べていく。

yumリポジトリ

追加されているリポジトリは下記の通り。

ミドルウェア

MySQL
# yum list installed | grep Percona
Percona-Server-client-56.x86_64    5.6.22-rel71.0.el6                @percona   
Percona-Server-server-56.x86_64    5.6.22-rel71.0.el6                @percona   
Percona-Server-shared-51.x86_64    5.1.73-rel14.12.624.rhel6         @percona   
Percona-Server-shared-56.x86_64    5.6.22-rel71.0.el6                @percona   

Perconaリポジトリを追加しているので当然Percona MySQLを使用しています。
Percona MySQLがどういうバージョンのつけ方をしているのかわかりませんが、普通に考えればMySQL5.6.22にあたるバージョンですね。

PHP
# yum list installed | grep php
php.x86_64                         5.5.20-2.el6.remi                 @remi-php55
php-cli.x86_64                     5.5.20-2.el6.remi                 @remi-php55
php-common.x86_64                  5.5.20-2.el6.remi                 @remi-php55
php-devel.x86_64                   5.5.20-2.el6.remi                 @remi-php55
php-fpm.x86_64                     5.5.20-2.el6.remi                 @remi-php55
php-gd.x86_64                      5.5.20-2.el6.remi                 @remi-php55
php-mbstring.x86_64                5.5.20-2.el6.remi                 @remi-php55
php-mcrypt.x86_64                  5.5.20-2.el6.remi                 @remi-php55
php-mysqlnd.x86_64                 5.5.20-2.el6.remi                 @remi-php55
php-pdo.x86_64                     5.5.20-2.el6.remi                 @remi-php55
php-pear.noarch                    1:1.9.5-3.el6.remi                @remi      
php-pecl-jsonc.x86_64              1.3.6-1.el6.remi.5.5.1            @remi-php55
php-pecl-jsonc-devel.x86_64        1.3.6-1.el6.remi.5.5.1            @remi-php55
php-pecl-memcache.x86_64           3.0.8-2.el6.remi.5.5              @remi-php55
php-pecl-zip.x86_64                1.12.4-1.el6.remi.5.5             @remi-php55
php-process.x86_64                 5.5.20-2.el6.remi                 @remi-php55
php-xml.x86_64                     5.5.20-2.el6.remi                 @remi-php55

Remiリポジトリからインストールしています。
PHPのバージョンは5.5.20。php-fpmが入っているのでFastCGIにはphp-fpmを使用していることがわかりまります。

Nginx

# yum list installed | grep nginx
nginx.x86_64                       1.6.2-1.el6.ngx                   @nginx

最新のstableバージョンをインストールしてるみたいです。


それぞれ、バージョンアップには追随しているようなので紹介ページの情報が古いみたいです。

WordPress

WordPressは下記ディレクトリに配置されていました。

/var/www/vhosts/default

当然ながらドキュメントルートはこのディレクトリになっています。

インストールされているWordPressは日本語版です。

設定ファイル

wp-config.php

データベース名はwordpress。DBユーザとパスワードは乱数ぽい数値になっています。
設定済みなのでWordPressセットアップにて聞かれることはありません。

php-fpm

/etc/php-fpm.d/www.conf

[www]
listen = /var/run/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0666

user = nginx
group = nginx

pm = dynamic
pm.max_children = 5
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 4
pm.max_requests = 200

rlimit_files = 131072
rlimit_core = unlimited

request_terminate_timeout = 90
request_slowlog_timeout = 60

slowlog = /var/log/php-fpm/www-slow.log

php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_admin_value[upload_max_filesize] = 4M
php_admin_value[post_max_size] = 4M
php_admin_value[max_execution_time] = 60
Nginx

とりあえずdefault.confのみ。
気になったところを少し触れるとまずserver_name。

すべてのサーバに適合させる例では奇妙なサーバ名 “_” が使われます:

    server {
        listen       80  default_server;
        server_name  _;
        return       444;
    }
http://nginx.org/ja/docs/http/server_names.html

Nginxのproxy_cacheを使っているようです。不勉強であまりわからないので後で調べてみます。

phpmyadminの設定もあると思いきやパッと見た感じ404を返すだけのようです。
明示的に書く必要があるのか?

server {
    listen      80 default;
    server_name _;
    root        /var/www/vhosts/default;
    index       index.html index.htm;
    charset     utf-8;

    access_log  /var/log/nginx/default.access.log  main;
    error_log   /var/log/nginx/default.error.log;

    include     /etc/nginx/drop;

    rewrite /wp-admin$ $scheme://$host$uri/ permanent;
    #rewrite ^(.*)(index|home|default)\.html? $1 permanent;

    set $mobile '';
    #include /etc/nginx/mobile-detect;

    set $do_not_cache 0;
    if ($http_cookie ~* "comment_author_|wordpress_(?!test_cookie)|wp-postpass_" ) {
        set $do_not_cache 1;
    }
    if ($request_method = POST) {
        set $do_not_cache 1;
    }

    #location ~* \.(js|css|html?|xml|gz|jpe?g|gif|png|swf|wmv|flv|ico)$ {
    #    index   index.html index.htm;
    #    include /etc/nginx/expires;
    #}

    location / {
        try_files $uri @wordpress;

        # Pass all .php files onto a php-fpm/php-fcgi server.
        location ~ \.php$ {
            try_files $uri @wordpress;

            expires        off;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass   phpfpm;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
            fastcgi_intercept_errors on;
            fastcgi_connect_timeout 60;
            fastcgi_send_timeout 180;
            fastcgi_read_timeout 180;
            fastcgi_buffers 16 16k;
            fastcgi_buffer_size 32k;
            fastcgi_busy_buffers_size 32k;
            fastcgi_temp_file_write_size 256k;
        }
    }

    location @wordpress {
        internal;

        proxy_no_cache     $do_not_cache;
        proxy_cache_bypass $do_not_cache;

        proxy_redirect     off;
        proxy_cache        czone;
        proxy_cache_key    "$scheme://$host$request_uri$mobile";
        proxy_cache_valid  200 0m;
        proxy_pass http://backend;
    }

    #
    # When you use phpMyAdmin, uncomment the line "include /etc/nginx/phpmyadmin;"
    # and delete or comment out the below line "location ~* /(phpmyadmin|myadmin|pma) { }".
    #
    #include     /etc/nginx/phpmyadmin;
    location ~* /(phpmyadmin|myadmin|pma) {
        access_log off;
        log_not_found off;
        return 404;
    }

    #
    # redirect server error pages to the static page /50x.html
    #
    error_page 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

こんな感じでした。