第1回WordPressお茶会@WordBench香川を開催しました

2011/11/19(土)にデザインラボラトリー蒼様をお借りして「第1回WordPerssお茶会@WordBench香川」を開催しました。

参加者8名(WordBench香川初参加5名、県外から参加2名、ディレクター、デザイナー、プログラマ、他業種の方)と第1回にしては幅広い層の方にお集まり頂きました。

今回はキックオフミーティング時の「次回はお茶会で」との意見からカフェをお借りしてのお茶会形式に、twitterでハンズオンやりたいと呟いたところ是非というお声を頂いたので初心者向けハンズオンを、ハンズオンだけだと場所・自分のキャパに無理があったので雑談も交えてというかたちとしてみました。


ダークサイド土井の図
photo by: style-design

初心者向けハンズオンはWindows・Mac環境でローカル環境を構築してWordPressをインストールしてなにかしよう (第1回WordPressお茶会 – WordBench香川 – INDEX) という内容だったのですが環境周りの準備不足によりWordPressインストールまだで精一杯という結果に・・・(イベント進行がグダグダになるのは想定済み)

また以下の流れから作成をお願いすることになったわぷーWordBench香川バージョンについても大方の意見が集約されましたので近いうちにお披露目できると思われます。

http://twitter.com/#!/show_web/status/136352519470333952

以下反省点・今後の課題で思いついたものをつらつらと箇条書きです。

  • ハンズオン組が多くなり過ぎたため、雑談組が少人数になってしまった。
  • ハンズオンだと1対2くらいが限界で御相手できない方が居たので申し訳なかったなと。
  • 主催者がMac初心者なのでトラブルに対応できない。
  • サポート役は数人必要(今回は参加者さんで詳しい方がいらっしゃったのでヘルプして頂きました)
  • 自前の無線LAN環境は必要。(WiMAXルータ安価で性能良いのないかな?)
  • ローカル環境構築というテーマで必要かなと思えるものを考えていったら初心者向けじゃなくなってた。
  • twitterハッシュタグ決めてたけどバタバタしすぎてツイートできず。
  • 参加者が10名超えるようなら会議室借りなきゃ厳しい。
  • 個人的には勉強会みたいなのじゃなくて少人数でわいわいと、というのが好きだけど今後はどうしていったらいいのだろうか。
  • WordPressはやれることが広いので次回ハンズオンはテーマを絞らなきゃ。

参加者の皆さん長時間のお付き合いありがとうございました。
また、場所を提供頂きましたデザインラボラトリー蒼様ありがとうございました。

次回WordBench香川は来年1月あたりに開催予定です。(いつもながら内容は未定ですので要望ありましたらコメントや@show_webよりお願いします)

第1回WordPressお茶会 – WordBench香川 – WordPressのインストール

ローカル環境が整ったのでWordPressをインストールしていきます。
今回はドキュメントルートの確認(Windows7 64bit環境 / Mac OS X 64bit環境)の項で作成した wbkagawa フォルダにWordPressをインストールしたいと思います。

WordPress本体の準備

WordPress | 日本語 サイトの「WordPress 3.2.1 をダウンロード .zip — 4.2 MB」(2011/11/15現在)よりWordPressをダウンロードして解凍してください。

展開された wordpress フォルダを wbkagawa フォルダへ移動させておいてください。

データベースの準備

WordPressはMySQLデータベースを必要とします。
XAMPP、MAMPは共にMySQL管理ツールphpMyAdminがインストールされているのでこちらを使用してデータベースを作成していきます。
phpMyAdminの場所は以下を参照ください。
(なおphpMyAdminのキャプチャ画面はXAMPPのphpMyAdmin3.4.5の為、MAMP環境では多少仕様が異なります。)

Windows7 64bit環境
Mac OS X 64bit環境

phpMyAdminのログイン画面が表示されるのでXAMPPのセキュリティで設定したMySQL rootパスワードを入力してください。
(Mac OS Xではログイン画面は表示されません。(ハンズオン時に説明予定))

phpMyAdminのホーム画面です。「データベース」よりデータベースを作成していきます。

