2010/10/24(日)postgreSQL にて、initdb時と違う文字コードで DB 生成

2017/10/12 4:10 サーバ運営・管理
最新の postgreSQL は、 9.0。
しかし、当方では検証を終えていないので、8.4.x を使用しています。

UTF-8 なDBを作成しようと、
createdb -U hoge -E utf-8 exampledb

としたところ、
createdb: database creation failed:
ERROR: new encoding (UTF8) is incompatible with the encoding of
the template database (EUC_JP)
HINT: Use the same encoding as in the template database,
or use template0 as template.

※見やすいように適当に改行しています。
 実際の表示体裁は、画面幅一杯で折り返して表示します。

という、横文字エラーメッセージ出て作成できません。
散々既出のようですが、メモ代わりということで。。
横文字は解読が苦手orz だが、いろいろサイトを訪ねあたってみると、どうも、template0 を使って生成しろ、ということらしい。。

当方では、initdb (サーバに初期化データベースをインストール)時に、文字コードを EUC-JP にしました。こんな感じ:
initdb -D /db --encoding=EUC_JP --locale=C

この場合、EUC-JP 以外の文字コードでDBを生成する時はこうしないといけないようです。
createdb -U hoge -E utf-8 -T template0 exampledb

これで何事も無かったかのように UTF-8 なDBが生成できました。
何でこんなことになったのかは、知りません。orz

2010/10/21(木)adiary は、ModPerl::Registry ではまともに動作しない

2017/10/12 4:08 サーバ運営・管理
adiary は、AGPLv3ライセンスで提供される、オープンソースのブログシステムです。
携帯電話閲覧にも対応し、wiki も意識しているようです。
記事保存DBに postgreSQL が利用できます。
利用価値の高いソフトウェアです。
Perl(5.6以上のバージョンが必要)で動作し、Apache2 のWorker MPM、mod_perl2 対応としています。

adiary の場合、このmod_perl2 対応というのが曲者。Apache側の設定を、以下のようにしないと、まともに動作しません:

<Directory "*******">
Options ExecCGI
SetHandler perl-script
PerlResponseHandler ModPerl::PerlRun
PerlOptions +ParseHeaders

Order allow,deny
Allow from all
</Directory>

ModPerl::Registry は、1回目の実行で、コード解析結果をバイナリでメモリ上に保持しておき、高速化を図るモード。それ故、200% - 2000% の高速化になるのです。

ModPerl::PerlRunは、Perl インタプリタをメモリ上に保持し、実行の度にコード解析して実行するモード。このモードでは、数10ms 実行時間が短くなる程度。

ちなみに、mod_perl を無効にしても、勿論、きちんと動作します。
変数の初期化を端折っていると、このような不可解な現象になるのです。
perl では、変数宣言しなくても、勝手に未定義値で初期化する仕組みなので、案外あり得る現象です。

adiary で mod_perl がまともに動作しないという方は、Apache上でのmod_perl 設定を確認してみるとよいでしょう。

2010/07/25(日)FreeBSD 8.1R リリース

2017/10/12 4:01 サーバ運営・管理
昨日の朝、リリースアナウンス来ました。

○主な点
・ZFS ローダ(BOOT時?) を追加
・ZFS サブシステムのうち、zpool をversion 14 にアップデートした
・UFSファイルシステムと ZFS ファイルシステムにて、NFSv4 ACL 設定サポートを追加した。
 対応ユーティリティ cp(1), find(1), getfacl(1), mv(1), setfacl(1)
・UltraSPARC IV/IV+, SPARC64 V を新たにサポートした。
・PowerPC G5 にて SMP(マルチCPU構成の意) をサポートした。
・BIND 9.6.2-P2 にした。
・sendmail を 8.14.4 にアップデートした。
・OpenSSH を 5.4p1 にアップデートした。
・GNOME を 2.30.1 KDE を 4.4.5 にした。

以下、英文です:
リリースノート http://www.freebsd.org/releases/8.1R/relnotes.html
不具合情報 http://www.freebsd.org/releases/8.1R/errata.html

サポート期限は Type=Extended のため、 2012/07/31 になる見込みです。
FreeBSD 8.0 の保守サポートは、 2010/11/30 で終了予定なので、8.0R を稼動させている場合は、それまでに 8.1R にアップデートすることが求められます。

2010/06/13(日)SpamAssassin 3.3.1 の起動エラーを解決する

2017/10/12 4:01 サーバ運営・管理
あちこちで既出だが、やっぱり填まる、、ということで、、
SpamAssassin 3.3.x を perl のCPAN などでインストールし、設定も完了、いざ起動しようとすると、、

 exited or timed out without signaling  production of a PID file: exit
255 at /usr/local/bin/spamd line 2588.


のようなエラーが出て起動しなくなるというもの。
起動前に 一緒にインストールされる /usr/local/bin/sa-update を一度手動実行しないと駄目なようです。
動作に必要なファイルをこのコマンドで作成するのかな、、

