Проблема с установкой PHP с поддержкой IMAP/Kerberos в Ubuntu 11


Я пытаюсь установить PHP на Ubuntu 11.04. Я компилирую из исходного кода.

Вот я устанавливаю зависимости:

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. Примерно в пяти строках над ошибкой есть запись в журнале, которая гласит checking for IMAP Kerberos support... yes.

Нужно ли указывать каталог для --with-kerberos и каким именно будет этот каталог? Я занимаюсь этим весь день и, кажется, никак не могу понять.

Заранее благодарю.

ИЗМЕНИТЬ:

Я смог решить эту проблему с помощью символической ссылки.

Ниже показано, что вы делаете перед запуском команды configure.

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

Ваше здоровье.

Author: Obinwanne Hill, 2011-09-21

3 answers

Я занимался этой проблемой, устанавливая PHP 5.3.8 из исходного кода в Ubuntu 11.04. Я использовал:

./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).{[ 5]}

При понимая это, я просто создал следующие символические ссылки и повторил попытку, не указывая путь 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

Это сработало для меня. Надеюсь, это поможет кому-то еще.

 3
Author: Kevin Gwynn, 2011-10-20 23:40:46

Вы пробовали гуглить свое сообщение об ошибке? Эта страница кажется, у вас есть жизнеспособное решение вашей проблемы.

"Я проверил свою систему и обнаружил, что библиотеки Kerberos были установлены в /usr/lib64. Поэтому я передал –с-kerberos=/usr/lib64 в сценарий настройки, но сценарий все равно сообщил, что библиотеки Kerberos не удалось найти. "

"Со страниц вывода, которые заполнили мой терминал, я обнаружил, что сценарий настройки добавляет "lib" к путь–с-kerberos, который я предоставил, поэтому он просматривал несуществующий каталог "/usr/lib64/lib". Однако я обнаружил, что могу изменить "lib" на "lib64", передав –с-libdir=lib64 в сценарий настройки"

.
 0
Author: Anson, 2011-09-21 19:42:45

Поскольку у меня тоже была эта ошибка с 10.04, я решил также вставить свое решение. Может быть, когда-нибудь это кому-нибудь поможет. Запустив компиляцию на lucid, я изменил значение с --with-kerberos на with-kerberos=shared,/usr/lib. Похоже, в этом была вся магия, поскольку компилятор пропустил lib64, пропустив это.

 0
Author: Chris, 2012-03-12 18:08:58