1.設定ディレクティブに関する簡単な説明。

 mbstring.language ------------- mbstringで使用されるデフォルトの言語を設定。

 mbstring.encoding_translation - HTTPクエリに関して、入力文字エンコーディングの検出/変換を設定。

 mbstring.internal_encoding ---- デフォルトの内部文字エンコーディングを設定。mbstring.language の後に置く必要がある。

 mbstring.http_input ----------- デフォルトのHTTP入力文字エンコーディングを設定。

 mbstring.http_output ---------- デフォルトのHTTP出力文字エンコーディングを設定。

 mbstring.detect_order --------- デフォルトの文字エンコーディング検出順序を設定。

 mbstring.substitute_character - 無効な文字を代替するデフォルト文字を設定。

 mbstring.func_overload -------- シングルバイト対応の関数をmbstring関数の対応する関数で置換(オーバーロード)。

 mbstring.strict_detection ----- 厳密なエンコーディング検出を行う。


2.EUC-JPユーザ用のphp.ini設定例

output_buffering              = Off    ; 出力バッファリングを無効に設定
default_charset               = EUC-JP ; HTTPヘッダの文字コードセットを設定

[mbstring]
mbstring.language             = Japanese
mbstring.encoding_translation = On
mbstring.http_input           = auto
mbstring.http_output          = EUC-JP
mbstring.internal_encoding    = EUC-JP
mbstring.substitute_character = none


3.SJISユーザ用のphp.ini設定例

output_buffering              = On                ; 出力バッファリングを有効に設定
output_handler                = mb_output_handler ; 出力文字エンコーディングの変換バッファを設定
default_charset               = Shift_JIS         ; HTTPヘッダの文字コードセットを設定

[mbstring]
mbstring.language             = Japanese
mbstring.encoding_translation = On
mbstring.http_input           = auto
mbstring.http_output          = SJIS
mbstring.internal_encoding    = EUC-JP
mbstring.substitute_character = none

PHPで拡張モジュールを利用するには、php.ini の設定を使用してPHP起動時にロードするか、スクリプトの中で dl() 関数を使用して動的にロードするかの2種類があります。

ここでは、php.ini を使ってmbstring拡張モジュールをロードします。

PHP拡張モジュールのDLLには、ファイル名の前に 'php_' が付いています。

ダウンロードしたzipファイルには、PHP設定ファイル php.ini のサンプルとして php.ini-dist と php.ini-recommended の2つが含まれています。パフォーマンスとセキュリティの観点から最適化された初期設定がなされているので、php.ini-recommended の使用が推奨されています。(php.ini-recommended をコピーして、php.ini とファイル名を変更して使用)


1.拡張モジュールが存在するフォルダを指定

 (ファイル名を変更した)php.ini の542行目を

 extension_dir = "./"
    ↓
 extension_dir = "c:\php\ext"

 に変更。


2.mbstring拡張モジュールのロードを指定

 php.ini の674行目を

 ;extension=php_mbstring.dll
    ↓
 extension=php_mbstring.dll

 に変更(行頭の';'を削除)。


これで、マルチバイト文字列関数が利用できるようになります。


3.動作確認用スクリプトの作成

 以下の内容を、Apacheサーバーの「htdocs」フォルダに、適当なファイル名(例えば、mbtest.php)で保存します。
 (デフォルトでは、C:\Program Files\Apache Software Foundation\Apache2.2\htdocs)

 尚、PHPスクリプトの文字エンコード、ブラウザの表示エンコードともにUTF-8として下さい。

    <html>
    <head><title>PHP-MBSTRING TEST</title></head>
    <body>

    <?php
    mb_internal_encoding("UTF-8");

    echo mb_internal_encoding();
    echo '<br />文字列の長さは:'.mb_strlen("あいうえお");
    ?>

    </body>
    </html>


4.mbstring拡張モジュールの動作確認

 ブラウザを立ち上げて、アドレス欄に「http://localhost/mbtest.php」と入力、リターンキー押下で、

 UTF-8
  文字列の長さは:5 と表示されたら、動作OKです。


