FC2ブログ(オープンソース版)のインストール

先日、このようなニュースを見て驚きました。

FC2ブログ」ソースコードがオープンソースに

私は元FC2ブログユーザだったので、
使い勝手の良いFC2ブログが自前のサーバでも使える様になった事には大きな喜びを感じます。

早速、私もお試しに導入してみました。
拙いメモ書きですが、手順を記しておきます。

以下手順はFC2ブログのGitHubページのREADME.mdに基づいています。

必須環境は以下の通りです。

ソフトウェア
  apache
  PHP 5.2.17以上
  MySQL 5.1以上

また、私のテスト環境は以下の通りです。

マシン
  QNAP TS-869 Pro
OS
  Linux
ソフトウェア
  Apache 2.0
  PHP 5.3.26
  MySQL 5.1.36

ブログはドキュメントルートに置く事を前提としています。
サブディレクトリに置く方法についてはまだ調査中です。

1.fc2ブログのダウンロード
FC2ブログのGitHubリポジトリからソース一式を入手します。

以下のいずれかの方法で自前のサーバにソースを持ってきます。

・GITがインストールされている環境
リポジトリ(https://github.com/fc2blog/blog)からクローンを作成します。

mkdir 作業ディレクトリ/blog-master
cd 作業ディレクトリ/blog-master
git clone https://github.com/fc2blog/blog .

・GITがインストールされていない環境
GitHubのページにアクセスし、「Download ZIP」をクリックしてzipファイルをダウンロードします。

github-fc2blog

ダウンロードしたblog-master.zipをFTP等で作業ディレクトリに転送します。
転送したzipファイルを以下コマンドで解凍します。

cd 作業ディレクトリ
unzip blog-master.zip

2.アクセス制限
後述する手順でFC2Blogをインストールするとき、
SQL接続のユーザやパスワードが一時的に丸見えになってしまいます。

用心のため、外部に見られないようにアクセス制限をかけておきます。
制限方法は何でも構いません。
以下の例は、プライベートIPからのアクセスに限定する例です。

vi 作業ディレクトリ/blog-master/public/.htaccess

以下を末尾に追加。

order deny,allow
deny from all
allow from 192.168.0

3.公開ディレクトリへの配置
httpのドキュメントルート下にpublicディレクトリ一式、同階層にappディレクトリ一式を配置します。

cp -pr 作業ディレクトリ/blog-master/public/.* ドキュメントルート
cp -pr 作業ディレクトリ/blog-master/app ドキュメントルート/../

4.アクセス権の変更
以下フォルダのアクセス権を変更します。

chmod 777 ドキュメントルート/../app/temp
chmod 777 ドキュメントルート/uploads

5.データベースの作成
FC2ブログ用のデータベースを作成します。
データベースの作成方法は、各自のサーバをご確認ください。
MySQL 5.5.3未満の場合はutf8mb4の文字コードが使えないため、utf8で作成する必要があります。
ここでは、utf8で作成する方法に統一して手順を記していきます。

mysql -u DBユーザ名
mysql> CREATE DATABASE FC2Blog DEFAULT CHARACTER SET utf8;

6.config.phpの編集
ドキュメントルート/config.php.sampleをconfig.phpにリネームします。

mv ドキュメントルート/config.php.sample ドキュメントルート/config.php

config.phpファイルを開き、DBの情報、ドメイン、パスワードソルトを設定します。

<?php

//error_reporting(-1);
error_reporting(0);

// 直接呼び出された場合は終了
if (count(get_included_files())==1) {
  exit;
}

// DBの接続情報
define('DB_HOST',     'DBホスト名');          // dbのホスト名
define('DB_USER',     'DBユーザ名');          // dbのユーザー名
define('DB_PASSWORD', 'DBパスワード');        // dbのパスワード
define('DB_DATABASE', 'Fc2Blog');           // dbのデータベース名
define('DB_CHARSET',  'UTF8');              // MySQL 5.5未満の場合はUTF8を指定してください

// サーバーの設定情報
define('DOMAIN',        'サーバのドメイン');   // ドメイン名
define('PASSWORD_SALT', 'slWf3S5663FGhezxa'); // 適当な英数字を入力してください

// 設定クラス読み込み
define('WWW_DIR', dirname(__FILE__) . '/');
require(dirname(__FILE__) . '/../app/core/bootstrap.php');

7.FC2ブログのインストール
インストールページにアクセスし、すべてのチェックがOKになっていることを確認します。

http(s)://サーバホスト/admin/install.php

fc2blog-inst

チェックがOKの場合は緑、NGの場合は赤で表示されます。
NGが出たときはNG内容を確認し、前の手順を見直してみてください。

なお、私のサーバ環境では日本語のロケール設定が出来ないため
言語は「English」を選択しています。

すべてOKの場合は「Install」ボタンをクリックしてインストールを実行します。

fc2blog-inst2

インストールが正常終了すると、以下のような管理情報の登録画面が表示されます。

fc2blog-regist

8.管理情報の登録
ブログIDやパスワード、ブログ名などの管理情報を登録します。
一通り項目を入力したら、「Register」をクリックして登録を完了します。

fc2blog-regist2
fc2blog-instcomplete

9.ログイン
以下アドレスにアクセスします。

http(s)://サーバホスト/admin/index.php

前の手順で入力したブログIDとパスワードを入力し、「Login」をクリックします。

fc2blog-login

ログインに成功すると管理画面が表示されます。

fc2blog-admin

試しに、ブログ記事を投稿してみましょう。
「New article」をクリックし、適当な内容を書いて保存します。

fc2blog-newarticle
fc2blog-article
fc2blog-save

保存すると以下のように記事が追加されているのを確認できます。

fc2blog-saved

「Checking the blog」をクリックし、公開内容を確認してみましょう。

fc2blog-chkblog
fc2blog-view

上記の様に記事が反映されたら成功です。

10.インストールファイルの削除
インストールが完了したので、install.phpを削除します。

rm -f ドキュメントルート/admin/install.php

11.アクセス制限の解除
DBの情報を知られる手段が無くなったため、アクセス制限を解除します。

以下の記述を削除。

order deny,allow
deny from all
allow from 192.168.0

  ↓


これでブログが公開されました!

環境によっては若干手間が増えますが、
マニュアルと画面に従って作業を進めればすんなりとインストールできると思います。
WordPressを導入したことがある方なら、感覚はほぼ一緒だと思います。

まだ使って間もないですが、WordPressと使い勝手は大体同じだと思います。
FC2ブログに慣れ親しんだ人なら非常に使いやすいのではないでしょうか。

本家サービスのFC2ブログと比較すると、足跡やブロともなどの連携サービス機能がありません。
そのため、人様のFC2ブログにアクセスして足跡を残すというような事は出来ないようです。
上記機能をスパムに悪用されることを考えると致し方ない事だと思います。

今後もアップデートによって進化していくかもしれません。
WordPressのユーザが今後どれだけオープンソースのFC2ブログに乗り換えるのか気になるところですね。

■参考文献
FC2ブログ」ソースコードがオープンソースに
GitHub fc2blog / blog
10.1.10.6 The utf8mb4 Character Set (4-Byte UTF-8 Unicode Encoding)