Не могу установить libcurl PHP на Ubuntu Linux

Я пытаюсь использовать новый facebook API, и для этого требуется libcurl PHP. я использовал

sudo apt-get install php5-curl
sudo apachectl -k restart

И это не сработало. Я получаю ту же ошибку, и на странице phpinfo() ничего не говорится о libcurl.

Источником этой проблемы, вероятно, является то, что я собрал некоторые инструменты из исходного кода (apache2, php), но потом мне стало скучно, поэтому я установил множество расширений с помощью менеджера пакетов. Но я не совсем понимаю, как диагностировать точку отказа.

Установка apt-get для curl определенно сработала, и ее можно найти в

/usr/lib/php5/20060613/curl.so

Я думаю, что большая часть моей путаницы связана с тем, что я не знаю, какие файлы куда идут и для чего они предназначены. Любая помощь будет оценена по достоинству, и, пожалуйста, сообщите мне, если мне нужно предоставить дополнительную информацию.

edit: Конкретная ошибка, которую я получаю:

Exception: Facebook needs the CURL PHP extension.

из линии

if (!function_exists('curl_init')) {
  throw new Exception('Facebook needs the CURL PHP extension.');
}

Убунту: 9.10

PHP: 5.2.13

Загруженный файл конфигурации: /etc/php5/apache2/php.ini


person Bill Prin    schedule 02.05.2010    source источник
comment
Какую же ошибку вы имеете в виду? Какое сообщение об ошибке вы получаете?   -  person Pekka    schedule 03.05.2010
comment
Следует спросить на: superuser.com   -  person tur1ng    schedule 03.05.2010
comment
Что ж, его можно перенести туда, если люди считают, что он абсолютно там принадлежит, но очевидно, что это связано с программированием, поэтому я мог видеть это на любом из них.   -  person Bill Prin    schedule 03.05.2010


Ответы (4)


В общем, плохая идея смешивать и сопоставлять программное обеспечение из менеджера пакетов вашего дистрибутива с тем, что вы создали сами. Менеджер пакетов ничего не знает о том, что вы создали сами, и поэтому может запутаться.

Не только это, но кто сказал, что материал из менеджера пакетов даже бинарно совместим с материалом, который вы создали сами? Если вы строите все это сами, то, по крайней мере, вы знаете, что все это будет совместимо.

Мне кажется, что вы должны удалить расширения и создать их самостоятельно. Если вы не можете или не хотите этого делать, вернитесь и установите apache и друзей через менеджер пакетов, но я бы порекомендовал набраться терпения и выбрать первый вариант.

person Troubadour    schedule 02.05.2010
comment
Это то, что я понял, и каким будет мое возможное обращение за помощью. Я надеялся на ярлык, если это была просто проблема с конфигурацией :) - person Bill Prin; 03.05.2010
comment
@FranticPedantic: Наверное, хорошая идея. Не поймите меня неправильно, в данном случае это вполне может быть просто проблема с конфигурацией (которую другие наверняка смогут диагностировать лучше, чем я), но я думаю, что вам лучше, если все построено одинаково, а затем вы знать, с чем имеешь дело. - person Troubadour; 03.05.2010

Ответ на вопросы

Какая версия убунты?

Какая версия PHP?

Как настроены Apache и PHP?

Какие ini-файлы, по словам phpinfo(), анализируются? (должно быть в самом верху)

person Reece45    schedule 02.05.2010
comment
некоторые из этих вопросов лучше сделать в виде комментариев, так как они на самом деле не добавляют никаких ответов на вопрос. - person Jorge Israel Peña; 03.05.2010

Возможно, apt не смог правильно изменить файл php.ini для загрузки расширения curl?

Проверьте свой php.ini и посмотрите, есть ли у вас такая строка:

extension=curl.so

или, может быть:

extension=/usr/lib/php5/20060613/curl.so
person timdev    schedule 02.05.2010
comment
пакет создает следующий ini-файл: /etc/php5/conf.d/curl.ini, который содержит только строку: extension=curl.so - person yincrash; 01.09.2011

Чтобы проверить, установлен ли php-curl, выполните следующие действия:

  1. Создайте файл на своем веб-сервере (в Ubuntu он будет в папке /var/www), назовите его info.php
  2. Откройте этот файл и введите следующую команду:

    <?php phpinfo(); ?>
    
  3. Сохраните этот файл

  4. Откройте ваш любимый браузер и откройте этот файл (например: http://localhost/info.php)
  5. Теперь вы увидите информацию о вашей установке PHP
  6. Ищите Curl, и если вы не можете его найти, это означает, что на вашем php не установлен curl.

Чтобы установить php-curl, выполните следующие действия:

  1. Откройте терминал и введите эту команду:

    sudo apt-get install curl libcurl3 libcurl3-dev php5-curl php5-mcrypt
    
  2. После завершения откройте файл php.ini (мой находится в /etc/php5/apache2/php.ini) и добавьте эту команду: extension=curl.so

  3. Сохраните файл и перезапустите apache с помощью этой команды:

    /etc/init.d/apache2 restart
    
  4. Снова проверьте информационную страницу PHP, вы обнаружите, что PHP-CURL установлен.
  5. Вот и все

Источник: http://www.ivankristianto.com/os/ubuntu/howto-install-curl-in-php-apache/379/

person elric    schedule 03.04.2012
comment
Это хорошее начало, но, вероятно, он вызвал бы больший интерес в качестве ответа, если бы в нем были пронумерованные элементы в отдельных строках, и если бы в № 2 был написан код, который был бы виден (вы можете сделать это с помощью '{} ' над полем редактирования ответа.) - person waxspin; 03.04.2012
comment
ЭТО РАБОТАЛО ДЛЯ МЕНЯ sudo apt-get install curl libcurl3 libcurl3-dev php5-curl php5-mcrypt И ПЕРЕЗАПУСКА.. СПАСИБО :d - person Manish Shrivastava; 19.02.2014