注)PHPをサーバモジュールとして実行している場合は、Webサーバを再起動しないと、php.ini の設定が反映されません。Webサーバを忘れずに再起動して下さい。

・現状のPHPでは、文字列は「シングルバイト文字」として実装されており、日本語のような「マルチバイト文字」の処理(=文字単位)には適していません。

 日本語処理は、漢字など多くの文字を表現する必要があるため、マルチバイト文字を使用して文字単位で扱えるようにする必要があります。しかも、プラットフォームや使用目的によって、複数の文字エンコーディングが存在します。(通常の利用では2バイトで日本語表現が可能ですが、EUC-JPの場合は2~3バイト、UTF-8の場合は最大6バイトが必要となることがあります)

・Webアプリケーションで日本語を正しく処理するためには、適切な文字エンコーディングを使用しなければなりません。

 1.ブラウザから送信されるデータ(HTTP入力文字エンコーディング)
 2.PHP内部文字エンコーディング
 3.PHPスクリプト文字エンコーディング
 4.DBクライアント文字エンコーディング
 5.ブラウザに送信するデータ(HTTP出力文字エンコーディング)
 6.メール送信するデータ文字エンコーディング
 など。


・PHP本体にはマルチバイト文字を正しく処理する機能はありませんが、mbstring拡張モジュールが、マルチバイト文字列処理を実行するための文字列関数を提供します。

・PHP5では日本語の場合、内部文字エンコーディングは、EUC-JP、UTF-8等が利用できます。PHPスクリプト文字エンコーディングは、Shift-JISを避け、EUC-JPかUTF-8を使用するのが安全です。


・PHP6では内部文字エンコーディングがUTF-16になると発表されていますので、今後、スクリプトを記述する際には、Unicode(UTF-16、UTF-8)を使うのが良いかもしれません。

PHP5をWindows上のApache2.2.xのモジュール版として動作させるには、httpd.conf を編集してApacheがPHPを利用できるようにした後、Apacheサーバを再起動する必要があります。


1.Apache設定ファイル「httpd.conf」の編集

 Apache2.2.xのモジュール版を使用する場合は、以下の行を httpd.conf の最後へ追加して下さい。

    LoadModule php5_module "c:/php/php5apache2_2.dll"
    AddType application/x-httpd-php .php


2.動作確認用スクリプトの作成

 以下の内容を、Apacheサーバーの「htdocs」フォルダに、適当なファイル名(例えば、test.php)で保存します。
 (デフォルトでは、C:\Program Files\Apache Software Foundation\Apache2.2\htdocs)

    <html>
    <head><title>PHP TEST</title></head>
    <body>

    <?php phpinfo() ?>

    </body>
    </html>


3.サーバーモジュール版PHPの動作確認

 ブラウザを立ち上げて、アドレス欄に「http://localhost/test.php」と入力、リターンキー押下で、

 PHP情報が表示されたら、動作OKです。

PHP5をWindows上のApache2.2.xでCGI版として動作させるには、httpd.conf を編集してApacheがPHPを利用できるようにした後、Apacheサーバを再起動する必要があります。


1.Apache設定ファイル「httpd.conf」の編集

 CGI版のバイナリを使用する場合は、以下の行を httpd.conf の最後へ追加して下さい。

    ScriptAlias /php/ "c:/php/"
    AddType application/x-httpd-php .php
    Action application/x-httpd-php "/php/php-cgi.exe"


2.動作確認用スクリプトの作成

 以下の内容を、Apacheサーバーの「cgi-bin」フォルダに、適当なファイル名(例えば、cgitest.php)で保存します。
 (デフォルトでは、C:\Program Files\Apache Software Foundation\Apache2.2\cgi-bin)

    #!c:/php/php
    <?php
      echo "Content-type: text/html\n\n";

      echo '<html>
      <head><title>PHP-CGI TEST</title></head>
      <body>';

      echo "Hello World\n\n";

      echo '</body>
      </html>';

     ?>


