2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

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”にすること。
② 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することが出来る。

以上

コメント