2012-11-18 12 views
23

Dziś próbuję uaktualnić php na MacOS Mountain Lion. Śledziłem MacTuts+ kursu i na etapie, gdzie mogę wykonać tę długą komendę:configure: error: utf8_mime2text() ma nowy podpis, ale brakuje U8T_CANONICAL

./configure \ 
--prefix=/usr \ 
--mandir=/usr/share/man \ 
--infodir=/usr/share/info \ 
--sysconfdir=/private/etc \ 
--with-apxs2=/usr/sbin/apxs \ 
--enable-cli \ 
--with-config-file-path=/etc \ 
--with-libxml-dir=/usr \ 
--with-openssl=/usr \ 
--with-kerberos=/usr \ 
--with-zlib=/usr \ 
--enable-bcmath \ 
--with-bz2=/usr \ 
--enable-calendar \ 
--with-curl=/usr \ 
--enable-dba \ 
--enable-exif \ 
--enable-ftp \ 
--with-gd \ 
--enable-gd-native-ttf \ 
--with-icu-dir=/usr \ 
--with-iodbc=/usr \ 
--with-ldap=/usr \ 
--with-ldap-sasl=/usr \ 
--with-libedit=/usr \ 
--enable-mbstring \ 
--enable-mbregex \ 
--with-mysql=mysqlnd \ 
--with-mysqli=mysqlnd \ 
--without-pear \ 
--with-pdo-mysql=mysqlnd \ 
--with-mysql-sock=/var/mysql/mysql.sock \ 
--with-readline=/usr \ 
--enable-shmop \ 
--with-snmp=/usr \ 
--enable-soap \ 
--enable-sockets \ 
--enable-sysvmsg \ 
--enable-sysvsem \ 
--enable-sysvshm \ 
--with-tidy \ 
--enable-wddx \ 
--with-xmlrpc \ 
--with-iconv-dir=/usr \ 
--with-xsl=/usr \ 
--enable-zip \ 
--with-imap=/usr/local/imap-2007 \ 
--with-kerberos \ 
--with-imap-ssl \ 
--enable-intl \ 
--with-pcre-regex \ 
--with-pgsql=/usr \ 
--with-pdo-pgsql=/usr \ 
--with-freetype-dir=/usr/X11 \ 
--with-jpeg-dir=/usr \ 
--with-png-dir=/usr/X11 

pojawia się błąd na końcu procesu.

configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.

Jakieś rozwiązanie? Z góry dziękuję.

Odpowiedz

12

Jeśli posiadasz RPM "client-devel" lub inny pakiet w repozytorium systemu operacyjnego, zainstaluj go.

Zapewni to bibliotekę c-client i pliki nagłówkowe, które PHP potrzebuje do obsługi IMAP.

+0

OP był na komputerze Mac, więc to nie działa dla niego - ale zadziałało to na mnie w stylu Redhata (Sci. Linux). – sonofagun

+13

W przypadku Debiana byłoby to 'apt-get install libc-client2007e-dev' –

+0

dzięki temu działało na ubuntu: apt-get install libc-client2007e-dev – waza123

3

Ten sam problem pojawił się na Fedorze podczas próby kompilacji PHP 5.5.0.

Problem jest związany z parametrem konfiguracyjnym '--with-imap'.

Aby rozwiązać ten problem, skompilowałem własną wersję programu IMAP z najnowszego źródła (obecnie imap-2007f) i do tego musiałem zainstalować pewne wymagania wstępne. W Fedorze zrobiłem to ...

yum install openssl openssl-devel pam-devel 
wget ftp://ftp.cac.washington.edu/imap/imap-2007f.tar.gz 
tar zxvf imap-2007f.tar.gz 

Potem musiałem wykonać miękkie łącze, aby kompilator mógł znaleźć biblioteki. W moim przypadku zrobiłem następujące:

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

a następnie skompilować:

cd imap-2007f 
make lnp SSLTYPE=unix EXTRACFLAGS=-fPIC 

Potem udało mi się skompilować PHP dodając ścieżkę źródłową IMAP do param config tak:

/path/to/php/src> ./configure ...other_params... '--with-imap=/path/to/imap-2007f' '--with-imap-ssl' 
make 
make install 
+0

Dla Ubuntu zrobiłem imap-2007f przy pomocy" make ldb ". –

