サーバ設定関係の最近のブログ記事

unlock tabelsの為にmysqldumpが失敗する場合、以下の内容で行ってみる。

  1. sshでログイン
  2. mysqldump -u DBユーザ -p  DB名 --skip-lock-tables > バックアップ先
  3. パスワードを聞かれるので入力

 

既存環境

  • 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
通常
$ mysql  -u  rootデータベース名  <  dump.sql

すでに mysql を実行中の場合、source コマンドを使用

 mysql < source filename;

参考サイト
風柳亭 - 別館:書庫のある庵 -: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での設定の差異に影響されるらしい。

 

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、コンパイルが実行されるので物によってはかなり時間が掛かる事に注意。

◆乱数ファイル作成

openssl md5 * > rand.dat

◆秘密鍵作成

openssl genrsa -rand rand.dat -des3 1024 > private.pem

◆パスフレーズを確認

◆パスフレーズの解除

mv private.pem private.pem.org
openssl rsa -in private.pem.org -out private.pem

◆パスフレーズを入力し、解除

◆csrの作成

openssl req -new -key private.pem -out csr.pem
情報を正しく入力する。

以上

#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*.*

#yumする前に

LANG=ja_jp.UTF-8

#パッチ当て

yum check-update
yum update

このアーカイブについて

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

前のカテゴリはxamppです。

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