Устранение неполадок cURL в Ubuntu 11.10

3

У меня установлен curl:

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

и я обновил файл php.ini, чтобы включить:

extension=php_curl.dll

Я проверяю, работает ли curl со следующей командой:

php -i | grep curl

и я получаю следующее сообщение:

PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку '/usr/lib/php5/20090626+lfs/php_curl.dll' -/usr/lib/php5/20090626+lfs/php_curl.dll: не удается открыть общий объект file: Нет файла или каталога в Unknown в строке 0 PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку '/usr/lib/php5/20090626+lfs/sqlite.so' -/usr/lib/php5/20090626+lfs/sqlite.so: не удается открыть файл общих объектов: нет такой файл или каталог в Unknown в строке 0 Дополнительные .ini файлы parsed = > /etc/php5/cli/conf.d/curl.ini, свернуться

Я также проверил curl, создав файл testCurl.php, который содержит следующее:

<?php
echo ‘<pre>’;
var_dump(curl_version());
echo ‘</pre>’;
?>

Когда я перехожу к localhost/testCurl.php, я получаю сообщение об ошибке: HTTP Error 500

Может ли кто-нибудь помочь мне заставить работать завиток?

  • 4
    Разве это не должно быть по вине сервера?
  • 1
    Очевидно, что проблема с сервером.
Показать ещё 3 комментария
Теги:
curl

3 ответа

7
Лучший ответ

Вы помещаете неправильную информацию в свой php.ini

extension=php_curl.dll

В Ubuntu/Unix, который является

extension=php_curl.so

.so означает общий объект, то есть динамическую библиотеку, о которой говорят сообщения об ошибках. В Windows .dll вы, вероятно, просто смешали это.

И, похоже, вы пытаетесь загрузить sqlite.so, который не существует. Обычно вам не нужно менять файл php.ini при установке библиотек на Ubuntu с помощью apt, потому что скрипты пакетов позаботятся об этом благодаря работе сопровождающих пакетов.

  • 0
    Я изменил его на .so, и он все еще не работает ...
  • 1
    Вы не должны изменять это, но комментировать это. Также удалите другую ошибку, возникающую при запуске php. расширение php5-curl настраивается само по себе, оно должно просто работать. В противном случае вам нужно узнать, что происходит. «все еще не работает» все еще не говорит много. То, что я ответил, было больше комментария и некоторой общей информации. Это все, что я могу сказать.
0

Если вы используете Ubuntu или имеете более одного php.ini, вы можете столкнуться с этой проблемой включения расширения = php_curl.dll.

Любопытно, но я столкнулся с этой проблемой, используя UBUNTU. По какой-то причине он вызывал DLL файл, но linux использует .so файлы.

Первое, что нужно сделать, это echo phpinfo(); в .php файле, чтобы проверить загрузку php.ini.

Файл конфигурации (php.ini) Путь /etc/php/ 7.1/apache2 Загруженный файл конфигурации /etc/php/ 7.1/apache2/something/php.ini

Итак, если вы меняете только в одном файле, это может не иметь правильного эффекта.

В моем случае, когда в /etc/php/ 7.1/apache2/php.ini и CURL звонил таким образом: ; Расширение = curl.dll

Изменить на расширение = curl.so

Сохранить и перезапустить apache: sudo systemctl restart apache2

0

Поддержка sqlite2 удаляется с php5, я думаю, поэтому sqlite.so больше не доступен в текущей версии пакета. Вы можете вручную восстановить его из natty-пакетов (это сработало для меня):

  • Загрузите старый пакет отсюда: http://packages.ubuntu.com/natty-updates/php5-sqlite
  • Извлечет sqlite.so
  • Переместите sqlite.so(+ pdo_sqlite.so) в /usr/lib/php 5/20090626 + lfs/
  • Изменить права доступа к файлам root: root

(https://lists.ubuntu.com/archives/ubuntu-server-bugs/2011-October/065547.html)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню