VirtualBox4.04にCentOS5.5をインストール

webアプリケーションのテストなどをする環境として、VirtualBoxCentOSをインストールしてみようと思います。
そのうち、さくらのVPSでwebアプリケーションを公開しようと思ってまして、メモリ容量やOSなど出来るだけさくらのVPSに近づけました。

ISOファイルのダウンロード

以下からダウンロード。

インストール環境の設定

VirtualBoxVMを新規作成。

メモリ 512MB
HD容量 20GB
OS CentOS5.5

インストール

一般ユーザの作成

rootでログインをしたら、一般ユーザを作成。

[root@webtest ~]# useradd sdhr
[root@webtest ~]# passwd sdhr
Changing password for user sdhr.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

ゲストOSにsshで接続できるように設定(ポートフォワーディング)

名前 ssh
ホストポート 10022
ゲストポート 22
  • Tera Termの「新しい接続」で以下のように指定してログイン確認。
ホスト 127.0.0.1
TCPポート# 10022

はてなダイアリーにGoogle Analyticsを設定

せっかくはてなダイアリーを始めたので、Google Analyticsを設定しました。

Google Analytics

Google Analyticsのアカウントは既に持っていたので、

プロファイルを追加»

から「新しいドメインのプロファイルを追加」。

はてなダイアリー
「管理」→「設定」→「外部サービス連携」→「Google Analytics 設定」

で、新しく作ったプロファイルのID(UA-XXXXXX-X)を入力して保存。


このように設定すると、はてなダイアリーの記事のソースコード最下行あたりに以下のようなjavascriptコードが埋めこまれているのを確認できます。

<script type="text/javascript"> 
 
  var _gaq = _gaq || [];
  _gaq.push(
  ['_setAccount', 'UA-441387-31'],
  ['_trackPageview'],
  ['b._setAccount', 'UA-7855606-1'],
  ['b._setDomainName', '.hatena.ne.jp'],
  ['b._trackPageview']
  ,['c._setAccount', 'UA-21092204-2'],
  ['c._trackPageview']
  );
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
 
</script>

Google Analyticsのホーム画面でステータス列に黄色いマーク(トラッキングコードがインストールされていません)が表示されてるけど、明日になればデータ受信してくれてるでしょうか?

movable typeからはてなダイアリーへの引越し

さくらのレンタルサーバで使ってたmovable typeからはてなダイアリーへ、記事を引越ししました。

movable type側でエクスポート
「ツール」→「記事のエクスポート」→「ブログをエクスポート」

でtxtファイルをエクスポート。

はてなダイアリー側でインポート
「管理」→「データ管理」→「インポート/エクスポート」→「ブログのインポート」

で出力されたtxtファイルをインポート。

日記の読み込みを開始しました。この処理は数十分かかる事があります。
※ブラウザを閉じていただいても構いません。読み込みは継続されます。
※読み込みが終わるまでログアウトしないでください。

と表示されるので、しばらく待てばインポート完了です。

さくらのMySQLにPDOでUTF-8のデータを挿入する

サーバコントロールパネルの「PHP設定の編集」 → 「php.iniファイルパス」に以下を追加。

mbstring.encoding_translation = Off
mbstring.internal_encoding = "UTF-8″
mbstring.http_input = auto
mbstring.http_output = "UTF-8″
  • phpMyAdminホームの「MySQL接続の照合順序」を「utf8_general_ci」に変更。
  • phpMyAdminホームのサイドメニューから該当するデータベースを選択 → サイドメニューから該当するテーブルを選択 → 上のタブから「操作」 → 「照合順序」を「utf8_general_ci」に変更。
  • 上のタブから「構造」 → 該当するカラムにチェック → 鉛筆マークの「変更」 → 「照合順序」を「utf8_general_ci」に変更。

これだけではMySQLの文字化けがおさまらなかったので、PHPソースのPDOを使用する箇所に以下を追加。

$pdo->query("SET NAMES utf8;");

これで文字化けはおさまりました。

PHPとBOM付きUTF-8

UTF-8のテキストファイルには、頭にBOM(Byte Order Mark)と呼ばれる、Little EndianかBig Endianかを区別するためのバイト列が付けられる形式と付けられない形式が存在するようです。
前者はBOM付きUTF-8、後者はBOM無しUTF-8(UTF-8n)と呼ばれます。

PHPファイルにBOM付きUTF-8を使用すると、うまく動作しない場合があるみたいです。
Windowsのメモ帳でUTF-8としてファイルを作成すると、BOM付きUTF-8になってしまうので注意が必要です。