CMS設定関係の最近のブログ記事

既存環境

  • DB文字セット:EUC-JP
  • PublishCharSet:Shift-JIS
  • MySQL:4.0系

移管後環境

  • DB文字セット:EUC-JP
  • PublishCharSet:UTF-8
  • MySQL:4.0系

作業手順

  1. phpMyAdminにてSQLファイルにてバックアップを作成
  2. English iso-8559-1にて実行
  3. ダウンロードしたファイルのテーブルデータが目視判読可能な事を確認(今回はShft-JISにて判読可能)
  4. ファイルをUTF-8(BOM無し)に変換、改行は念のためLFのみに変換
  5. ¥’を検索し、全て’へと置換する
  6. 別表の文字もエスケープしている¥を削除する
    (文字¥を文字へエディタやスクリプトで変換するのが効率良い)
  7. phpMyAdminにUTF-8でログイン
  8. DB内のテーブルを全てdrop
  9. DBの照会順序を変更(既にujis_japanee_ciの場合は不要)
    ALTER DATABASE `DB名` DEFAULT CHARACTER SET ujis COLLATE ujis_japanese_ci
  10. 修正済みのSQLファイルをインポート
  11. MovableTypeのmt-config.cgiにてPublishCharSetをUTF-8に変更
  12. mt.cgiにログインし、文字化けが無いことを確認
  13. 再構築が正常に行われることを確認
  14. 出力結果が全てUTF-8であることを確認
  15. 終了

エスケープされている文字の一覧

文字コード
81 5C
83 5C
Ы 84 5C
87 5C
89 5C
8A 5C
8B 5C
8C 5C
8D 5C
8E 5C
文字コード
8F 5C
90 5C
91 5C
92 5C
93 5C
94 5C
95 5C
96 5C
97 5C
98 5C
文字コード
99 5C
9A 5C
9B 5C
9C 5C
9D 5C
9E 5C
9F 5C
E0 5C
E1 5C
E2 5C
文字コード
E3 5C
E4 5C
E5 5C
E6 5C
E7 5C
E8 5C
E9 5C
EA 5C
ED 5C
EE 5C

参考サイト
風柳亭 - 別館:書庫のある庵 -:blog_ajax_json_search.jsにパッチ:コメントも含めて検索
暴想:ココログプロとかTypepadとかMTとかブログ人とかその他のブログサービスとかでもAjaxでバックナンバーを検索するJavaScript

●以下をまず入手(prototype.jsはともかく、blog_ajax_json_search.jsはDigicloにより改変されています)

prototype.js

blog_ajax_json_search.js

●検索用データを抽出するテンプレートを作成

インデックステンプレートとして新規に検索データ抽出を作成、出力ファイル名はsearch_data.txtとして以下の内容で作成。インデックステンプレートに連動して再構築をする設定とすること。

 <?xml version="1.0" encoding="utf8"?>
{
data:[
<MTEntries all="1">{
title:"<$MTEntryTitle remove_html="1" encode_js="1"$>"
,link:"<$MTEntryLink$>"
,body:"<$MTEntryBody remove_html="1" encode_js="1"$><$MTEntryMore remove_html="1" encode_js="1"$><MTComments>【<$MTCommentAuthor remove_html="1" encode_js="1"$>】<$MTCommentBody remove_html="1" encode_js="1"$></MTComments>"
},</MTEntries>
{title:"",link:"",body:""}
]
}

●呼び出し用検索窓作成

<script type="text/javascript" src="<$MTBlogURL$>prototype.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>blog_ajax_json_search.js"></script>
<form action="javascript:blogAjaxJsonSearch( '<$MTBlogURL$>search_data.txt', document.getElementById('search_box').value );">
<input type="text" id="search_box" value="" />
<input type="button" id="search_button" onclick="javascript:blogAjaxJsonSearch( '<$MTBlogURL$>search_data.txt', document.getElementById('search_box').value );" onkeypress="javascript:blogAjaxJsonSearch( '<$MTBlogURL$>search_data.txt', document.getElementById('search_box').value );" value="検索" />
</form>

●表示領域の作成
各テンプレートの任意の表示したい位置を<div class="result"></div>で囲む。

サイトを再構築することで利用可能となる。

注意点

エントリーを追加した後、search_data.txtを再構築しなければ検索に反映しないので注意。

要注意 

同一プラグインでバージョン違いにより、ファイル名が異なる場合や、新バージョンを試すにあたって旧バージョンをリネームしてサーバ上に残しておく場合など、同目的のプラグインを複数インストールするとmt.cgiがスクリプトエラーを起こすケースを確認。

その場合、エラー発生時点から遡り、最後にインストールしたプラグインを一端サーバから削除することでmt.cgiのエラーは回避できる。

その後、競合する物を削除する、あるいは利用停止にした上で新たにプラグインをインストールするとエラーは発生しない。

追加研究要

さくらインターネットの専用サーバやKK-NETのレンタルサーバでは発生していないので、apacheや.htaccessでの設定の差異に影響されるらしい。

 

1)サーバのpublic_htmlと並列ディレクトリとしてopenpneを作成。このディレクトリをOPENPNE_DIRとする。

2)OpenPNE/public_htmlの内容をアップロードしたディレクトリからOPENPNE_DIRまでの相対パスをconfig.inc.phpに記述。

3)config.inc.phpがあるディレクトリ内に以下を.htaccessとして記述。

php_value default_charset UTF-8
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.detect_order auto
php_value mbstring.substitute_character none
php_value mbstring.func_overload 0
php_flag mbstring.encoding_translation Off

4)OPENPNE_DIR/setup/sql/install/にある、install-(Ver)-create_tables-mysql(ver).sqlとinstall-(Ver)-insert_data.sqlをエディタで開き、EUC-JPとして保存する。

