在Ubuntu 11上安装支持IMAP/Kerberos的PHP时出现问题

在Ubuntu 11上安装支持IMAP/Kerberos的PHP时出现问题,php,ubuntu,imap,kerberos,Php,Ubuntu,Imap,Kerberos,我正在尝试在Ubuntu 11.04上安装PHP。我是从源代码处编译的 下面是安装依赖项的示例: apt-get -y install php5-dev php-pear apt-get -y install libxml2-dev libevent-dev zlib1g-dev libbz2-dev libgmp3-dev libssl-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libgd2-xpm-dev libmcrypt-dev me

我正在尝试在Ubuntu 11.04上安装PHP。我是从源代码处编译的

下面是安装依赖项的示例:

apt-get -y install php5-dev php-pear
apt-get -y install libxml2-dev libevent-dev zlib1g-dev libbz2-dev libgmp3-dev libssl-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libgd2-xpm-dev libmcrypt-dev memcached libmemcached-dev libc-client-dev libkrb5-dev
下面是我的配置脚本:

./configure --enable-fpm --enable-cli --with-fpm-user=php-fpm --with-fpm-group=php-fpm --prefix=/usr/local/php --exec-prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/etc --enable-bcmath --enable-ctype --with-curl --with-curlwrappers --enable-dba --with-cdb --with-flatfile --with-inifile --enable-exif --enable-ftp --disable-fileinfo --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-ttf --with-freetype-dir --enable-gd-native-ttf --with-gettext --with-gmp --with-imap --with-imap-ssl --with-ldap --with-ldap-sasl --enable-mbstring=all --with-mcrypt --with-mhash --with-mysql --with-mysqli --with-pdo-mysql --with-openssl --with-kerberos --with-pspell --enable-shmop --enable-simplexml --with-snmp --enable-soap --enable-sockets --with-tidy --enable-wddx --enable-xmlreader --with-xmlrpc --with-xsl --with-zip --with-zlib --enable-sysvsem --enable-sysvshm
但是,我得到一个错误:

configure: error: Kerberos libraries not found.

  Check the path given to --with-kerberos (if no path is given, searches in /usr/kerberos, /usr/local and /usr )
我没有提供路径,但在我的系统上没有类似于/usr/kerberos的目录。在错误上方大约五行有一个日志条目,上面写着检查IMAP Kerberos支持。。。是

我是否需要为使用kerberos的
--指定一个目录?这个目录到底是什么?我一整天都在做这件事,似乎还没弄明白

提前谢谢

编辑:

我通过象征性的联系解决了这个问题

下面是在运行configure命令之前所做的操作

mkdir /usr/kerberos
ln -s /usr/lib/x86_64-linux-gnu /usr/kerberos/lib

干杯。

您是否尝试用谷歌搜索错误消息似乎对您的问题有一个可行的解决方案

“我检查了我的系统,发现Kerberos库安装在
/usr/lib64
中。因此我将
–with Kerberos=/usr/lib64
传递给配置脚本,但脚本仍然报告找不到Kerberos库。”


“从填充我的终端的输出页面中,我发现configure脚本将“lib”附加到
——使用我提供的kerberos
路径,因此它在一个不存在的“/usr/lib64/lib”目录中查找。但是,我发现我可以将“lib”更改为“lib64”将libdir=lib64
传递给配置脚本。”

我在Ubuntu 11.04上从源代码安装PHP 5.3.8时遇到了这个问题。我使用了:

./configure '--with-libdir=lib64' '--with-mysql=/usr' '--with-curl' '--with-imap' '--with-imap-ssl' '--with-kerberos' '--with-mhash=shared' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-zlib-dir' '--with-freetype-dir' '--with-mcrypt' '--with-mysqli' '--enable-gd-native-ttf' '--enable-calendar' '--enable-ftp' '--with-openssl' '--enable-pcntl' '--enable-soap' '--enable-sockets' '--enable-spl' '--enable-tokenizer' '--enable-wddx' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-config-file-path=/usr/local/apache/conf'
并且得到了同样的错误:

configure: error: Kerberos libraries not found.
检查为--with kerberos提供的路径(如果没有提供路径,则在/usr/kerberos、/usr/local和/usr中搜索)

我意识到我的kerberos安装文件位于非常不同的/usr/lib/x86_64-linux-gnu中。我尝试了建议的“-with kerberos=/usr/lib/x86_64-linux-gnu”,但正如其中一个链接页面所示,搜索会自动将“lib”添加到所提供路径的末尾

如前所述,此处链接的另一个页面讨论了脚本自动将“lib”添加到路径上(因此,在不指定路径的情况下,它在/usr/kerberos/lib、/usr/local/lib和/usr/lib中查找),但我没有意识到的是,如果您使用“-with libdir=lib64”这将导致脚本实际查找/usr/kerberos/lib64、/usr/local/lib64、/usr/lib64)

意识到这一点后,我创建了以下符号链接,并在没有指定kerberos路径的情况下重试

mkdir -p /lib/kerberos
ln -s /usr/lib/x86_64-linux-gnu/ /usr/kerberos/lib
ln -s /usr/lib64/x86_64-linux-gnu/ /usr/kerberos/lib64

这对我很有用。希望它能帮助其他人。

由于我在10.04中也遇到了这个错误,我决定粘贴我的解决方案。也许有一天它能帮助别人。在lucid上运行编译时,我从
--使用kerberos
改为
使用kerberos=shared,/usr/lib
。看起来这是作为com的全部魔力piler浏览了lib64,但没有找到那一页。

是的,我一直在那个特定的页面上(在多次谷歌搜索之后)我尝试了/usr/lib64、/usr/lib、/usr/include、/usr/include/krb5和其他一两个建议,但都没有效果。我不确定现在的问题是什么。你有没有尝试过使用kerberos而不是kerberos的
?我不确定这是不是页面上的打字错误。问题是不是使用以下选项之一调用脚本时,“检查给定给--with kerberos的路径”错误会消失?另外,kerberos库安装在哪里?您可以使用dpkg-L packageName来查询属于某个包的文件的位置。另外,您能否详细说明“它不工作”是什么意思?好的,是“它不工作”“这意味着我在编译时遇到了相同的错误,我仍然在那里。-使用kerberos是一个错误,我实际上也遇到了它——使用kerberos。无论我是否提供目录,我都会收到错误。我尝试了
dpkg-L kerberos
,我收到一条消息说“未安装包kerberos”。这是否意味着我需要安装它,您知道我如何才能做到这一点吗?当您执行
dpkg-L
时,您需要指定确切的包名。要获得安装的包列表,您可以使用
dpkg-L
(小写L)。
man dpkg
了解更多信息。Kerberos包通常具有“krb”在名称中,因此您可以运行
dpkg-l“*krb*”
。您可能想要获取文件位置的软件包是libkrb5 dev,它看起来像是您在第一个命令中安装的,但我们想知道它的确切安装位置,而不是仅仅猜测。感谢您的帮助,我非常感谢。我做了
dpkg-L libkrb5 dev
,它为我提供了一个跨n行的文件列表目录的数量,包括/usr/lib、/usr/bin、usr/include、/usr/lib/x86_64-linux-gnu。是否有我应该查找的特定文件或目录?非常感谢Kevin。我前一段时间确实解决了这个问题,但忘记了更新。我现在就这样做。干杯。