さくらのVPS 1.5G、OS UbuntuでWordPressを動かす作業メモ
さくらのVPS 512から、さくらのVPS 1.5Gへ移行した時の作業メモです。
基本的に上から下に向かって作業しています。OSをUbuntuに入れ換えて、WordPressを安定稼働させるのが目標です。
あくまで自分用メモですので、内容の正当性は保証しません。このメモは随時更新されます。参照する場合は参考までにどうぞ。
移行時に下記サイトを参考にさせて頂きました。貴重な情報提供ありがとうございます。
目次
- 申し込み
- OS再インストール
- LAMPセットアップ
- ntpセットアップ
- mysqlセットアップ
- mod_rewrite, mod_expires有効化
- Apache設定変更
- phpMyAdminのインストール
- WordPress用データベースの作成
- WordPress用データベースのインポート
- WordPressのインストール
- ロケールを ja_JP.UTF-8 にする
- muninインストール
- visitorsインストール
- memcacheインストール
- WordPressのSSH2接続
- muninにMySQL監視を追加(別ページ)
- WordPress用のMySQLチューニング(別ページ)
申し込み
「さくらのVPS|VPS(仮想専用サーバ)はさくらインターネット」から、「さくらのVPS 1.5G」の利用申請。
2分ほどでVPSが稼働した旨を告げるメールが届く。早い!
OS再インストール
初期OSであるCente OSをUbuntuに差し替える。
VPSコントロールパネル → OS再インストール → カスタムOSインストールへ → Ubuntu 10.04 i386
OSインストールは「SAKURA Internet // サポート – オンラインマニュアル – カスタムOSインストールガイド : Ubuntu 10.04」を見ながらやれば間違いない。
LAMPセットアップ
$ sudo apt-get install lamp-server^
1行打ち込むだけでWebサーバが立ち上がる。便利な時代だね。
ntpセットアップ
ntpインストール後、ntpサーバを変更する。
$ sudo aptitude install ntp
$ sudo vi /etc/ntp.conf
#file: ntp.conf
server ntp.jst.mfeed.ad.jp
$ sudo service ntp restart
# ntpが実行されるまで、しばらく待つ
$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*ntp2.jst.mfeed. 210.173.176.4 2 u 1 64 77 8.787 1.360 0.296
#行頭が * だったら接続成功
MySQLセットアップ
$ sudo vi /etc/mysql/my.cnf
#file: my.cnf
[client]
default-character-set=utf8 #追加
[mysqld]
default-character-set=utf8 #追加
character-set-server=utf8 #追加
mod_rewrite, mod_expires有効化
mod_rewriteは、URLを書き換えたり、リダイレクトするApacheのモジュール。
mod_expiresは、特定のファイルだけをキャッシュさせるApacheのモジュール。
$ sudo a2enmod rewrite $ sudo a2enmod expires $ sudo service apache2 restart
Apache設定変更
Apacheの設定ファイルを書き換える。
$ sudo vi /etc/apache2/sites-available/default
#file: default
<VirtualHost *:80>
ServerName hide10.com
ServerAdmin webmaster@hide10.com
DocumentRoot /home/user01/public_html
<Directory /home/user01/public_html/>
Options FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
# LogFormat "%h %l %u %t \"%r\" %>s %b %T" common
SetEnvIf User-Agent "internal dummy connection" dummyconnect
CustomLog /var/log/apache2/access.log combined env=!dummyconnect
# CustomLog /var/log/apache2/access.log common
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%) %{User-agent}i' deflate
CustomLog /var/log/apache2/deflate.log deflate
ServerSignature Off
</VirtualHost>
$ sudo /etc/init.d/apache2 restart
$ sudo vi /etc/apache2/apache2.conf
#file: apatch2.cnf
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
StartServers 6
MinSpareServers 25
MaxSpareServers 30
MaxClients 100
MaxRequestsPerChild 2000
</IfModule>
$ sudo /etc/init.d/apache2 restart
phpMyAdminのインストール
phpMyAdminのインストール。
$ sudo aptitude install phpmyadmin
#Apache2 → Yes → パスワードx2
特定のIPアドレス以外はアクセスできないようにする。
$ sudo vi /etc/phpmyadmin/apache.conf
file: apache.conf
<Directory /usr/share/phpmyadmin>
Order deny,allow #追加
deny from All #追加
Allow from IP-ADDRESS #追加
</Directory>
$ sudo service apache2 restart
WordPress用データベースの作成
“DB_NAME", “USER-NAME", “PASSWORD-USER"は、wp-config.phpに設定する値。
$ mysql -u root -p
# パスワード入力
mysql> create database DB_NAME;
mysql> create user USER-NAME@localhost identified by 'PASSWORD-USER';
mysql> grant all on DB_NAME.* TO USER-NAME@localhost;
mysql> exit
WordPress用データベースのインポート
うちはDBファイルが25MBもあるので、upload_max_filesizeの設定を変更する。
$ sudo vi /etc/php5/apache2/php.ini
#file: php.ini
upload_max_filesize = 30M
post_max_size = 32M
$ sudo service apache2 restart
memory_limit > post_max_size > upload_max_filesize とする必要があるらしい。
設定変更後、phpMyAdminを利用して、データベースファイルをインポートする。
WordPressのインストール
ゴミを減らすため、新たにインストールし直し、必要なファイルのみ旧サーバからコピーする。
$ wget http://ja.wordpress.org/latest-ja.tar.gz $ tar zxf latest-ja.tar.gz $ mv wordpress /home/user01/public_html
wp-config.phpを旧サーバから上書きコピー。
https://api.wordpress.org/secret-key/1.1/salt/ にアクセスして取得したキーに書き換える。
ドメイン移行中は、wp-config.phpに下記設定を追加すると、DBの設定にかかわらず任意のURLで動作する。
define('WP_SITEURL', 'http://example2.com');
define('WP_HOME', 'http://example2.com');
その他、必要と思われるファイルをコピー。
ロケールを ja_JP.UTF-8 にする
$ sudo apt-get install language-pack-ja $ sudo locale-gen ja_JP.UTF-8 $ sudo update-locale LANG=ja_JP.UTF-8 $ export LANG=ja_JP.UTF-8
muninインストール
サーバの状態監視ツール munin のインストール。「[Linux][Ubuntu][サーバ] サーバの状態監視ツール munin のインストール – Secondary Storage」を参考にしました。
$ sudo aptitude install munin munin-node
$ sudo vi /etc/munin/munin.conf
#file: munin.conf
htmldir /home/user01/public_html/munin
[hide10.com]
$ cd ~/public_html
$ mkdir munin
$ chown munin:munin munin
$ sudo -u munin vi /home/user01/public_html/munin/.htpasswd
# http://www.luft.co.jp/cgi/htpasswd.php で作成したパスワードを貼り付ける
munin:******
$ sudo vi /etc/apache2/conf.d/munin
#file: munin
<Directory "/home/user01/public_html/munin">
Order deny,allow
deny from all
AuthUserFile /home/user01/public_html/munin/.htpasswd
AuthName "munin"
AuthType Basic
require valid-user
Satisfy Any
</Directory>
$ sudo -u munin munin-cron
visitorsインストール
Apacheのログ解析ツール visitors のインストール。
$ sudo aptitude install visitors
$ mkdir /home/user01/public_html/visitors
$ sudo vi /home/user01/public_html/visitors/.htpasswd
# http://www.luft.co.jp/cgi/htpasswd.php で作成したパスワードを貼り付ける
visitors:******
$ sudo vi /etc/apache2/conf.d/visitor
#file: visitor
<Directory "/home/user01/public_html/visitors">
Order deny,allow
deny from all
AuthUserFile /home/user01/public_html/visitors/.htpasswd
AuthName "visitors"
AuthType Basic
require valid-user
Satisfy Any
</Directory>
$ sudo service apache2 restart
動作テスト。
$ visitors -GKZURDOBXYS -m 50 /var/log/apache2/access.log -P http://www.hide10.com -f /home/user01/public_html/visitors/index.html
logrotateの設定確認。必要なら変更する。
$ cat /etc/logrotate.d/apache2
/var/log/apache2/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
/etc/init.d/apache2 reload > /dev/null
fi
endscript
}
cron.dailyに登録。
$ sudo vi /etc/cron.daily/0_visitor
file: 0_visitor
#!/bin/sh
visitors -GKZURDOBXYS -m 50 /var/log/apache2/access.log -P http://www.hide10.com -f /home/user01/public_html/visitors/index.html
$ sudo chmod 755 /etc/cron.daily/0_visitor
memcacheインストール
「WordPressを激速に! APC+memcacheで簡単最適化! | それでも地球はまわっている」を参考にmemcacheをインストールする。
$ sudo aptitude install php5-memcache php-apc memcached $ sudo service apache2 restart
WordPress用プラグイン「WordPress › WP Memcached Manager « WordPress Plugins」をインストールし、「Server IP / Hostname: -> 127.0.0.1」、「Server Port: -> 11211」に接続して動作を確認する。
WordPressのSSH2接続
「WordPress: SSH2の暗号鍵を使った自動アップデートを有効にした – Hinemosu」を参考に、SSH2を使ったWordPressアップデートをセットアップする。
$ sudo aptitude install libssh2-ph $ sudo service apache2 restart
wp-config.phpを編集し、WordPressのアップデート情報入力を省略する。
$ vi /home/user01/public_html/wp-config.php
#file: wp-config.php
define('FTP_PUBKEY','/home/user01/.ssh/id_rsa.pub');
define('FTP_PRIKEY','/home/user01/.ssh/id_rsa');
define('FTP_USER','user01');
define('FTP_PASS','');
define('FTP_HOST','localhost:xxxx');




ディスカッション