5)XREAコントロールパネルよりデータベースにてphpMyAdminを呼び出し、インストールするDBに対し、SQLメニューから4)で修正したsql文をcreate_tables、insert_dataを順次実行する。

6)OPENPNE_URL/?m=setupよりセットアップを実行

管理画面及びSNS画面が正常に表示されればインストール成功。

xrea+での契約の場合、DBは5個まで作成可能なので別DBにて運営するのであれば5本のOpenPNEをインストールし別々のドメインにて運用可能である。

DBを1つの場合、sql及びDBアクセスに関わる全ての記述を修正し、テーブル名にprefixをつけることで複数の共存が可能。

2007-02-07追記

safeモードでphpが動いているので、config.phpの341行目を

define('MAIL_SET_ENVFROM', false);

とfalseに修正する。これを行わないとOpnePNEからメール送信が行えない。

FreeBSDのサーバにMovableTypeをインストールする前にmt-check.cgiを実行すると不足していると指摘されるモジュールがいくつか存在した場合の作業。

FreeBSDサーバに現在実行パスとして/usr/local/bin/perlとして5.8.0系がインストールされている状態で以下をまず実行

perl -MCPAN -e shell

CPANのミラーサイト指定をasia>japan>最寄りサーバにする以外は全てデフォルトでOK。

その後、CPANのプロンプトより

install HTML::Entities

などと言った形で不足しているperlモジュールを追加でインストールしていく。この場合、圧縮ファイルのダウンロードとmake、コンパイルが実行されるので物によってはかなり時間が掛かる事に注意。

XREAにて、Movable Type 3.33-jaを導入する場合の注意点

  • XREAのユーザ名に"-"が含まれるとMySQLが使えないので申し込みの際に注意すること。 
  • mt-check.cgi単体では動かない。
  • Movable Type 3.33-jaの全ファイルをアップロードしておく必要あり。
  • mt-config.cgiが無い場合、mt-check.cgiもmt-wizard.cgiも正常に動作しない。
  • MySQLのエンコードはEUC-JPを強く推奨。
  • cgiのパーミッションは全て700。755ではないので注意。
  • StyleCatcher用のthemesや画像のアップロード等のディレクトリのパーミッションを707にする必要あり。777ではない。
  • mt-config.cgiが必須。
  • ◆広告自動挿入対策が必要。public_html直下にインストールすると広告の自動挿入が行われる。よって、広告回避用のxディレクトリを作成しておき、そこへMovable Type 3.33-ja.zipを解凍してアップロードする。
  • コントロールパネルからMySQLでDBを作成しておく。
  • mt-check.cgiの実行前に初期設定が必要。

mt-config.cgiを以下の内容で作成しておく。

CGIPath http://ユーザ名.サーバ番号.xrea.com/x/

ObjectDriver DBI::mysql
Database ユーザ名
DBUser ユーザ名
DBPassword パスワード
DBHost localhost

Apacheがsuexecで稼働する為マスクを設定

DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022

文字コードを設定

PublishCharset EUC-JP


上記内容でmt-config.cgiを作成したら、パーミッションを604にしておく。 
  • mt-check.cgiで動作を確認(しなくてもOK)。そこいらのレンタルサーバよりもインストール済みのモジュールは充実してます。
  • 以下へのアクセスによりインストール開始。

http://ユーザ名.サーバ番号.xrea.com/x/index.html

  • 初期設定を実施し、再構築を行う。ダイナミックパブリッシングを行う場合、自動生成されるtemplates_cのパーミッションを707にしておく。
  • 再構築後に表示を確認し、正常ならインストールは成功。
  • 広告の手動挿入処理。XREAのコントロールパネルの広告HTMLより広告挿入用のJavaScriptをコピーし、インデックステンプレートのメインページ、アーカイブページ、アーカイブテンプレートの全て、システムテンプレートの検索結果の</body>の直前に追加。

この場合、モジュールテンプレートに新規として"xrea-ad"を作成し、その中にJavaScriptをコピー。各テンプレートの</body>の直前に

<$MTInclude module="xrea-ad"$>

といった形で設置し再構築すると手間が掛からない。

  • Fileタイプのフィールドを作成する場合、アップロードディレクトリは事前に用意しておかなければならない
  • アップロード用ディレクトリは環境設定にもよるがパーミッションは777にしておかなければならない
  • 作ったフィールドについては読み込み/書き出し機能では出力されないのでサイト移転の際には自力で再度入力が必要
  • 全てのフィールドを作成した際、各フィールドの名称を一覧表にしておく必要がある
  • Standard Fieldsを変更しない場合、エントリー画面の画面の"表示設定を変更"にて追記や概要を表示しない設定にしておかないとエントリー入力の際に無駄な作業が増える。
  • フィールド名は英単語で作成し、極力短くかつ意味のわかるものにする。
  • ラベル名は入力の際に表示されるのでよりわかりやすくする。
  • Select menuやラジオボタンなどのリスト要素に空白行は設定できないことに注意

#rpm用のPGPキーをインポート

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

#ImageMagickのパッケージを全てインストール

yum -y install ImageMagick*

#Crypt::DSAのチェックをクリア

yum install perl-Crypt-DSA.noarch

#DBD::SQLiteのチェックをクリア

yum install perl-Class-DBI-SQLite.*

#DBD::SQLite2のチェックをクリア

yum search SQLite2

yum install perl-DBD-SQLite2.*

#XML::Atomのチェックをクリア

yum search perl-XML

yum install perl-XML*.*

このアーカイブについて

このページには、過去に書かれたブログ記事のうちCMS設定関係カテゴリに属しているものが含まれています。

前のカテゴリはApplicationです。

次のカテゴリはCSSです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。