8

błąd można usunąć, usuwając obsługę protokołu IMAP, usuwając te linie.

--with-imap=/usr/local/imap-2007 
--with-imap-ssl 
+6

Czy nie byłoby lepszym rozwiązaniem po prostu zainstalowanie wymaganych bibliotek zamiast usuwania usługi powodującej problem? Zgodnie z komentarzem _kervin_ poniżej, na RedHacie zainstaluj 'libc-client-devel' lub' libc-client2007e-dev' na Ubuntu/Debian i wszystko powinno być w porządku. –

1

Zainstaluj aplikację imap przed instalacją php.

brew install imap-uw

następnie

brew install php55 --with-fpm --with-imap --without-apache --with-debug

opcji --with-imap należy następnie uruchomić w porządku.

6

Stare wątki nigdy nie umierają ...

jestem na OSX Yosemite 10.10.5 i zainstalowano własną php, aktualnie 5.6.1 i chcesz uaktualnić do 5.6.13 - natknąłem się w tym samym błąd następujący po imap.

Widziałem ten wątek i uruchomiłem brew install map-uw, a następnie uruchomiłem configure na podstawie mojego istniejącego wyjścia phpinfo.

./configure \ 
--prefix=/usr/local/php5 \ 
--with-apxs2=/usr/sbin/apxs \ 
--with-config-file-scan-dir=/usr/local/php5/php.d \ 
--with-openssl=/usr \ 
--with-zlib=/usr \ 
--with-zlib-dir=/usr \ 
--with-gd \ 
--with-ldap \ 
--with-xmlrpc \ 
--enable-exif \ 
--enable-soap \ 
--enable-wddx \ 
--enable-ftp \ 
--enable-sockets \ 
--with-bz2=/usr \ 
--enable-zip \ 
--enable-shmop \ 
--enable-sysvsem \ 
--enable-sysvshm \ 
--enable-sysvmsg \ 
--enable-mbstring \ 
--enable-bcmath \ 
--enable-calendar \ 
--with-mhash \ 
--enable-fpm \ 
--with-mysql=mysqlnd \ 
--with-mysqli=mysqlnd \ 
--with-pdo-mysql=mysqlnd \ 
--enable-pcntl \ 
--enable-dtrace \ 
--enable-opcache \ 
--disable-phpdbg \ 
--with-icu-dir=/usr/local/php5 \ 
--with-mssql=shared,/usr/local/php5 \ 
--with-pdo-dblib=shared,/usr/local/php5 \ 
--with-libxml-dir=shared,/usr/local/php5 \ 
--with-xsl=shared,/usr/local/php5 \ 
--with-imap=shared,/usr/local/Cellar/imap-uw/2007f \ 
--with-kerberos=/usr \ 
--with-imap-ssl=/usr \ 
--with-gettext=/usr/local/php5 \ 
--with-curl=shared,/usr/local/php5 \ 
--with-png-dir=/usr/local/php5 \ 
--with-jpeg-dir=/usr/local/php5 \ 
--enable-gd-native-ttf \ 
--with-freetype-dir=/usr/local/php5 \ 
--with-pgsql=shared,/usr/local/php5 \ 
--with-pdo-pgsql=shared,/usr/local/php5 \ 
--with-mcrypt=shared,/usr/local/php5 \ 
--with-tidy=/usr/local/php5 \ 
--with-gmp=shared,/usr/local/php5 \ 
--with-readline=shared,/usr/local/php5 

Następnie make. I wygląda na to, że działa dobrze.

2

Mam zainstalowane następujące pakiet i to działa:
uw-imap-devel

uruchomić to polecenie na CentOS 7.x:
yum -y install uw-imap-devel

31

Dla tych, którzy mają ten sam błąd w docker:

RUN apt-get update && apt-get install -y libc-client-dev libkrb5-dev && rm -r /var/lib/apt/lists/* 
RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ 
    && docker-php-ext-install imap 
+1

Potwierdzam, że działa to z obrazem php doka. Dzięki! – carlosdubusm

+2

Idealne rozwiązanie dla dokera, chociaż początkowo brakowało mi "rm" na końcu. To zawiodło resztę instrukcji apt-get w mojej 'Dockerfile' :) – Blizz

Powiązane problemy