/usr/local/bin/sa-update を手動実行後、/usr/local/bin/spamd を実行すると、すんなり起動されます。

2010/06/13(日)FreeBSD 7.3R portupgrade に関するトラブル(1)

2017/10/12 4:00 サーバ運営・管理
OpenLDAP 2.4.22 インストール、X11関係のライブラリを portupgrade かけようとしたときに、
*** Error code 1 (ignored)
/libexec/ld-elf.so.1: Shared object "libstdc++.so.4" not found, required by "groff"


のようなエラーが出て、構築が中断してしまうことがあります。
libstdc++.so.4 というのは、古いダイナミックライブラリで、現在は libstdc++.so.6 になっています。
上記では、groff コマンドが libstdc++.so.4 を要求したので、エラーになっている模様。

この手のエラーが出るコマンドは、以前は /usr/local/bin 配下にあったものが、 /usr/bin 配下に移動しているのが主な原因。
/usr/bin 配下にある該当コマンド実行ファイルを、単純に /usr/local/bin にコピーするか、/usr/local/bin 配下の該当コマンドファイルを削除することで解決します。

/usr/local/bin 配下にあった該当ファイルは、タイムスタンプが 2005 年から 2006年あたりのもので、古い実行ファイルであることが原因のようです。

当方では、単純に /usr/bin 配下から /usr/local/bin 配下にコピーして解決。

2010/06/13(日)FreeBSD 7.3R portupgrade に関するトラブル(2)

2017/10/12 3:59 サーバ運営・管理
libX11 を 1.2.11 あたりから 1.3.3 にアップデートしようとしたときの不可解な難題その2。X11関係の他のいくつかのライブラリでも発生。

./configure 途上でこんな感じのエラーが出ます。
./CONFIGURE: 5478: SYNTAX ERROR: WORD UNEXPECTED (EXPECTING ")")... snip..


libtool などの動作環境をチェック、環境最適化(?)する部分のマクロ言語展開あたりの問題。古いものがあるとこうなることがあります。
直接解決の参考になったのは、ここ → http://nhh.mo-blog.jp/ttt/2010/05/freebsd_ports_c.html

当方の場合は、
/usr/local/bin/autoconf259
/usr/local/bin/libtool15
/usr/local/share/aclocal/libtool15.m4
/usr/local/share/aclocal/libtdl15.m4
/usr/local/share/aclocal/inttypes.m4
/usr/local/share/aclocal/lsc-posix.m4
/usr/local/share/aclocal/signed.m4

全てタイムスタンプが 2005年から 2006年にかけてのもの。
他にもタイムスタンプが 2005年、2006年のものを削除して、再度 portupgrade を試みたところ、上手く行きました。

2010/06/13(日)FreeBSD 7.3R + postfix 2.6.7

2017/10/12 3:58 サーバ運営・管理
FreeBSD 7.3上で postfix を構築すると、コンパイルエラーになります。
postfix 2.6.x,postfix 2.7.0 でも同様。

コンパイル直後にこんな感じ:
/usr/include/unistd.h:329: error: conflicting types for 'closefrom'
./sys_defs.h:1400: error: previous declaration of 'closefrom' was here


原因は、FreeBSD 7.3用にpostfix での環境構築定義が出来ていないためで、上記2つのヘッダなど眺めると、FreeBSD 7.2 用のものが適用されてしまうようです。

以下のファイルを修正して対応します。
postfix-2.6.7/src/util/sys_defs.h



postfix-2.6.7/src/util/sys_compat.c



こうすると、素直にコンパイル通り、動作上も問題無いようです。

2010/06/02(水)FreeBSDのセキュリティサポート期限

2017/10/12 3:57 サーバ運営・管理
以下のWebページに載っています。
http://security.freebsd.org/

ここに本日現在、以下のように記されています。
20100602.png

この情報によると、FreeBSD 6系は、2010/11/30 でサポート終了です。
FreeBSD 7.2R は 2010/06/30 すなわち、今月末です。

昨今は、セキュリティ脆弱性をあら捜しして、そこを突くサーバ攻撃が主流です。
公開サーバや業務に使用しているのであれば、積極的にサポート期限の遅いものを使いましょう。

2010/05/29(土)FreeBSD 8.0 で cuad 変更

2017/10/12 3:56 サーバ運営・管理
最近は、ダイヤルアップの需要はADSL/VDSL/FTTH といった高速インターネット回線の普及、携帯電話によるインターネット環境が進むことで減ってきていますが、一方で確実なメンテナンス用通信回線確保手段として、非公開のダイヤルアップアクセスポイントを設けているなんていう管理者も結構多いと思います。当方も非公開ダイヤルアップアクセスポイントを設置しています。

その際、FreeBSD 7.x までは cuad0,cuad1 といったシリアルデバイスで受けるのですが、このデバイス名が FreeBSD 8.0 では何故か変更になっています。

cuad0 → cuau0 cuad1 → cuau1 .... のように変更になります。
設定を変更しないと、ダイヤルアップは機能しないようです。ちと填まりましたorz