例えば、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”にすること。
② php.iniのregister_globalsパラメータを“register_globals = On”にすること。
③ 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することが出来る。
以上
コメント