2016-07-04 4 views
0

Я пытаюсь перенести API на основе PHP из общего хостинга в Google App Engine. Я скачал PHP SDK, создал новое приложение в пусковой установке, включен CURL в php.ini (с использованием extension=curl.so), и теперь я получаю эту ошибку:cURL, Google App Engine и пространства имен

Fatal error: Call to undefined function MyNamespace\curl_init() in C:\Users\David\Desktop\GAE\mysampleapp\classes\myclass.php on line 56

Если добавить обратную косую черту к curl_init() (чтобы сказать ему, чтобы не использовать MyNamespace), я получаю это:

Fatal error: Call to undefined function curl_init() in C:\Users\David\Desktop\GAE\mysampleapp\classes\myclass.php on line 56

Короткие включения cURL_lite() (который я мог бы решать позже, потому что не поддерживает опции CURL я нужен), как я могу это решить?

EDIT: Мой вопрос отличается от предложенного дубликата, потому что я следую Google собственного instructions for enabling cURL

EDIT 2: Я был в состоянии получить это работает на App Engine SDK/пусковой установки, изменив расширение на php_curl. длл.

+1

Возможный дубликат функции [curl \ _init() не работает] (http://stackoverflow.com/questions/4477535/curl-init-function-not-working) – GiamPy

+0

@GiamPy Это другое, поскольку cURL включен в php.ini, используя [инструкции на собственном сайте документации Google] (https://cloud.google.com/appengine/docs/php/config/php_ini) – Grayda

+0

Хорошо, похоже, что cURL фактически не включен. См. Мой ответ для разъяснения. В основном мне пришлось удалить кавычки в версии GAE и перейти на php_curl.dll, когда делаете это локально. – Grayda

ответ

0

Итак, комментарий GiamPy заставил меня думать, поэтому я включил phpinfo() в php.ini и обнаружил, что cURL вообще не загружается.

Я изменил расширение на php_curl.dll, и теперь он работает. Ошибка новобранец (я пишу PHP-приложения уже более 10 лет), но этот ответ не исправил cURL в реальном App Engine, пока я не увидел ответ в другом вопросе, указав, что удаление цитат в линии расширения работало для них.

Так что теперь мой местный php.ini является:

extension="php_curl.dll"

В то время как мой GAE php.ini является:

extension=curl.so

И теперь я могу использовать оба.

+0

Отлично! Это могла быть только глупая ошибка, а не большая сделка! – GiamPy