Проблема с установкой 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
Ваше здоровье.
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
Это сработало для меня. Надеюсь, это поможет кому-то еще.
Вы пробовали гуглить свое сообщение об ошибке? Эта страница кажется, у вас есть жизнеспособное решение вашей проблемы.
"Я проверил свою систему и обнаружил, что библиотеки Kerberos были установлены в /usr/lib64. Поэтому я передал –с-kerberos=/usr/lib64 в сценарий настройки, но сценарий все равно сообщил, что библиотеки Kerberos не удалось найти. "
"Со страниц вывода, которые заполнили мой терминал, я обнаружил, что сценарий настройки добавляет "lib" к путь–с-kerberos, который я предоставил, поэтому он просматривал несуществующий каталог "/usr/lib64/lib". Однако я обнаружил, что могу изменить "lib" на "lib64", передав –с-libdir=lib64 в сценарий настройки"
.Поскольку у меня тоже была эта ошибка с 10.04, я решил также вставить свое решение. Может быть, когда-нибудь это кому-нибудь поможет. Запустив компиляцию на lucid, я изменил значение с --with-kerberos
на with-kerberos=shared,/usr/lib
. Похоже, в этом была вся магия, поскольку компилятор пропустил lib64, пропустив это.