CascadiaPHP 2024

Anforderungen

Diese Erweiterung benötigt die c-client-Bibliothek. Die jeweils aktuelle Version des Quellcodes dieser Bibliothek findet sich unter » https://github.com/uw-imap/imap.

Wenn Sie die Bibliothek selbst kompilieren, ist es wichtig, dass Sie die Header-Dateien nicht direkt im Standard-Includeverzeichnis ablegen, da dies zu Namenskonflikten führen kann. Stattdessen sollten Sie ein neues Unterverzeichnis, z. B. /usr/local/imap-2000b/ mit zwei weiteren Unterverzeichnissen lib/ und include/ anlegen. Kopieren Sie alle *.h-Dateien aus dem c-client-Quellcodeverzeichnis in das neue include/-Verzeichnis und alle *.c-Dateien in das neue lib/-Verzeichnis. Die bei der Kompilierung des Bibliotheksquellcodes erzeugte Datei c-client.a kopieren Sie als libc-client.a ebenfalls in das neue lib/-Verzeichnis.

Hinweis:

Nähere Informationen zur Aktivierung der SSL- und Kerberos-Unterstützung der Bibliothek finden Sie in der Dokumentation, die im Quell-Paket enthaltenen ist.

Hinweis: Mandrake Linux liefert die IMAP-Bibliothek libc-client.a) ohne Kerberos-Unterstützung aus. Eine seperate Version mit SSL-Unterstützung wird als client-PHP4.a mitgeliefert. Für die Kerberos-Unterstützung müssen Sie die Bibliothek selbst kompilieren.

add a note

User Contributed Notes 10 notes

up
13
crabb1d at gmail dot com
10 years ago
For those using Ubuntu and who are completely daunted by compiling this, it's easy under Ubuntu:

Install libc-client-dev
# sudo apt-get install libc-client-dev

Install PHP5 imap:
# sudo apt-get install php5-imap

Restart Apache
# sudo service apache2 reload

Should work for most people.
up
4
allan at umich dot edu
5 years ago
It should be noted that the source code archives at the University of Washington, and the mirrors, have been dead for some time.

There is a github repository located here: https://github.com/uw-imap/imap
up
3
Anonymous
12 years ago
When compiling IMAP on a 64 bit machine, use: make EXTRACFLAGS=-fPIC.
up
2
obeco
1 year ago
php-imap package is not available neither in Red Hat Enterprise Linux 7 nor 8.

To compile the extension yourself:

Prerequisites
# yum install pam-devel openssl-devel

Follow steps 2 and 3 from the previous post of "ldi at email dot cz"

Download the c-client library from github, you can see the link at the top of the page and compile with:
# make lr5 SSLINCLUDE=/usr/include/openssl/ EXTRACFLAGS=-fPIC
(if you are using another distro, instead of lr5 you will type something else, you can view the Makefile for other unix flavors)

Follow step 5 from the previous post of "ldi at email dot cz" which is what the second paragraph at the top of the page explains.

Download the PHP source code of the version installed in your system and go to the php/ext/imap folder.

# phpize
(If you installed the PHP packages from the Red Hat Software Collections you must run the following command before to set the enviroment eg: scl enable rh-php73 bash)

# ./configure --with-imap=<<path_to_where_you_unpacked_the_c-client_library_and_compiled_it>> --with-imap-ssl

# make

This creates the file php/ext/imap/modules/imap.so :)
Copy it to your extension_dir (you can find it in the phpinfo() page).
Create an .ini file in the php.d folder with the text: extension=imap.so

Restart apache and be happy.

P.S. You could probably find the extension compiled out there but who knows the trustiness of the source so better to get the official unaltered sources.
up
1
Anonymous
11 years ago
When compiling IMAP 2007f with php 5.3.27 on a 64 bit OL5.7 machine, add in the Makefile: EXTRACFLAGS=-fPIC and EXTRAAUTHENTICATORS=gss
up
2
ldi at email dot cz
13 years ago
After few hours of testing it on CentOS 5 64 bit I'd like to share the steps required to compile imap with php:

1. Install openssl:

yum install openssl openssl-devel

2. If you don't have openssl compiled and installed in /usr/local/ssl create symlink:

ln -s /usr/lib64/openssl/engines/ /usr/local/ssl

3. Add the libraries:

ln -s /usr/include/ /usr/local/ssl/include

4. Compile IMAP

cd /path/to/imap_src
make lnp SSLTYPE=unix

5. Copy files as described above
mkdir lib
mkdir include
cp c-client/*.c lib/
cp c-client/*.h include/
cp c-client/c-client.a lib/libc-client.a

6. Compile PHP
cd /path/to/php/src
./configure --with-imap=/path/to/imap_src --with-libdir=lib64
up
1
jameslandrok at gmail dot com
9 years ago
A more secure & easy way to do this on Debian 7.7, php 5.4:

apt-get install php5-imap

Packages installed
libc-client2007e mlock php5-imap
up
1
Anonymous
3 months ago
The Alpine email client which was also originally developed by Mark Crispin at UW also uses the "c-client" library and that it is still actively developed by Eduardo Chappa: https://alpineapp.email/alpine/release/ . It has its own updated copy of the "c-client" library which supports new features like OAuth2 authentication, etc.

The development of the UW IMAP and Alpine "c-client" libraries can be compared via https://github.com/uw-imap/imap/commits/master/src/c-client and https://repo.or.cz/alpine.git/history/HEAD:/imap/src/c-client

If this PHP extension does not work with Alpine "c-client", it might behoove someone to port the PHP so it does.
up
1
eelco at care dot nl
14 years ago
Spent hours and hours on compiling PHP with IMAP support on CentOS 64-bit but after many trial and error sessions I got if fixed.

If you have set the '--with-libdir=lib64' flag and you encounter the the 'cannot find the c-client library' error while compiling, try to create a symlink 'lib64' to 'lib' in your imap installation dir.

Apparantly, PHP will search only in lib64 directories if the flag is set. This also applies on the IMAP library but documentation lacks on this point.
up
-1
Nick
14 years ago
If you run into an error similar to the following when compiling / making PHP:

errno 0x21c /usr/local/imap-2007e/lib/libc-client.a(netmsg.o)
ld: fatal: relocations remain against allocatable but non-writable sections
make: Fatal error: Command failed for target `libphp5.la'

You need to recompile the IMAP library and add -fpic or -fPIC to your CFLAGS.

See:
http://bugs.php.net/bug.php?id=35465

Also, if you compiled OpenSSL from source, you'll need to do the same, as you'll get error messages for libc-client.a
To Top