「新規データベースを作成する」のテキストボックスにデータベース名(今回はwbkagawa)を入力して「作成」をクリック。

wbkagawaデータベースが作成されました。

WordPressのインストール

WordPress本体、データベースの準備が完了したのでWordPressをインストールしていきます。
http://localhost/wbkagawa/wordpress/ へアクセスして「設定ファイルを作成する」をクリック。

データベース関連の説明を一通り読んで「次に進みましょう!」をクリック。

「データベース名」は先程作成した”wbkagawa”。
「ユーザ名」はXAMPPの場合”root”、「パスワード」はセキュリティの項で設定したパスワード、MAMPの場合は「ユーザ名」「パスワード」共に”root”(MAMPのデフォルト設定です)。
(今回はローカル環境なのでroot権限にしていますが、本番環境では別途ユーザを作成、パスワードも推測し難いものを設定してください。)
「データベースのホスト名」と「テーブル接頭辞」はデフォルトのまま。

設定に間違えがあったりMySQLを起動してない場合以下のようなエラーが表示されるので再度設定を確認してください。

問題なければインストール準備完了となるので、「インストール実行」をクリック。

「ユーザ名」はデフォルトの”admin”以外の任意のユーザ名を入力。
「メールアドレス」に登録したアドレスに本来ならログインURL、ユーザ名、パスワードが届きますが今回はローカルでのメール送信設定を行なっていないため届きません。パスワードは後程必要となるので控えておいてください。
その他入力が完了したら「WordPressをインストール」をクリック。

以上でWordPressインストール完了です。「ログイン」をクリックしてログイン画面へ。

登録したユーザ名・パスワードを入力して「ログイン」。

第1回WordPressお茶会 – WordBench香川 – PHP環境設定

日本語などマルチバイト文字列関数設定の為にPHPの設定ファイルphp.iniを編集します。
各環境のphp.iniの場所及びPHPの設定一覧のURLは以下の通りです。

Windows7 64bit環境
c:¥xampp¥php¥php.ini
http://localhost/xampp/phpinfo.php
Mac OS X 64bit環境
/Applications/MAMP/bin/php/php5.3.6/conf/php.ini
(MAMP2.0.5にはPHP5.2.17とPHP5.3.6がインストールされていますが今回は5.3.6を使用します)
http://localhost/mamp/phpinfo.php

Windows用拡張モジュールについて

Windows7 64bit環境ではWindows用のマルチバイト文字列関数の拡張モジュールを必要としますのでphp.iniで “extension=php_mbstring.dll” を検索してコメントアウトされている場合はアンコメントしてください。(XAMPP1.7.7では既にアンコメントされていると思います。)
PHP: Windows 用 PHP 拡張モジュール – Manual

[php.ini](変更前)

<br />
;extension=php_mbstring.dll<br />

[php.ini](変更後)

<br />
extension=php_mbstring.dll<br />

マルチバイト文字列関数設定

では、マルチバイト文字列関数の設定を行なっていきます。
php.iniで [mbstring] を検索してください。

[php.ini]

<br />
	[mbstring]<br />
	; language for internal character representation.<br />
	; http://php.net/mbstring.language<br />
	;mbstring.language = Japanese</p>
<p>	; internal/script encoding.<br />
	; Some encoding cannot work as internal encoding.<br />
	; (e.g. SJIS, BIG5, ISO-2022-*)<br />
	; http://php.net/mbstring.internal-encoding<br />
	;mbstring.internal_encoding = EUC-JP</p>
<p>	; http input encoding.<br />
	; http://php.net/mbstring.http-input<br />
	;mbstring.http_input = auto</p>
<p>	; http output encoding. mb_output_handler must be<br />
	; registered as output buffer to function<br />
	; http://php.net/mbstring.http-output<br />
	;mbstring.http_output = SJIS</p>
<p>	; enable automatic encoding translation according to<br />
	; mbstring.internal_encoding setting. Input chars are<br />
	; converted to internal encoding by setting this to On.<br />
	; Note: Do _not_ use automatic encoding translation for<br />
	;       portable libs/applications.<br />
	; http://php.net/mbstring.encoding-translation<br />
	;mbstring.encoding_translation = Off</p>
