2010.10.17

MySQL バージョン5.5.6・・・(Database)

*** 2010/12/16に内容一部修正しました ***
家のサーバーはFreeBSD-7.0で運用しているが、そろそろ最新のFreeBSD-8.1に上げようと準備中です。
OSのインストール後にMySQLをportsで入れて、文字コードの設定で引っかかった。
(1) インストール

# cd /usr/ports/databases/mysql55-server
# make WITH_CHARSET=ujis WITH_XCHARSET=all install clean
# cd ../mysql55-client
# make WITH_CHARSET=ujis WITH_XCHARSET=all install clean

(2) my.cnfの編集

# cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
# cd /etc
# chmod +w my.cnf
# vi my.cnf
[mysqld]
datadir = /usr/db/mysql
port            = 3306
socket          = /tmp/mysql.sock
skip-locking
key_buffer = 16M

(3) DBをインストール

# mkdir /usr/db
# mysql_install_db --basedir=/usr/local --datadir=/usr/db/mysql
# chown -R mysql /usr/db/mysql

(4) 起動

次にmysqlの起動ファイルを修正します。

# cd /usr/local/etc/rc.d
# chmod +w mysql-server
# vi mysql-server

下記の赤字部分を修正する。
mysql_dbdirの記述を有効にして/usr/db/mysqlを指定し、
–defaults-extra-file=/etc/my.cnf として、/etc/my.cnfを明に指定する。

: ${mysql_enable="NO"}
: ${mysql_limits="NO"}
${mysql_dbdir="/usr/db/mysql"}
: ${mysql_args=""}
mysql_user="mysql"
mysql_limits_args="-e -U ${mysql_user}"
pidfile="${mysql_dbdir}/`/bin/hostname`.pid"
command="/usr/sbin/daemon"
command_args="-c -f /usr/local/bin/mysqld_safe --defaults-extra-file=/etc/my.cnf --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args}"

これで、ようやくMySQLを起動できる。

# ./mysql-server start

(5) パスワード設定

# mysql -u root
mysql > use mysql;
mysql > set password for root@localhost=password('xxxxx');
mysql> flush privileges;
mysql > exit;

(6) 文字コード調べ

# mysql -u root -p
Password xxxxxxx
mysql > SHOW VARIABLES LIKE 'character_set_%';
+-----------------------------------+--------+
| Variable_name                             | Value   |
+-----------------------------------+--------+
| character_set_client              | latin1 |
| character_set_connection     | latin1 |
| character_set_filesystem              | binary |
| character_set_database               | latin1 |
| character_set_results                    | latin1 |
| character_set_server          | latin1 |
| character_set_system           | utf8   |
+------------------------------------+--------+
6 rows in set (0.00 sec)

入れたままだと、latin1の文字コードになっている。

(7) 文字コード指定

MySQLをストップして、/etc/my.cnfの[mysqld]のセクションにdefault-character-set=ujisを追加したら、エラーが出て起動できなくなった
調べたらdefault-character-set=ujisは変更され使えなくなったことが分かり、下記のように2行追加した。

[mysqld]
datadir = /usr/db/mysql
port            = 3306
socket          = /tmp/mysql.sock
skip-external-locking
    ・
    ・
myisam_sort_buffer_size = 8M
character-set-server=ujis
skip-character-set-client-handshake

(8) 再確認

mysql> SHOW VARIABLES LIKE 'character_set_%';
+----------------------------------+--------+
| Variable_name                 | Value   |
+----------------------------------+--------+
| character_set_client          | ujis |
| character_set_connection            | ujis |
| character_set_database      | ujis |
| character_set_filesystem              | binary |
| character_set_results           | ujis |
| character_set_server            | ujis |
| character_set_system          | utf8   |
+----------------------------------+--------+

systemはデフォルトでutf8、filesystemはbinaryで問題ないので、無事ujsi(EUC)が使えるようになった。 やれやれ。


2010.08.31

PageButeでMT-3.35のページ分割・・・(Movabletype)

以前、MTPagenateというプラグインを使ってメインページの分割を行った。
しかし、このためにはphpが動く環境を構築して、index.htmlをphp化してindex.phpとして、index.htmlにアクセスしてきたのをindex.phpに振り向けるRedirectの設定を.htaccessで行う必要もあった。

ところが、その後PageButeと言うプラグインが提供されて、php化することなく簡単にページ分割ができるようになった。以下は、本ブログでメインページを分割した内容である。
ただし、本ブログはMTのVersionが3.35であり、MT4あるいはMT5の場合は、些か異なるのでネットで他の記事を参照されたい。

なお、カテゴリーのページも同様に分割できる。(適用ブログ例)

(1) まず、PageButeをダウンロードして解凍する。

(2) 解凍したPageBute.plをmt/pluginsディレクトリーに入れる。
(3) 設定内容(メインページに赤字部を挿入)

         <div id="pagebody">
            <div id="pagebody-inner" class="pkg">
               <div id="alpha">
<div class="content-nav">
<MTIfPageBefore>
<span><$MTPageBefore delim="前の5件"$></span>
</MTIfPageBefore>
<$MTPageLists$>
<MTIfPageNext>
<span><$MTPageNext delim="次の5件"$></span>
</MTIfPageNext>
(全エントリー数:<$MTBlogEntryCount$>)
</div>
                  <div id="alpha-inner" class="pkg">
<MTPageContents count="5">
                     <MTEntries lastn="500">
<$MTPageSeparator$>
                     </MTEntries>
</MTPageContents>
             </div>
