Google Data Center

ペパボのレンタルサーバー「ヘテムル」は、長年(おそらく2005年11月にサービスが始まったときからなので、家入さんが代表取締役の現役だったとき..!)ずっとお世話になっていたのですが、このたび本ブログのホスティング用サーバーを、ヘテムルからさくらのVPSに移行しました。ブログ以外のサイト、友人の代理で運営しているWebサイトなどもあるので、Hetemlのサーバーは継続して契約しています。

ヘテムルを使い続けてよかった点としては、まずインターフェースが分かりやすいこと&日々改善されていること。初心者や、静的サイトを管理する小規模な事業者サイトなどには、一番おすすめしたいレンタルサーバーです。WordPressの利用者増で、いわゆる「クイックインストール」や「簡単インストール」などが、レンタルサーバー業界の差別化のポイントとしてPRされるようになっていましたが、Hetemlのクイックインストールは簡単で、ドメインの設定・アカウントステータスの確認など分かりやすいです。(さくらのコントロールパネルのUIは、数年前から変わっていない)


一方で、いわゆる純粋なサーバースペックという観点においては、共用サーバーの性質上、どうしても中〜大規模なトラフィック(指標として同時アクセス数が300人以上くらい?)をさばくのには難しく、記事によって一時的なアクセスが増える性質のブログのホスティングには向かないという結論に至りました。

今回Hetemlから、さくらのVPS 2GB SSD のプランを契約して移行してみたので(料金も1,780円/月額と大変オトクです)、その手順などを自分の備忘録としてメモしておきます。

さくらVPSでWordPressを動かす下準備

私のローカルの環境は、Mac OS X 10.8で標準のTerminalを使用。
VPSの環境は、SSD2GB / 仮想2コア / ネームサーバ5ゾーン / Cent OS6

さくらのWebページを公開するための /var/www/html/ です。

さくらのVPSを契約すると、申し込み完了メールで、IPアドレスと初期パスワードが送られてきます。root@IPアドレスでssh接続して、その後はコンソール画面で細かくセットアップします。

さくらVPSの仮想サーバー情報

さくらVPSの仮想サーバー情報

sshログイン

さくらVPSを契約したら、管理画面(ブラウザ)から1クリックで「サーバーを起動」します。その後、ローカルマシンからSSH接続ができるか確認します。

ssh root@xxx.xxx.xxx
:(メールで届いたパスワードを入力)

SSHでサーバーに接続できたら、いよいよ真っさらな仮想サーバー上に、自分の好きなように環境構築していきます。さくらVPSサーバーは初期設定ではCentOSですので、yumでWordPressが稼動する環境構築を行います。

ユーザー追加とセキュリティ対策

その前に、初期設定や最低限のセキュリティ対策、作業ユーザーの追加などを行います。※ 最低限のセキュリティ対策ですので、本番環境では、SSHポートの変更、iptablesでのファイヤウォール設定、秘密鍵-公開鍵認証などの設定を行ってください。この記事では割愛しているので、「さくらのVPS 初期設定でやるべきこと」のような他サイトの記事を並行して読むと良いと思います。

rootパスワードの変更

管理画面のブラウザ上から可能です。私は12桁の英数字(小文字/大文字/数字)の乱数にしています。

作業ユーザーの追加

# useradd testuser
# passwd hogehoge // 新しいユーザー用のパスワード
# usermod -G wheel testuser  // ユーザーをwheel(管理者グループ)に設定

作業ユーザー(sudo権限あり)で、sshログインするための設定

# visudo
---
## Allows people in group wheel to run all commands
- # %wheel ALL=(ALL) ALL
+ %wheel ALL=(ALL) ALL //コメントアウトを外してwheel groupがsudoできるようにする

これで、コンソールから以下のようにsudo権限のある作業ユーザーでSSHログインできるようになります。

ssh testuser@xxx.xxx.xxx
: (testuser用に作ったパスワード)

WordPressに必要なパッケージをyum install

# yum -y update  // yumをアップデート
# yum install -y mysql-server php php-devel php-mbstring php-mysql php-pdo php-xml php-gd httpd  // WordPress環境に必要なパッケージ一式

MySQLの設定

# vi /etc/my.cnf

以下の情報を追記する

[mysqld]
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci

[client]
default-character-set = utf8

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8

MySQLのパスワードを設定(※ 契約中のさくらのVPSに紐づくMySQLデータベース全体のパスワードになるので注意)

mysqladmin -u root password 'hogehoge';

MySQLを起動する。OKと出れば成功。

# sudo /etc/init.d/mysqld start

MySQLにログイン

# mysql -uroot -p   // その後、パスワードを入力(上記例では hogehoge )

WordPress用のデータベースを作成

create database データベース名 default character set utf8;

※ データベース名には「wordpress」や、自分のブログ名(英数字)など自由に。

いよいよWordPressをインストール

WordPressをインストールするディレクトリを作成。 html/以下のディレクトリ構造の命名は自由です。

# mkdir /var/www/html/ディレクトリ名  //(例:wordpress)
# cd /var/www/html/wordpress

WordPress最新版(2014.3.9時点で3.8.1)をwgetコマンドで取得、展開

# wget http://ja.wordpress.org/wordpress-3.8.1-ja.zip
# unzip wordpress-3.8.1-ja.zip
# chown apache:apache -R wordpress  // Apache権限にする

Apacheの設定など

