2004年03月07日

PHPで、IMAP,POP3,NNTP関数を使う

WebMailをサーバセットアップしようと思う。

PHPで使えるWebMailソフトは、たいていIMAP関数が必要なようなので、IMAP関数を使えるように、PHPをcofigureしなすことにした。



●c-client libraryのインストール

imap.tar.Zをダウンロード
解凍して、コンパイル、インストール。

$wget ftp://ftp.cac.washington.edu/imap/imap.tar.Z
$tar xvzf imap.tar.Z
$cd imap-2002e
$make slx


ここで問題発生。

osdep.c:198: ssl.h: No such file or directory

と言われる。

サーバは、RedHat Linux 9 だが、openssl は、rpmでインストール済みのはず。
どうやら、opensslのrpmは、インストールパスがデフォルトと違うらしい。
で、src/osdep/unix/Makefile のsslのパスを編集する。

sslへのパスは、rpmコマンドで確認。

$rpm -ql openssl
$rpm -ql openssl-devel


src/osdep/unix/Makefile の
31行目あたり
 SSLDIR=/usr/local/ssl を SSLDIR=/usr/share/ssl に修正
34行目あたり
 SSLINCLUDE=$(SSLDIR)/include を SSLINCLUDE=/usr/include に修正

再度、makeする。

それでも、krb5.hがないというエラー
RedHatは、kerberosを/usr/kerberosにインストールするらしい

/usr/kerberos/includeのkrb5.h、com_err.h、profile.hを/usr/include/openssl/にコピーしてしまう。(いいのか?)

$su
#cd /usr/kerberos/include
#cp -p krb5.h com_err.h profile.h /usr/include/


再度、makeする。

#cd /usr/local/src/imap-2002e
#make slx


今度は、OK。
生成されたファイルをコピー

cp -p c-client/rfc822.h c-client/mail.h c-client/linkage.h /usr/include/
cp -p c-client/c-client.a /usr/lib/

コピー先に注意。私の環境は、/usr/includeと/usr/libでないと、phpのmakeでエラーがでた。


●PHPの再コンパイル

PHPを再度、configureして、makeする。

#./configure 適当なconfigureオプション --with-imap=/usr --with-imap-ssl=/usr ← /usr は、環境に合わせて変える。
#make
#make install


apacheを再起動して、phpinfoで、IMAPが表示されていることを確認する。

と、ここまでで疲れてしまったので、肝心のWebMailは、また今度にします。


参考サイト
Do You PHP?
IMAP関数でPOP3

Posted by hosco at 19:31