3.CGI版PHPの動作確認

 ブラウザを立ち上げて、アドレス欄に「http://localhost/cgi-bin/cgitest.php」と入力、リターンキー押下で、

 Hello World と表示されたら、動作OKです。

PHPをWindowsシステムにインストールするのには、手動(手作業)とインストーラによるインストールの2種類があり、PHP5.2以降では、インストーラーはMSI形式となりました。

ここでは、Windows2000に手動でPHPをインストールします。


1.PHPファイルのダウンロード

 最初に、phpのWebページで、PHP5の最新版を確認します。

 2009年3月26日現在、最新の安定版は、PHP5.2.9です。

 「Current PHP 5 Stable: 5.2.9」をクリックします。


 ダウンロードページが表示されますので、

 「PHP 5.2.9-1 zip package」をクリックします。


 ミラーサイトページが表示されますので、

 「jp.php.net」か「jp2.php.net」をクリックして、zipバイナリアーカイブをダウンロードします。


 「ファイルのダウンロード」ダイアログボックスが表示されますので、

 「保存」ボタンをクリックして、適当なフォルダ(例えば、C:¥)にアーカイブを保存します。


2.PHPファイルの展開

 ダウンロードファイルを展開すると、zipパッケージは次のように、「php-5.2.9-1-Win32」のようなフォルダ名で展開されます。

 「C:\」に保存後、ファイルを展開して、「C:\PHP」のようにフォルダ名を変更すると良いでしょう。


3.ファイル構成

 展開されたファイル構成は、次のようになります。

 CGI実行ファイル、CLI実行ファイル、サーバモジュールなどがあります。


4.環境変数の設定

 4-1.CGI実行ファイル、CLI実行ファイル、サーバモジュールのいずれも「php5ts.dll」を必要としますので、PHPフォルダ(C:\PHP)をPATH環境変数に登録して、php5ts.dll を有効にします。

 「マイ コンピュータ」を右クリックして、「プロパティ」をクリックすると「システムのプロパティ」ダイアログボックスが表示されますので、「詳細」タブを選択して、「環境変数」ボタンをクリックします。


 「環境変数」ダイアログボックスが表示されますので、

 システム環境変数の「Path」を選択して、「編集」ボタンをクリックします。


 「システム変数の編集」ダイアログボックスが表示されますので、

 変数値の最後に、「;C:\PHP」を追加して、「OK」ボタンをクリックします。


 4-2.PHPが設定ファイル「php.ini」にアクセスできるように、php.ini が存在するフォルダ(C:\PHP)を変数名「PHPRC」に登録します。

 「環境変数」のダイアログボックスで、システム環境変数の「新規」ボタンをクリックすると、


 「新しいシステム変数」ダイアログボックスが表示されますので、

 変数名に「PHPRC」、変数値に「C:\PHP」を追加して、「OK」ボタンをクリックします。


5.PHPの動作確認

 コマンドプロンプトを開いて、「php -r "echo 'Hello World';"」と入力、リターンキー押下で、

 Hello World と表示されたら、インストール完了です。

MovableType4.2のウィジェット機能を利用して、サイドバーに「お気に入りリンク」のウィジェットを追加作成します。

1.ウィジェット機能の表示と確認

 ブログメニューの [デザイン]で [ウィジェット]をクリックします。


 次のウィジェット画面が表示されます。


 ウィジェットには、ウィジェットセットとウィジェットテンプレートの2つの機能があります。

 ウィジェットセットは、現在サイドバーに表示されているウィジェット(=パーツ)がインストール済みとして確認できます。
 ウィジェットテンプレートには、サイドバーに表示可能なウィジェットが並んでいます。

 サイドバーに表示可能なリンクのウィジェットが在りませんので、作成するために、
 [ウィジェットテンプレートを作成]をクリックします。


