【问题标题】:configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing配置:错误:utf8_mime2text() 具有新签名,但缺少 U8T_CANONICAL
【发布时间】:2012-11-06 08:17:03
【问题描述】:

今天我正在尝试在 MacOS Mountain Lion 上升级 php。我按照MacTuts+ 教程和执行那个长命令的步骤:

./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

我在进程结束时收到错误。

配置:错误:utf8_mime2text() 具有新签名,但缺少 U8T_CANONICAL。这不应该发生。检查 config.log 以获取更多信息。

有什么解决办法吗?提前致谢。

【问题讨论】:

    标签: php macos


    【解决方案1】:

    对于那些在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
    

    【讨论】:

    • docker 的完美解决方案,虽然我最初错过了最后的rm。这弄乱了我 Dockerfile 中的其余 apt-get 语句 :)
    • 为 docker 构建时,我得到 configure: error: OpenSSL libraries not found. 尝试使用 apt 安装 libssl-dev,但没有解决问题。
    【解决方案2】:

    如果您的操作系统存储库中有“libc-client-devel”RPM 或其他软件包,请安装它。

    这将提供 PHP 支持 IMAP 所需的 c-client 库和头文件。

    【讨论】:

    • OP 在 Mac 上,所以这对他/她不起作用 - 但它在类似 Redhat (Sci. Linux) 的系统上对我有用。
    • 如果是 Debian,它将是 apt-get install libc-client2007e-dev
    • 感谢这在 ubuntu 上工作:apt-get install libc-client2007e-dev
    • 在centos 7上:yum install epel-release ; yum install uw-imap-devel libc-client,然后用--with-libdir=lib64 --with-imap配置
    【解决方案3】:

    可以通过删除 IMAP 支持来修复错误,删除这些行

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

    【讨论】:

    • 安装所需的库而不是删除导致问题的服务不是更好的解决方案吗?根据下面 kervin 的评论,在 RedHat 上安装 libc-client-devel,或在 Ubuntu/Debian 上安装 libc-client2007e-dev,一切都应该没问题。
    • @MaciejZgadzaj Fredy 写道可以修复,这是解决此问题的另一种方法。我正在编译我自己的 PHP 版本 7.2.*,而我的项目确实 NOT 需要imap,所以我可以很容易地解决这个问题。为答案+1!
    【解决方案4】:

    旧线程永不消亡...

    我在 OSX Yosemite 10.10.5 上,并且已经安装了我自己的 php,目前是 5.6.1,并且想要升级到 5.6.13 - 在 imap 之后遇到了同样的错误。

    看到这个帖子,然后运行brew install imap-uw,然后根据我现有的phpinfo 输出运行configure

    ./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
    

    然后make。而且它似乎工作正常。

    【讨论】:

    • 我认为应该是brew install imap-uw
    【解决方案5】:

    我已经安装了以下软件包并且它可以工作:
    uw-imap-devel

    在 CentOS 7.x 上运行此命令:
    yum -y install uw-imap-devel

    【讨论】:

      【解决方案6】:

      在尝试编译 PHP 5.5.0 时,我在 Fedora 上遇到了同样的问题。

      问题与'--with-imap'配置参数有关。

      为了解决这个问题,我从最新的源代码(当前为 imap-2007f)编译了我自己的 imap 版本,为此我必须安装一些先决条件。在 Fedora 上我这样做了...

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

      然后我必须创建一个软链接,以便编译器可以找到这些库。就我而言,我做了以下事情:

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

      然后编译:

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

      然后我可以通过将 imap 源路径添加到配置参数来编译 PHP,如下所示:

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

      【讨论】:

      • 对于 Ubuntu,我使用“make ldb”制作了 imap-2007f。
      【解决方案7】:

      Docker 和 PHP 与 Apache(php:apache 默认镜像)可以使用:

      RUN apt-get update && apt-get install libc-client-dev libkrb5-dev && \
          docker-php-ext-configure imap --with-kerberos --with-imap-ssl && apt-get clean
      

      可能需要其他依赖项,具体取决于安装。

      【解决方案8】:

      在安装 php 之前安装 imap。

      brew install imap-uw

      然后

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

      --with-imap 选项应该可以正常运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-12
        • 2014-03-26
        • 2015-11-05
        • 2013-11-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多