2012年8月19日日曜日

ownCloud4.0.7

やはり日本語対応はいまいちの様子……

フォルダ名に日本語を使うと、アップロードが完了しない。
ま、実際にはアップロードされているんだけど、ブラウザ上で完了になりません。

また、ファイルはアップ出来ても、日本語のフォルダやファイル名があると、ギャラリーに写真が表示されないとか、一番使いたい機能で問題が出ちゃってます。

3系の安定版の方がよかったかもしれない (^_^;

英語だけにすれば良いんだけど、苦手なんだよな〜


2012年7月16日月曜日

CentOS 6.2 postfix + Dovecot + DRAC + drac plugin で pop beroe smtp

最近、pop before smtp をやりたいって話は聞かなくなってたんですが、頑なに pop before smtp にこだわる方が居たので調べてみました。

最近は、perlベースの Pop-before-smtp を使うのがはやりっぽいですね。

試してみると、maillogを監視してて、popの認証ログをベースに動くから、pop認証後にメールが送れるようになるまで、時間が掛りすぎました。


それで、昔ながらのDRACを使ってみようと思った次第です。

popしてから、メールの送信が許可されるまでの遅延が気にならなければ、 perl ベースの pop-before-smtp が簡単で良いかもしれません。



DRAC と dovecot、postfixの関係はこんな感じです

  1. dovecotでpop/imapの認証が成功
  2. dovecotからdrac_pluginが呼び出される
  3. drac_pluginはdracdにデータベースの更新を依頼
  • postfixはdracdが作成したデータベースを、中継可否を判断するデータベースとして利用する
動きは単純ですね。


導入の流れはこんな感じ

  1. BerkeleyDBの導入
  2. Dovecot-develの導入
  3. DRACの導入
  4. dovecot drac_pluginの導入
  5. dovecot がdrac_pluginを使うように設定
  6. postfix が、DRACが管理しているデータベースを参照するように設定

手順はこんな感じです

BerkeleyDB/Dovecot-develの導入
[root@cent6 ~]# yum install db4-devel dovecot-devel

DRACの導入
[root@cent6 ~]# mkdir drac
[root@cent6 ~]# mv drac.tar.Z drac
[root@cent6 ~]# cd drac
[root@cent6 drac]# tar zxf drac.tar.Z
[root@cent6 drac]# vi Makefile

#### Makefile for drac

## Tuneables

# Paths

##INSTALL = /usr/ucb/install
INSTALL = install
EBIN = /usr/local/sbin
MAN = /usr/local/man/man

# OS-Dependant settings

# Choose one of this pair...
# -DTI_RPC # Transport-independant RPC
# -DSOCK_RPC # Socket RPC

# Choose one of this pair...
# -DFCNTL_LOCK # fcntl() locking
# -DFLOCK_LOCK # flock() locking

# Choose one of this pair...
# -DSYSINFO # hostname from sysinfo()
# -DGETHOST # hostname from gethostname()

# If rpcgen -C is specified below...
# -DDASH_C # ANSI-C mode

# Settings for postfix and exim

# Do not set these for sendmail
# -DREQ_HASH # requires hash format
# -DCIDR_KEY # keys in CIDR format
# -DTERM_KD # keys and data nul-terminated

##DEFS = -DTI_RPC -DFCNTL_LOCK -DSYSINFO
DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C -DTERM_KD

# Compiler flags
CC = gcc
RANLIB = :
##CFLAGS = $(DEFS) -g -I/usr/local/src/db/db-4.1.25/build_unix
CFLAGS = $(DEFS) -g -fPIC
#CFLAGS = $(DEFS) -g -I/usr/local/src/db/db-3.1.17/build_unix
#CFLAGS = $(DEFS) -g -I/usr/local/src/db/db-2.4.14/Unix
#CFLAGS = $(DEFS) -g -I/usr/local/src/db/db.1.85/PORT/sunos.5.2/include
##LDLIBS = -L/usr/local/src/db/db-4.1.25/build_unix -lnsl -ldb-4.1
LDLIBS = -ldb
#LDLIBS = -L/usr/local/src/db/db-3.1.17/build_unix -lnsl -ldb
#LDLIBS = -L/usr/local/src/db/db-2.4.14/Unix -lnsl -ldb
#LDLIBS = -L/usr/local/src/db/db.1.85/PORT/sunos.5.2 -lnsl -ldb
##TSTLIBS = -L. -ldrac -lnsl
TSTLIBS = -L. -ldrac
##RPCGENFLAGS =
RPCGENFLAGS = -C -I
#RPCGENFLAGS = -C

# Man sections
MANLIB = 3
##MANADM = 1m
MANADM = 8

~~~~~~~~~~~~~~~~~

[root@cent6 drac]# make
[root@cent6 drac]# make install
install -c -o bin -g bin -m 0755 rpc.dracd /usr/local/sbin
[root@cent6 drac]# cp drac.h /usr/local/include/
[root@cent6 drac]# cp libdrac.a /usr/local/lib

dovecot drac_pluginの導入
[root@cent6 drac]# cd ../dovecot2-drac
[root@cent6 dovecot2-drac]# vi Makefile

##DOVDIR:=../dovecot-2.0.13
DOVDIR:= /usr/include/dovecot
LIBS:=-ldrac
LDFLAGS:=-L/usr/local/lib

CFLAGS=-Wall -W -shared -fPIC -DHAVE_CONFIG_H -I$(DOVDIR) \
        -I$(DOVDIR)/src/lib \
        -I$(DOVDIR)/src/lib-index \
        -I$(DOVDIR)/src/lib-mail \
        -I$(DOVDIR)/src/lib-storage \
        -I$(DOVDIR)/src/lib-storage/index \
        -I$(DOVDIR)/src/lib-storage/index/maildir

all: drac_plugin.so

drac_plugin.so: drac-plugin.c
        $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ $(LIBS)

clean:
        @rm -f *.so *.o

[root@cent6 dovecot2-drac]# make

cc -Wall -W -shared -fPIC -DHAVE_CONFIG_H -I/usr/include/dovecot -I/usr/include/dovecot/src/lib -I/usr/include/dovecot/src/lib-index -I/usr/include/dovecot/src/lib-mail -I/usr/include/dovecot/src/lib-storage -I/usr/include/dovecot/src/lib-storage/index -I/usr/include/dovecot/src/lib-storage/index/maildir -L/usr/local/lib drac-plugin.c -o drac_plugin.so -ldrac

32bitの場合
[root@cent6 dovecot2-drac]# cp -pi drac_plugin.so /usr/lib/dovecot/

64bitの場合
[root@cent6 dovecot2-drac]# cp -pi drac_plugin.so /usr/lib64/dovecot/


dovecotの設定変更
[root@cent6 dovecot2-drac]# vi /etc/dovecot/conf.d/10-mail.conf

# Space separated list of plugins to load for all services. Plugins specific to
# IMAP, LDA, etc. are added to this list in their own .conf files.
#mail_plugins =
mail_plugins = drac


[root@cent6 dovecot2-drac]# vi /etc/dovecot/conf.d/90-plugin.conf

plugin {
  #setting_name = value
dracdserver = localhost
dracdtimeout = 60
}

[root@cent6 dovecot2-drac]#

dracの起動
[root@cent6 dovecot2-drac]# /usr/local/sbin/rpc.dracd -e 5 /etc/postfix/drac.db

-e 5 : DRACのデータベースでの存在期間(min)
/etc/postfix/drac.db : データベースファイルの場所
※rpc.dracdが起動できない場合、rpcbindが導入・起動されていることを確認してください。

dracd起動ファイルの例
#!/bin/bash
# chkconfig: - 90 25
### BEGIN INIT INFO
# Provides: rpcdrac
# Short-Description: Dynamic Relay Authorization Control
# Description: Dynamic Relay Authorization Control
### END INIT INFO

. /etc/rc.d/init.d/functions
prog="/usr/local/sbin/rpc.dracd"
timeout="5"
conf="/etc/postfix/drac.db"
pidfile="/var/run/rpc.dracd.pid"

RETVAL=0

start() {
echo -n "Starting $prog:"
daemon $prog -e $timeout $conf
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch $pidfile
return $RETVAL
}
stop() {
echo -n "Stopping $prog:"
killproc $prog
RETVAL=$?
echo
rm -f $pidfile
return $RETVAL
}
case $1 in
start ) start ;;
stop ) stop ;;
restart) stop && start ;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac


