WordPress日本語版 on Windows Azure & SQL Azure


WordPress日本語版をWindows Azureで動かし、さらにデータベースにSQL Azureを利用する方法を紹介します。
Windows Azure SDK for PHP WordPress scaffoldを利用してそれ日本語対応することで、Windows Azureの特徴を活かし、スケールアウトできる構成にします。
WordPress on Azure & SQL Azure構成図

用意するもの

日本語対応の概要

  • scaffolder runに追加で以下の引数を与える
    • -DB_COLLATE=Japanese_CI_AS
    • -WPLANG=ja
  • WebRoleフォルダにWordPress日本語版を上書きコピーする
  • SQL Azureへのアクセスを日本語対応するためにプログラムを修正する
    • add_collation関数に日本語のCOLLATIONを追加
    • 文字列リテラルを「N’~’」とするために、いくつかの処理を追加

セットアップ手順

How to deploy WordPress using the Windows Azure SDK for PHP WordPress scaffold」の手順に、日本語対応を加えます。
前提として、Windows Azure ストレージ アカウントの作成、SQL Azureデータベースの作成が済んでいるものとします。
  1. PHP5.3以上をインストールします。
    インストーラを利用しないでインストールした場合、php.exeのあるフォルダにPATHを通します。
  2. Windows Azure SDK for PHPをセットアップします。
    適当なフォルダに解凍し、bin\scaffolderフォルダにPATHを通します。
  3. Inter-Bridges Windows Azure SDK for PHP WordPress scaffoldからWordPress.zipをダウンロードし、WordPress.pharを適当なフォルダに解凍します。
    ここでは、C:\temp\WordPress.pharとしたものとします。
  4. プロジェクトを作成します。
    コマンドプロンプトで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で利用する言語
  5. 作成されたWebRoleフォルダにWordPress日本語版を上書きします。
  6. プログラムを修正します。
    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を利用することで不要な作業となりました。

  7. SMTPプラグインを追加します。
    WP MAIL SMTPなどをダウンロードし、wp-content\pluginsフォルダに解凍します。
  8. 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=***==" />
  9. Inter-Bridges File System Durability Pluginのインストール
    %ProgramFiles%\Windows Azure SDK\<YOUR VERSION>\bin\pluginsに解凍してできたフォルダをコピーします。
  10. パッケージを作成します。
    コマンドプロンプトでpackageコマンドを実行します。

    package create -in="C:\temp\WordPress" -out="C:\temp" -dev=false
  11. Azure管理ポータルからデプロイします。
    デプロイが完了するまで待ちます。
  12. Webブラウザでサイトにアクセスし、WordPressの初期設定をします。
  13. 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:チェックします
  14. 日付フォーマットを修正します。
    「年」「月」「日」が「?」と表示されてしまうので、[設定]-[一般]の日付フォーマットで修正します。
  15. SMTPプラグインを設定します。
    WP MAIL SMTPなどで外部のSMTPサーバーを利用してメールを配信できるように設定します。
    SMTPプラグインの設定は、それらのドキュメントに従ってください。
以上



コメント / トラックバック3件

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

  2. […] WordPress日本語版 on Windows Azure & SQL Azure | Windows Maniax […]

  3. […] 確かにWindows Maniaxでも取り上げられているし、多くの方が方法を公開していますよね。 […]

コメントをどうぞ