WordPress日本語版をWindows Azureで動かし、さらにデータベースにSQL Azureを利用する方法を紹介します。
Windows Azure SDK for PHP WordPress scaffoldを利用してそれ日本語対応することで、Windows Azureの特徴を活かし、スケールアウトできる構成にします。
用意するもの
- WordPress日本語版
- SMTPに対応するWordPress Plugin
WP MAIL SMTPなど - Inter-Bridges Windows Azure SDK for PHP WordPress scaffold
※ WordPress.zipパッケージ - Inter-Bridges File System Durability Plugin
※ FileSystemDurabilityPlugin.zipパッケージ - Windows Azure SDK for PHP
- PHP 5.3以上
日本語対応の概要
- scaffolder runに追加で以下の引数を与える
- -DB_COLLATE=Japanese_CI_AS
- -WPLANG=ja
- WebRoleフォルダにWordPress日本語版を上書きコピーする
- SQL Azureへのアクセスを日本語対応するためにプログラムを修正する
- add_collation関数に日本語のCOLLATIONを追加
- 文字列リテラルを「N’~’」とするために、いくつかの処理を追加
セットアップ手順
前提として、Windows Azure ストレージ アカウントの作成、SQL Azureデータベースの作成が済んでいるものとします。
- PHP5.3以上をインストールします。
インストーラを利用しないでインストールした場合、php.exeのあるフォルダにPATHを通します。 - Windows Azure SDK for PHPをセットアップします。
適当なフォルダに解凍し、bin\scaffolderフォルダにPATHを通します。 - Inter-Bridges Windows Azure SDK for PHP WordPress scaffoldからWordPress.zipをダウンロードし、WordPress.pharを適当なフォルダに解凍します。
ここでは、C:\temp\WordPress.pharとしたものとします。 - プロジェクトを作成します。
コマンドプロンプトでscaffolderコマンドを実行してプロジェクトを作成します。scaffolder run -s="C:\temp\WordPress.phar" -out="C:\temp\WordPress" ^ -DB_NAME **** -DB_USER ****@**** -DB_PASSWORD **** ^ -DB_HOST ****.database.windows.net -sync_account **** -sync_key **** ^ -DB_COLLATE Japanese_CI_AS -WPLANG ja
- -s:PHPアーカイブファイル
- -out:プロジェクト出力先フォルダ
- -DB_NAME:SQL Azureデータベース名
- -DB_UESR:SQL Azureユーザ名
- -DB_PASSWORD:SQL Azureパスワード
- -DB_HOST:SQL Azureサーバー名(****.database.windows.net)
- -sync_account:Azure Storageアカウント名
- -sync_key:Azure Storageアクセスキー
- -DB_COLLATE:データベースの照合順序
- -WPLANG:WordPressで利用する言語
- 作成されたWebRoleフォルダにWordPress日本語版を上書きします。
- プログラムを修正します。
WebRole\wp-content\mu-plugins\wp-db-abstraction\translations\sqlsrv\translations.phpをWordPress on SQL Azure 1.1.0用 日本語対応 translations.phpに置き換えます。- add_collation関数に日本語のCOLLATIONを追加
- 文字列リテラルを「N’~’」とするために、update, insert, get_national関数を追加
最新のWP Db Abstractionを利用することで不要な作業となりました。
- SMTPプラグインを追加します。
WP MAIL SMTPなどをダウンロードし、wp-content\pluginsフォルダに解凍します。 - ServiceConfiguration.cscfgを編集します。
Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionStringの値をAzure Storageのアカウント名、アクセスキーに変更します。<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
↓
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=***;AccountKey=***==" />
- Inter-Bridges File System Durability Pluginのインストール
%ProgramFiles%\Windows Azure SDK\<YOUR VERSION>\bin\pluginsに解凍してできたフォルダをコピーします。 - パッケージを作成します。
コマンドプロンプトでpackageコマンドを実行します。package create -in="C:\temp\WordPress" -out="C:\temp" -dev=false
- Azure管理ポータルからデプロイします。
デプロイが完了するまで待ちます。 - Webブラウザでサイトにアクセスし、WordPressの初期設定をします。
- Windows Azure Storage for WordPress Pluginを設定します。
- WordPressの管理サイトのPluginsで有効化します。
- Settings – Windows AzureでAzure Storageを設定します。
Storage Account Name、Primary Access Keyを保存後、Default Storage Container、Use Windows Azure Storage for default Uploadを設定します。- Storage Account Name:Azure Storageのアカウント名
- Primary Access Key:Azure Storageアクセスキー
- Default Storage Container:メディアファイルを保存するコンテナ(Azure Blobにpublicコンテナを作成しておきます)
- Use Windows Azure Storage for default Upload:チェックします
- 日付フォーマットを修正します。
「年」「月」「日」が「?」と表示されてしまうので、[設定]-[一般]の日付フォーマットで修正します。 - SMTPプラグインを設定します。
WP MAIL SMTPなどで外部のSMTPサーバーを利用してメールを配信できるように設定します。
SMTPプラグインの設定は、それらのドキュメントに従ってください。
以上





[...] WordPress 日本語版を Windows Azure + SQL Azure で、動作させる方法です。 以下で解説されている手順どおりやれば動かせますが、メモもかねて。 WordPress日本語版 on Windows Azure & SQL Azure | Windows Maniax [...]
[...] WordPress日本語版 on Windows Azure & SQL Azure | Windows Maniax [...]