<div class="split">
<MTIfPageBefore>
<span><$MTPageBefore delim="前の5件"$></span>
</MTIfPageBefore>
<$MTPageLists$>
<MTIfPageNext>
<span><$MTPageNext delim="次の5件"$></span>
</MTIfPageNext>
(全エントリー数:<$MTBlogEntryCount$>)
<br><br><br></div>
          </div>

2010.04.18

sshで接続できない・・・(FreeBSD)

sshを立ち上げて、自宅内ではtelnetよりsshでサーバーに接続していた。
自宅内ならsshにする必要もないのだが、TeraTerm Proでloginするとき、設定してしまえばsshの方がlogin操作が楽なので、そうしていた。
さて、自宅外からTeraTerm Proでsshで接続しようとすると、Pass Phraseの入力画面で固まってしまう。
理由は、何のことはない/etc/hosts.allowに許可の記述がなかったからだ。

# sshd : xxx.xxx.xxx.xxx/255.255.255.0 : allow

を入れたら、すんなり接続できた。
しかし、sshは/etc/rc.confで下記のように起動している。

sshd_enable="YES"

inetd.confの記述で起動したときのみ、hosts.allowの記述が有効と思っていたのが間違いで、inetdに頼らず起動しても、hosts.allowの記述が必要であったのである。
FreeBSDを使い始めて10年ぐらい経つが、まだまだ知らないことが多い。


2010.04.17

Clamav-0.96版へのupdate (はまってしまった)・・・(mail)

最近、FreeBSDのサーバーは、安定に稼動してしていることもあり、放置状態である。
ところが、メールのウイルスチェックに使っているClamavの版数が、古くなって稼動していないことが分かったので、0.96版にアップデートした。
(1) Portsを最新版にする

Portsのupdateは以前にも書いたが、updateが出来る準備が既に出来ていれば、

# cvsup -g -L2 /etc/ports-supfile

 で同期が始まる。
(2) Clamavの最新版のインストール
  Portsが最新版になったら、

# cd /usr/ports/security/clamav
# make WITH_MILTER=yes clean
# make deinstall
# make WITH_MILTER=yes install

(3) はまり込んだこと

これでclamavが最新版になるので、再起動すれば良い積りであった。

# cd /usr/local/etc/rc.d
# ./clamav-clamd restart
# ./clamav-freshclam restart
# ./clamav-milter restart

ところが、自分宛のメールを出して確認しても、下記がメールヘッダーに表示されない

X-Virus-Scanned: clamav-milter 0.96 at uls.fam.cx
X-Virus-Status: Clean

clamavの再インストールから、終にはsendmailの設定ファイルのsendmail.cfまで作って再起動したが、メールにX-Virus-・・・・ が入らない。

(4) やっと解決

全く分からず2日ほど手こずった。 しかし、色々調べて行くと、Clamavの0.95版?以降では、/usr/local/etcにmilterのコンフィグファイルが、clamav-milter.confとして独立しているのが判明。ここで設定したコンフィグファイルの内容を以下に示す。

MilterSocket /var/run/clamav/clmilter.sock
MilterSocketMode 660
FixStaleSocket yes
User clamav
AllowSupplementaryGroups yes
PidFile /var/run/clamav/clamav-milter.pid
TemporaryDirectory /tmp
ClamdSocket unix:/var/run/clamav/clamd.sock
AddHeader YES

修正したのは、”MilterSocketMode 660″, “TemporaryDirectory /tmp”と “AddHeader YES”だけであった。
AddHeader YESがないと、メールにX-Virus-・・・が入らないのである。
もちろん、”AddHeader YES”がなくてもメールチェックの動作に問題はないが、メールヘッダーに入らないと、メールを見ただけではclamavが利いているかどうか分からない。
また、ClamdSocket unix:/var/run/clamav/clamd.sockもsendmailの設定内容とファイル名が一致することは注意を要する。

(5) その他

今まではディレクトリーの/var/db/clamav内にサブディレクトリーがあり、データベースを構成していたが、今回の版数のclamavではDBは単なるファイルになったので、再起動の前に、古いDBは削除しておいた方が良いようだ。

# cd /var/db/clamav
# rm -fr *

そして、DBファイルを創生するため初回は次の順序で起動する。

# cd /usr/local/etc/rc.d
# ./clamav-freshclam restart
# ./clamav-clamd restart
# ./clamav-milter restart

これで、再起動して無事起動でき、メールにもX-Virus-・・・が入るようになった。


2009.12.07

Ubuntu 9.10でpdfファイルの表示と作成・・・(ubuntu)

まず、Synapticパッケージマネージャーで”xpdf-japanese”と”cups-pdf”をインストールする。
次に以下のようにリンクを貼る。

& su
パスワード:
# mkdir -p /usr/share/poppler/cidToUnicode
# ln -s /usr/share/xpdf/japanese/Adobe-Japan1.cidToUnicode 
/usr/share/poppler/cidToUnicode/Adobe-Japan1
# mkdir -p /usr/share/poppler/cMap
# ln -s /usr/share/fonts/cmap/adobe-japan1 /usr/share/poppler/cMap/Adobe-Japan1

これで、日本語のpdfも表示される筈だが、アルファベット部分のみしか表示されない。
調べると、poppler-dataが入っていない可能性があることが分かり、以下のようにしてインストール。

# apt-get install poppler-data

これで、見事に表示されるようになった。
印刷に関しては、「システム」→「システム管理」→「印刷」と辿ると「PDF」の名前のプリンターができている。
Wordなどで印刷すると、HomeディレクトリーのPDFフォルダー内にpdfファイルが作られる。


« Previous | Next »