2018-10-28

phpbb掲示板を別サーバーに移行する

概要

オープンソースの掲示板phpbbをGMOのレンタルサーバーからさくらのレンタルサーバに移行した際の備忘録です。
※今回は、ほとんどの作業を各サービス(phpbb、さくら、お名前.com)が用意しているwebのUIから実行しています。

サーバー移行の理由:2012年頃に契約したGMOのレンタルサーバーを当時の料金のまま利用しており、サービス内容に対して割高になっていたため安価なサーバーに移行したい。
ついでにSSL対応したい。

結果:phpbb掲示板の移行は成功し、設置先のサーバーの月額料金を1700円から510円に削減できた。
SSL対応できた。

この記事の各見出し
  • さくらのレンタルサーバを契約
  • さくらのレンタルサーバにデータベースを作成
  • レンタルした新サーバにphpbbをインストール
  • phpbbバックアップファイルの取得と復元
  • 他社で管理中のドメインをサブドメインとして利用する
  • サブドメインのSSL証明書を発行
  • 旧サーバから新サーバへのリダイレクト設定
  • httpからhttpsへのリダイレクト設定

技術的な収穫
  • MySQLのみでUTF8との区別が行われる文字コードUTF8(utf8mb4)を知った。utf8mb4は4バイト文字を格納でき、絵文字に対応している。
  • ドメイン名とネームサーバの運用に触れることが出来た。
  • .htaccessのmod_rewriteを使ったリダイレクト設定

ここからは、実際の作業です。

さくらのレンタルサーバを契約

今回は自分で環境設定が必要なVPSではなく、既にPHPとDBMSがインストールされているレンタルサーバを契約しました。

さくらのレンタルサーバにデータベースを作成

サーバーコントロールパネルからログインします。
https://1.bp.blogspot.com/-TACEFKMwy3w/W9VxohB3wJI/AAAAAAAAHQM/6WbBjw9GXkkNqDlAZf9KnO5GYam52F7kgCLcBGAs/s1600/00_01.png
サーバーコントロールパネルから「データベースの設定」を選択します。
「データベースの新規作成」で、データベースバージョン、データベース ユーザー名、データベース名、接続用パスワードを入力し、データベース文字コードを選択します。絵文字を使用する場合はデーターベース文字コードはUTF8(utf8mb4)を選択します。

レンタルした新サーバにphpbbをインストール

phpbbの最新版をダウンロードし、解凍します。
WinSCPで新サーバに接続し、解凍したフォルダの中身を新サーバーの/home/(新サーバーのドメイン名)/www/phpbbにアップロードします。

「http://(新サーバーのドメイン名).sakura.ne.jp/phpbb/install」にアクセスし、phpbbのインストール画面から「INSTALL」タブを選択します。
「Install」ボタンをクリック後は、ナビゲーションにしたがってインストールしていきます。
Database configurationではさくらのサーバーコントロールパネルで設定した内容を入力します。
この画面が表示されると新サーバへのphpbbのインストールは終了です。
WinSCPで /home/(新サーバーのドメイン名)/www/phpbb/install フォルダを削除します。
「http://(新サーバーのドメイン名).sakura.ne.jp/phpbb/index.php」にアクセスすると、phpbbの最初のフォーラムが表示されます。

phpbbバックアップファイルの取得と復元

※旧サーバーのphpbbが最新バージョンでない場合は、バックアップファイル取得前にphpbbの最新版をダウンロードし、アップデートしておきます。phpbb3系のアップデート方法はこちら

旧サーバーのAdministration Control Panelからバックアップファイルをダウンロードします。
https://4.bp.blogspot.com/-qz8dTbBgp2Q/W9VyRS6z1nI/AAAAAAAAHRs/_CvUdop8H28blvf20vXPDeh5HwA5MAHgwCLcBGAs/s1600/21_%25E6%2597%25A7.png
WinSCPで /home/(新サーバーのドメイン名)/www/phpbb/sotreにバックアップファイルをアップロードします。

「http://(新サーバーのドメイン名).sakura.ne.jp/phpbb/index.php」の「Addministration Control Panel」リンクから管理人権限でログインします。
Addministration Control Panelで「MAINTENANCE」タブを選択します。

「MAINTENANCE」タブで画面左側の「DATABASE」メニューから「Restore」を選択します。

旧サーバのバックアップファイルが選択されている状態で、「Start restore」ボタンをクリックします。
確認画面で「Yes」ボタンをクリックします。
旧サーバのデータを使用した復元が終了しました。
「http://(新サーバーのドメイン名).sakura.ne.jp/phpbb/index.php」を表示すると、旧サーバのデータで復元されていることが確認できます。

他社で管理中のドメインをサブドメインとして利用する

今回は、「お名前.com」で管理しているドメインを「さくらのレンタルサーバ」のサブドメインとして使用します。
「お名前.com」の管理画面でサブドメインとして利用するドメイン名を選択します。
表示された画面の「ネームサーバー情報」領域で、「ネームサーバーの変更」をクリックします。
「ネームサーバーの選択」で「その他」タブを選択し、「ネームサーバー1」と「ネームサーバー2」にさくらのネームサーバー情報を設定し、確認ボタンをクリックします。
さくらのコントロールパネルのメニューで「ドメイン/SSL設定」をクリックします。
ドメイン一覧を表示し、「新しいドメインの追加」をクリックします。
「5.他者で取得したドメインを移管せずに使う」領域の「ドメインの追加へ進む」リンクをクリックします。
お名前.comで管理中のドメインを入力し、「送信する」ボタンをクリックします。
確認画面で「送信する」ボタンをクリックします。

サブドメインのSSL証明書を発行

サブドメインのSSL証明書の発行を行います。さくらのレンタルサーバで採用されている無料証明書はLet's Encryptです。
 https://2.bp.blogspot.com/-UyoVpUh7AMk/W9VyI9K4zsI/AAAAAAAAHRQ/irdeYSOd0Oo6BRwApd3J6AmCta6XgYG_QCLcBGAs/s1600/52_0_2.png
デフォルトの値で「送信」ボタンをクリックします。

旧サーバから新サーバへのリダイレクト設定

旧サーバphpbbのURL:http://(お名前.comで管理中のドメイン)/bbs
新サーバphpbbのURL:http://(お名前.comで管理中のドメイン)/phpbb

旧サーバと新サーバのphpbbのURLを比較すると、リダイレクト時に変換が必要な部分は、(お名前.comで管理中のドメイン)以下のディレクトリ名ですので、.httaccessに下記のように記載します。参考にしたのはこちらのサイトです。
RewriteEngine On
RewriteBase /
RewriteRule bbs/(.*) phpbb/$1 [R,L]

httpからhttpsへのリダイレクト設定

.httpaccessに下記を追記します。参考にしたのはこちらのサイトです。

RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


.httaccessを新サーバの/home/(新サーバーのドメイン名)/www/phpbb/install にアップロードします。

終わりに

以上で作業は終了です。旧サーバーから新サーバーへのphpbbの移行とSSL対応が終了しました。 Let's Encryptについては、今回はUIからの証明書発行でしたが次はVPSでコンソールからコマンドを叩いて実行してみようと思います。

No comments:

Post a Comment