Почему два моих рабочих сервера не выполняют эту команду curl, а мой локальный тестовый сервер выполняет?

У меня три сервера. Два - это действующие серверы, на которых размещены веб-сайты в Интернете. Один из них - это локальный тестовый сервер, который не отображается в Интернете в большей степени.

Я пытаюсь запустить PHP-скрипт, который отправляет сообщения в Twitter , и он полагается на curl. Когда я запускаю сценарий на своей локальной тестовой машине, он работает отлично. Когда я пытаюсь запустить его на любом из моих действующих серверов, он выдает следующую ошибку:

PHP Fatal error: Call to undefined function Abraham\TwitterOAuth\curl_init()

На моем локальном компьютере, когда я запускаю php --info | grep -i curl , я получаю такой ответ:

/etc/php5/cli/conf.d/20-curl.ini,
curl
cURL support => enabled
cURL Information => 7.35.0

У меня есть SSH-доступ только к одному из моих действующих серверов (другой - платный хостинг с более ограниченными возможностями), и когда я запускаю ту же команду на этом сервере, я не получаю ответа. Командная строка возвращается ни с чем. Однако, если я перейду в каталог /etc/php5/cli/conf.d/ на моем реальном сервере, там будет файл 20-curl.ini .

Все серверы основаны на Ubuntu, и я запустил apt-get install php5-curl curl на всех из них, и все они говорят, что используют последнюю версию.

Вот последняя запутывающая деталь. на всех серверах, если я запускаю этот PHP-скрипт на любом из моих серверов, на моем локальном тестовом сервере и на обоих живых серверах, я получаю положительный ответ. Это код:

echo 'Curl: ', function_exists('curl_init') ? 'Enabled' : 'Disabled';

... и когда я запускаю его, я получаю следующий результат:

Curl: Enabled

Bottom line, кажется, что curl установлен на всех трех серверах, но что-то не так с установкой на обоих моих живых серверах.

Что я могу сделать, чтобы диагностировать и решить, почему мои живые серверы не могут запустить скрипт PHP, который мой локальный тест сервер может?

0
задан 30 June 2016 в 16:03
1 ответ

Скорее всего, вам не хватает этой библиотеки на сервере: https://github.com/abraham/twitteroauth

Ошибка PHP показывает, что он пытается загрузить функцию из TwitterOAuth, и он не работает, потому что библиотека отсутствует.

Другая возможность состоит в том, что ваш скрипт содержит какую-то библиотеку автозагрузчика, которая некорректно работает в среде вашего живого сервера (ищет библиотеку по неправильному пути ).

1
ответ дан 4 December 2019 в 16:34

Теги

Похожие вопросы