<p>	; automatic encoding detection order.<br />
	; auto means<br />
	; http://php.net/mbstring.detect-order<br />
	;mbstring.detect_order = auto</p>
<p>	; substitute_character used when character cannot be converted<br />
	; one from another<br />
	; http://php.net/mbstring.substitute-character<br />
	;mbstring.substitute_character = none;</p>
<p>	; overload(replace) single byte functions by mbstring functions.<br />
	; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),<br />
	; etc. Possible values are 0,1,2,4 or combination of them.<br />
	; For example, 7 for overload everything.<br />
	; 0: No overload<br />
	; 1: Overload mail() function<br />
	; 2: Overload str*() functions<br />
	; 4: Overload ereg*() functions<br />
	; http://php.net/mbstring.func-overload<br />
	;mbstring.func_overload = 0</p>
<p>	; enable strict encoding detection.<br />
	;mbstring.strict_detection = Off</p>
<p>	; This directive specifies the regex pattern of content types for which mb_output_handler()<br />
	; is activated.<br />
	; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml)<br />
	;mbstring.http_output_conv_mimetype=</p>
<p>	; Allows to set script encoding. Only affects if PHP is compiled with --enable-zend-multibyte<br />
	; Default: &quot;&quot;<br />
	;mbstring.script_encoding=<br />
	

上記がXAMPP環境でのマルチバイト文字列関数の設定箇所となります。MAMP環境でも表記の違い等はありますが設定する項目は同様ですのでこちらをもとに設定を行なっていきます。
ハイライトされている行が設定する項目となります。各項目の詳細に関してはPHPマニュアル、参考サイトを御覧ください。

なお、デフォルトでのmbstringの設定を http://localhost/xampp/phpinfo.php より確認すると以下の通りとなっています。

ではphp.iniのmbstringの設定を編集していきます。

デフォルト言語を日本語に設定します。mbstring_languageをアンコメントします。

<br />
	;mbstring_language = Japanese<br />
	


<br />
	mbstring_language = Japanese<br />
	

内部文字エンコーディングのデフォルト値を”UTF-8″にします。

<br />
	;mbstring.internal_encoding = EUC-JP<br />
	


<br />
	mbstring.internal_encoding = UTF-8<br />
	

HTTP入出力文字エンコードのデフォルト値を”pass”にします。

<br />
	;mbstring.http_input = auto<br />
	;mbstring.http_output = auto<br />
	


<br />
	mbstring.http_input = pass<br />
	mbstring.http_output = pass<br />
	

HTTP入力エンコーディング変換を無効にします。

<br />
	;mbstring.encoding_translation = Off<br />
	


<br />
	mbstring.encoding_translation = Off<br />
	

文字コード検出順序のデフォルト値を定義します。”auto”だとASCII, JIS, UTF-8, EUC-JP, SJISの順序となるので指定しておきます。

<br />
	;mbstring.detect_order = auto<br />
	


<br />
	mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII<br />
	

無効な文字列があった場合の代替文字のデフォルト値を設定します。今回は”none”を指定します。

<br />
	;mbstring.substitute_character = none;<br />
	


<br />
	mbstring.substitute_character = none;<br />
	

シングルバイト対応の関数をマルチバイト対応関数でオーバーライド(置換)すると不具合が発生する可能性があるのでオフにします。
PHP: 関数のオーバーロード機能 – Manual

<br />
	;mbstring.func_overload = 0<br />
	


<br />
	mbstring.func_overload = 0<br />
	

文字コードの自動判別を厳密に行うかどうかの設定でメリット・デメリットがあるようですが今回は”Off”にします。

<br />
	;mbstring.strict_detection = Off<br />
	


<br />
	mbstring.strict_detection = Off<br />
	

以下2つに関しては今回は必要無いのでコメントのままとしておきます。

<br />
	;mbstring.http_output_conv_mimetype=<br />
	;mbstring.script_encoding=<br />
	

php.iniを上書きした後、Apacheを再起動して変更を反映させてください。
再度PHPの設定一覧よりmbstringの項目を見ると設定内容が反映されているのが確認できると思います。