さくらの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');
ディスカッション