2.お気に入りリンクのウィジェットを作成

 次のウィジェットを作成画面が表示されますので、


 テンプレート名と、
 ウィジェットの内容を入力して、

 <div class="widget-favorite widget">
     <h3 class="widget-header">お気に入りリンク</h3>
     <div class="widget-content">
         <ul>
             <li><a href="http://favorite-site-url/">サイトのタイトル</a></li>
         </ul>
     </div>
 </div>

 [保存]ボタンをクリックします。

 ウィジェット画面に戻り、


 ウィジェットテンプレートに「お気に入りリンク」のウィジェットが在ることを確認し、
 [2カラムのサイドバー]リンクをクリックします。


3.ウィジェットセットの編集機能の表示と確認

 次のウィジェットセットの編集画面が表示されます。


 インストール済みの一覧は、現在サイドバーに表示されているウィジェット群です。
 利用可能の一覧は、ドラッグ&ドロップで、サイドバーに表示できるウィジェット群です。

 各ウィジェットは、ドラッグ&ドロップの操作で、サイドバーへの追加と削除が可能です。


4.お気に入りリンクをサイドバーに追加

 次のウィジェットセットの編集画面のように、


 「お気に入りリンク」のウィジェットをインストール済みの好みの位置へ、ドラッグ&ドロップして追加し、
 [変更を保存]ボタンをクリックします。


再構築を忘れずに実行してください。

これで、サイドバーに「お気に入りリンク」が表示されることになります。

MovableType4.1から、サイドバーの内容管理をウィジェット機能で行うように変更されました。
この機能変更により、デフォルトテンプレート (既定ブログ) に若干の変更があります。


シックスアパート社のドキュメントによると、

MovableType4.0xからアップグレードして、MovableType4.1 のデフォルトテンプレート (既定ブログ) へ入れ替えを行った場合、ウィジェットセットを3つ作成する必要があるようです。

操作手順:

 1.ブログメニューの [デザイン]で [ウィジェットセット]を選択
 2.[ウィジェットセットの作成] をクリックし、新規ウィジェットセット作成画面に移動
 3.[セット名] にウィジェットセット名を入力

作成ウィジェットセット(セット名は以下のものを設定):
 ・2カラムのサイドバーの場合:         2カラムのサイドバー
 ・3カラムのサイドバー(サブ)の場合:   3カラムのサイドバー(サブ)
 ・3カラムのサイドバー(メイン)の場合: 3カラムのサイドバー(メイン)


ウィジェット機能を利用すると、サイドバーの内容を「ドラッグ&ドロップ」で簡単に変更可能で、「ウィジェットテンプレート」を追加作成することで、サイドバーの内容を拡張することも可能です。

VC++ 2008 Standard EditionとVB 2008 Standard Editionの同一システムへのインストールは出来ないのでしょうか?


確認1.
 ・Visual C++インストール後

 ・Visual Basic
 ・SQL Server 2005 Express Edition

 を追加インストールしたところ、C++のコンパイルが出来なくなりました。

確認2.
 ・Visual C++インストール後

 ・Visual Basic

 の追加インストールでも、C++のコンパイルが出来ません。

確認3.
 ・Visual Basic
 ・Visual C++インストール

 の同時インストールでも、C++のコンパイルは出来ませんでした。


もしかすると(自分が無知なだけ?)、VC++とVBの共存は出来ず、VBが優先されるのかもしれません。

一旦、ハードディスクをVC++ 2008 Standard Editionをインストールする前の状態に戻し、再度インストールを行いました。

何故か、今度は上手くいったようです。

「cl.exe」のインストール位置を確認したところ、

 C:\Program Files\Microsoft Visual Studio 9.0\VC\bin
 C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\x86_amd64
 C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\amd64

の3フォルダに、それぞれ存在しているようですが、勿論、ビルドに利用するのは、VC¥bin内にある「cl.exe」です。


今回のインストール項目選択は、

 ・Visual C++


前回のインストール項目選択は、

 ・Visual Web Developer

 ・Visual Basic
 ・Visual C++

 ・SQL Server 2005 Express Edition


まさかとは思いますが、前回のインストール時には、Microsoft Updateで

 ・Office 2007 Service Pack 1

をいれたのですが。

何がいけなかったのでしょうか?