Kozupon.com    
 
 PHPなIMAPモジュールのセットアップ!


例えば、PHPでWebメールシステムを組む場合IMAP関数及ぶIMAPモジュールが必要となる。通常、RedHatLinuxなどに付属されているIMAPのバイナリモジュールだけでは、PHPとの連携は出来ない。
PHPで作成したWebメールプログラムを実行するためには、IMAP関数が不可欠となる。したがって、ここではIMAP関数とIMAPモジュールのセットアップ方法を紹介する。

動作検証OS : RedHatLinux8.0、VineLinux2.5、Laser5LinuxSecureServer6.9
Webメールシステム : SquirrelMail  ←これのインスト方法は、 ここ に書いてあります。

■ SquirrelMailセットアップで注意すること(login出来なくてはまったので書き記す)。
@ 本書で説明しているIMAPモジュールを使う場合は、SquirrelMailのconfigでIMAPの種類を"uw"にすること。
A php.iniのregister_globalsパラメータを"register_globals = On"にすること。
B PHP-4.2.2以降を使う場合は、インストール後のsrcディレクトリに有るphpソースの先頭に、

extract($_GET);
extract($_POST);
extract($_SERVER);
extract($_COOKIE);

を追加すること。


1.モジュールのダウンロード

IMAPをPHPで動作させるには、C クライアントライブラリが必要となるので ここ からimap-2002.RC2.tar.Z(執筆時点2002年8月23日が最新)をダウンロードする。


2.モジュールの展開

ダウンロードした、imap-2002.RC2.tar.Zを展開する。
仮に、/tmpにimap-2002.RC2.tar.Zを置いたとして、

# cd /tmp

# uncompress imap-2002.RC2.tar.Z

# cd /usr/local/src

# tar -xvf imap-2002.RC2.tar

# chown -R root.root imap-2002.RC2/


3.モジュールのコンパイル

展開したら、コンパイルする。ただし、このコンパイル方法はLinuxのみの対応である。

# cd imap-2002.RC2

# make slx (このmake方法は、RedHatLinux系での場合である。他のOSの場合は、Makefileを眺めてmakeのパラメータを変えること。また、OpenSSLがセットアップされている場合は、オプションにSSLTYPE=noneを入れないとエラーがでるようです。)


4.手動でライブラリをコピーする

コンパイルが終わったら、以下の方法でCクライアントライブリとモジュールをコピーする。

# cd c-client

# cp c-client.a /usr/local/lib

# cp rfc822.h mail.h linkage.h /usr/local/include

これで、IMAP関数がセットアップできた。


5.imapd、ipop3dをモジュールディレクトリへコピーする

小生の場合は、POP3とIMAPモジュールもこの中のモジュールを利用することとしたので、imapd、ipop3dを/usr/sbinへ
コピーした。

# cd ..

# cp imapd/imapd /usr/sbin

# cp ipopd/ipop3d /usr/sbin


6.その他

1)imapdとipop3dを利用する場合は、inetdもしくはxinetdに設定することを忘れないこと!
inetdなら、例えば以下のようにinetd.confに設定してinetdを再起動する。

# cd /etc

# vi inetd.conf

途中略
pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/ipop3d
imap stream tcp nowait root /usr/sbin/tcpd /usr/sbin/imapd
途中略

2)PHPでIMAPを使う場合、PHPのconfigure時に--with-imapパラメータを付けることを忘れないこと!

3)小生の場合、IMAPパラメータを付けてPHPをconfigureすると、make時に”unix.hエラー”が出た。これを回避するにはmakeする前に、

# export CC=gcc

としてやると、旨くmakeすることが出来る。

以上

 


 
 
 



Copyright 2005 Kozupon.com.