もう少しです。ブラウザでアクセス可能にするためにApacheの設定など行います。
私は最初、さくらに割り振られたホスト名で、/var/www/html/ルートにアクセスできるようにしました。

# vi /etc/httpd/conf.d/virtualhost.conf

以下のように記述。

NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName XXXXXX.sakura.ne.jp
<Directory "/var/www/html">
 AllowOverride All
</Directory>
</VirtualHost>

起動します

# sudo /etc/init.d/httpd configtest
# /etc/init.d/httpd start

これで、さくらに割り当てられたホスト名で、ブラウザからrootがアクセスできるはずです。
このバーチャルホストの設定は、独自ドメインを設定するときにも行います。参考までに私の設定例を。

<VirtualHost *:80>
DocumentRoot /var/www/html/mocchiblog
ServerName www.mocchiblog.com
<Directory "/var/www/html/mocchiblog">
 AllowOverride All
</Directory>
</VirtualHost>

あとはブラウザでWordPressをセットアップして完了

http://ホスト名.sakura.ne.jp/wordpress/ にアクセスすると、wp-install.php 画面が表示されたら成功です。
このあと、WordPressをブラウザ上でセットアップします。

データベース名:先ほど作成したDBの名前
パスワード:MySQLのパスワード
接頭語:wp_ のままでOK

【補足】必要に合わせて vsftpd、phpMyAdminを導入

レンタルサーバーから初めて引越しされた方は、SFTP接続やブラウザ上でのMySQL操作のほうが慣れていると思いますので、必要に応じてこの2つをセットアップしておきます。

(1) FTP接続を可能にするため vsftpd をインストール

# yum -y install vsftpd  // インストール
# sudo /etc/rc.d/init.d/vsftpd start  // インストール後に、起動

vsftpd.confの設定

以下の変更点で、空白スペースやスペルミスがあると動かないので注意を。

# sudo vi /etc/vsftpd/vsftpd.conf

- anonymous_enable=YES
+ anonymous_enable=NO  //匿名ユーザーのログインを不可

- local_umask=022
+ local_umask=002  //ファイルのパーミッションを644に

- #ascii_upload_enable=YES
- #ascii_download_enable=YES
+ ascii_upload_enable=YES
+ ascii_download_enable=YES  //アスキーモードを有効に

- #ftpd_banner=Welcome to blah FTP service.
+ ftpd_banner=Welcome to blah FTP service.  //シグニチャ隠蔽

- #chroot_list_enable=YES
- #chroot_list_file=/etc/vsftpd/chroot_list
+ chroot_list_enable=YES  //ホームディレクトリまで参照できるユーザーの設定
+ chroot_list_file=/etc/vsftpd/chroot_list  //上記の設定ファイルのパス

- #ls_recurse_enable=YES
+ ls_recurse_enable=YES  //一括アップロード・ダウンロードを許可

以下の設定項目を追加します。

#/etc/vsftpd/user_listのユーザーだけ接続を許可する
userlist_deny=NO

#タイムスタンプ時間をローカルに
use_localtime=YES

#ユーザーの初期アクセスディレクトリを設定
local_root=/var/www/html

#ユーザのホームディレクトリより上位のディレクトリへの移動を許可しない
chroot_local_user=YES

FTP接続を許可するユーザーを設定

# sudo vi /etc/vsftpd/user_list  // ここに記述したユーザー名がFTPユーザー
# sudo vi /etc/vsftpd/chroot_list  // ホームディレクトリまで戻れるユーザーのリスト(空ファイルでもOK)

リクエストを送り、OKが2つ出れば成功。

# sudo /etc/rc.d/init.d/vsftpd restart

iptablesにFTPのポート接続情報を追記(他にもsshやsmtpなどポート設定を行うファイルです)

# vi /etc/sysconfig/iptables
+ -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
+ -A INPUT -p tcp -m tcp --sport 20 -j ACCEPT
+ -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
+ -A INPUT -p tcp -m tcp --sport 21 -j ACCEPT

FTPのポートは20、21です。
設定情報を反映させます。

# sudo service iptables restart  // エラーが出た場合は、iptables か vsftpd.conf を見直す
# iptables -L  // 現在のiptablesの設定情報が表示される (ftpが記述されていたら成功)

(2) ブラウザからMySQLデータベースを操作できるphpMyAdminをインストール

# yum -y install phpmyadmin
# vi /etc/httpd/conf.d/phpMyAdmin.conf  // 設定ファイルを編集

設定ファイルに、以下の情報を追記する。

<Directory "/usr/share/phpmyadmin">
  Options FollowSymLinks
  AllowOverride All
  Order Deny,Allow
  Deny from all
  Allow from 127.0.0.1
  Allow from 192.168.
</Directory>

その他のこと

WordPressではプラグインのインストール/更新など自動でやってくれる機能があるため、
wp-content以下の、特定のディレクトリのパーミッションを変更しておきます。
※ FTPが使えないほか、データのインポートや、画像アップロード、テーマのインストールなどができません。

chmod 755 /var/www/html/wordpress/wp-content

ベンチマーク

後日改めて、負荷テストなどベンチマーク結果、速度など調査したいと思いますが。hetemlの共用サーバーからさくらのVPS SSD2GBで、管理画面やアクセス速度など体感速度はかなり向上しています。

関連リンク:

新プラン追加!さくらのVPS

参考リンク: