win8room.net立ち上げ当初月額500円のレンタルサーバーを使っていたが、Wordpressインストール後プラグインを色々入れていたらすぐに500 Internal Server Errorが頻発するようになってしまった。マルチ言語対応のWPMLをインストールしたあたりから頻発するようになったが、不要なプラグインやキャッシュによる軽量化、メモリー設定の変更などを試してみるも500エラー発生は治まらず。このあたりが500円サーバーの限界の様だ。
どうしようも無い為、リソースに悩む必要がなさそうなさくらのVPSに乗り換える事にした。VPSはレンタルサーバーと異なり、仮想サーバーの器だけが提供されるため、OSのインストールからFTP、メール、Webの準備からメンテナンスまで自力でやる必要がある。レンタルサーバーであればサーバーの安定性の確保やセキュリティアップデートなどのメンテナンスは管理会社がやってくれるが、このあたり自力でやらないといけない。大変ではあるが、その分自分が好きな様に設定できCPUやメモリーのリソースも豊富に使える。筆者はメモリ2G CPU3コア使えるプランで契約した。200GBの容量もついて1,480円と、最近は安いものである。一度サーバー契約すると、後から別のプランに切り替える事は出来ない(ゼロからやり直しになる)ので注意しよう。
結論から言うと、サーバー移転してから500 Internal Server Errorは全くでなくなった。が、たまにサーバーが応答しなくなる(サーバー自体は生きているがhttpdやpostfixなどが応答しなくなる)事があり、試行錯誤中である。だが、自由度は高い。
さて、今回レンタルサーバーのWordpressをVPSに移植するまでの手順を説明していくが、実際は単なる引っ越しとは少し異なる。今回紹介する手順はレンタルサーバーのwin8room.netのwordpressをひな形としてprogramresource.netを立ち上げるまでの手順である。流れとしては引っ越し作業+別サーバーへの塗り直しになる。
参考サイトを元に筆者が行った設定を抜粋し詳細説明は省略しているので参考元サイトも見ておく事をお勧めする。
サーバー基本設定
参考にしたサイト:
http://www.coldsleep.jp/2012/07/13/vps/
http://www.public-t.info/note/sakura_vps-initialization/
サクラのVPS契約後、会員メニューの「契約情報」を見るとVPSが追加されているので、「サーバ設定」ボタンをクリックする。
VPSコントロールパネルに移動するので、仮想サーバ操作の「起動」をクリックしてサーバーを起動する。OSは既にインストールされた状態となっているので、デフォルトとは別のOSに入れ替えたい場合以外はそのまま使用すれば良い。
起動後、しばらくしてroot用パスワードがメールで送られてくる。筆者の場合パスワード発行のメールが届くまで20分ほどかかったので、気長に待とう。VPSコントロールパネルのパスワードも変更しておくと良い(サーバーのパスワードとは異なる)。
パスワードが発行されたら、VPSコントロールパネルの「リモートコンソール」を開く。ブラウザ上でコンソール画面が開くので、ここでrootログインする。後で操作ミスでTelnetが使えなくなった場合でもここからrootログインし操作する事は可能だ。
リモート操作準備
ログイン後、まずはrootのパスワードを変更しよう。
passwd
変更後、ブラウザ上のコンソールは使いづらいので、Telnet接続できるように設定する。テキストエディタはviを使う。VPSコントロールパネルのコンソールではvi編集時カーソルキーは使えないので、代わりにh,j,k,lを押してカーソル移動する。
viを使った事が無い人には操作がやや特殊なので慣れないと使いづらいが、大抵のLinux環境で使えるので覚えておくと役立つ。基本は閲覧モードで開始し「/xxxxx」で単語検索、「n」で次候補、「:##」で指定行へ移動、「i」で編集開始、「ESC」で閲覧モードへ戻る、「:wq」で書きこんで終了、「:q!」で編集内容破棄して終了だ。
sshの設定ファイルを編集し、以下の行を書き換える。/keyword で検索すると良い。
vi /etc/ssh/sshd_config
Port 1234 LoginGraceTime 20 PermitRootLogin no PermitEmptyPasswords no
ここで修正しているのはデフォルトのTelnetポート番号の変更、ログインタイムアウトの変更、rootユーザーでのログイン禁止、空パスワードでのログイン禁止と、セキュリティ用の設定である。
次に、Telnet経由でログインするためのユーザーを追加する。mamiは好みのユーザー名で。
adduser mami passwd mami
ユーザーを追加したらsshdを再起動して設定を有効にする
/etc/init.d/sshd restart
ここからTeraTermなどのsshd対応Telnetクライアントを使い接続し作業する。TeraTermで接続する際、TCPポート番号を先ほど設定したポート番号に変更して接続する。
ルート化制限
TeraTerm経由であればvi使用時カーソルキーやページUP/DOWNキー、マウスのホイールも使えるので作業が楽になる。
先ほど作成したユーザーでログイン後、操作のためrootユーザーに切り替える
su -
epelのレポジトリを外した後、システムの更新が必要か確認する。
vi /etc/yum.repos.d/epel.repo
6行目のenabledを変更する
enabled = 0
更新を確認する
yum upgrade
次に、システムがkernel panicを起こした場合に自動的に再起動する様設定する
vi /etc/sysctl.conf
最後に追加する
kernel.panic = 5
追加後、設定反映させて念のため再起動も実施。
/sbin/sysctl -p reboot
誰でもrootに権限変更(suやsudo)出来ない様にする。作成したユーザーをwheelグループに追加し、wheelグループのみroot権限実行できるようにする。
usermod -G wheel mami
設定ファイルの変更
vi /etc/pam.d/su
次の行のコメント(先頭の#)を外す
auth required pam_wheel.so use_uid
設定ファイルの変更
visudo
次の行のコメントを外す
%wheel ALL=(ALL) ALL
この後ファイヤーウォールの設定を行うが、説明が複雑なのでここのサイトの情報からここの設定を参考に。
ドメイン設定
ドメイン名を取得済みであれば、設定を行う。
vi /etc/sysconfig/network
ホスト名を設定。当然ホスト名は自分で取得したものを設定すること。
HOSTNAME=programresource.net
で、再起動。再起動後にコンソールのコマンド入力左側がホスト名に変わる。
reboot
筆者はバリュードメインでドメイン取得しているので、バリュードメインの設定を例に説明する。
ドメイン取得後、ドメイン一覧から「DNS」と「NS」の設定を行う。ドメインの右側にある「DNS」や「NS」をクリックする。
DNS設定では以下の設定を入力する。IPアドレスはサクラのVPSのIPアドレス。
a * 111.222.333.444 mx @ 10
NS設定ではネームサーバーの設定を行う。後でサクラのネームサーバー設定でネームサーバーの情報が出てくるので、それを記入する。
サクラの会員メニューに戻り、「契約情報」にある「ドメインメニュー」をクリックする
VPSと関連付けるドメイン名を登録する。
入力後ドメインリストに出てくるので、「ゾーン編集」をクリックする
関連付けるVPSのIPアドレスを設定する
これで設定完了。しばらく待つとドメイン名でサーバーにアクセスできるようになる。
ここに表示されているNSが、バリュードメインのNSに設定する値となるので、設定していない場合設定しておく。
WindowsやLinuxのコンソール画面で「nslookup ドメイン名」で関連付けされているIPが確認できるので、関連付けされるまで20分~数時間待機しよう。
これで初期設定は完了である。