postfixの設定変更
※下の方法だけじゃなくて、いろんな参照のさせ方があると思います。
[root@cent6 dovecot2-drac]#  vi /etc/postfix/main.cf


mynetworks = check_client_access btree:/etc/postfix/drac


[root@cent6 dovecot2-drac]#

と、こんな感じでした。


2015/7/12 追記
・以下のエラーに対応

[root@cent6-64 dovecot2-drac]# make
cc -Wall -W -shared -fPIC -DHAVE_CONFIG_H -I/usr/include/dovecot -I/usr/include/dovecot/src/lib -I/usr/include/dovecot/src/lib-index -I/usr/include/dovecot/src/lib-mail -I/usr/include/dovecot/src/lib-storage -I/usr/include/dovecot/src/lib-storage/index -I/usr/include/dovecot/src/lib-storage/index/maildir -L/usr/local/lib drac-plugin.c -o drac_plugin.so -ldrac
/usr/bin/ld: /usr/local/lib/libdrac.a(dracauth.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libdrac.a: could not read symbols: Bad value
collect2: ld はステータス 1 で終了しました
make: *** [drac_plugin.so] エラー 1
[root@cent6-64 dovecot2-drac]#

・起動ファイルサンプル追加

2012年6月30日土曜日

ownCloud 4.0.4 に アップグレード

CentOS 6.2 の上に作ってた、ownCloudのアップグレードを実施してみました。

手順はこんな感じ

ownClownのダウンロード

[root@centos6 ~]# wget http://download.owncloud.org/releases/owncloud-4.0.4.tar.bz2
--2012-06-30 10:58:38--  http://download.owncloud.org/releases/owncloud-4.0.4.tar.bz2
Resolving download.owncloud.org... 50.30.42.17
Connecting to download.owncloud.org|50.30.42.17|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://owncloud.org/releases/owncloud-4.0.4.tar.bz2 [following]
--2012-06-30 10:58:39--  http://owncloud.org/releases/owncloud-4.0.4.tar.bz2
Resolving owncloud.org... 50.30.42.17
Reusing existing connection to download.owncloud.org:80.
HTTP request sent, awaiting response... 200 OK
Length: 4616904 (4.4M) [application/x-bzip]
Saving to: “owncloud-4.0.4.tar.bz2”

100%[======================================>] 4,616,904    373K/s   in 15s

2012-06-30 10:58:54 (309 KB/s) - “owncloud-4.0.4.tar.bz2” saved [4616904/4616904]

[root@centos6 ~]#

ファイルの展開
[root@centos6 ~]# tar jxf owncloud-4.0.4.tar.bz2

設定・データの移行
[root@centos6 ~]# cp -Rpf owncloud /var/www/owncloud-4.0.4
[root@centos6 ~]# cd /var/www/
[root@centos6 www]# cp -Rp owncloud/config/* owncloud-4.0.4/config/
cp: overwrite `owncloud-4.0.4/config/config.sample.php'? y
[root@centos6 www]# cp -Rp owncloud/data/ owncloud-4.0.4/

ファイルの入れ替え
[root@centos6 www]# mv owncloud owncloud-old
[root@centos6 www]# mv owncloud-4.0.4/ owncloud

オーナー変更
[root@centos6 www]# chown -R apache:apache owncloud


アップグレードして思った事。。。

ファイルやフォルダの名前に日本語を使わなければ、結構ちゃんと動いてくれる。
日本語への対応は、もっと先になるのかな~


2012年6月23日土曜日

MacBook Air に Windows8 Release Preview を入れる

MacBookAir MD232J/A に、VirtualBoxを入れて、その上にWindows8 ReleasePreviewをインストールしてみました。

インストール自体は上手く出来たんだけど、Windows8 に GuestAdditions を導入すると、途端に不安定になってしまいます。
ということで、今は GuestAdditonsなしで使ってるから、適切な解像度では使えてないんですよね……

動きと使い勝手を確かめる分には十分ではあるんだけど、、、
ちょっと残念

2012年6月12日火曜日

Windows8 Metro版IEの検索プロバイダを変更したい

MetroスタイルのIEからは、検索プロバイダの追加はできないみたいです。
デスクトップから、デスクトップ版IEを起動して、検索プロバイダを追加

この時、追加した検索プロバイダを既定に設定すると、Metro版のIEでもここで
設定した検索プロバイダが利用できます。


ということで、さっそく 検索プロバイダはgoogleに変更しました。

2012年5月28日月曜日

apacheでホスト名が確認できない時のエラー

ちゃんと設定してないApacheは、よくこんなエラーが出ます。

Starting httpd: httpd: apr_sockaddr_info_get() failed for centos6.example.co.jp
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName


このエラーを、てっとり早く解消したい場合は、httpd.conf 内の ServerName ディレクティブに、自ホストのFQDNを設定してください。

こんな感じ

ServerName centos6.example.co.jp

2012年5月27日日曜日

zlib-devel がない時のエラー(メモ)

こんな感じのエラーが出た場合

checking pcre install prefix... no
checking for the location of zlib... configure: error: zip support requires ZLIB. Use --with-zlib-dir=<DIR> to specify prefix where ZLIB include and library are located
ERROR: `/var/tmp/zip/configure' failed

zlibの開発環境(lib,includeとか、、)をインストールすれば良い

[root@centos6 ~]# yum -y install zlib-devel