PHP медленно обрабатывает запрос мыла через браузер, но хорошо в командной строке - PullRequest
2 голосов
/ 24 мая 2011

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

Это все работает правильноно когда я запускаю через запрос браузера, это очень медленно, где-то в районе 40-х годов, чтобы установить первоначальное соединение.Когда я делаю тот же запрос, используя тот же сценарий в командной строке, он сразу проходит.

У кого-нибудь есть идеи относительно того, почему это может быть?

Приветствия

Ответы [ 3 ]

3 голосов
/ 03 января 2012

PHP кэширует wsdl в / tmp.Если вы сначала запустите из командной строки, файл кэша будет принадлежать любому пользователю, под которым вы запускаете скрипт, и apache не сможет прочитать кеш.Wsdl нужно будет загружать и анализировать каждый раз, что будет медленно.

Проверьте разрешения /tmp/wsdl*.

0 голосов
/ 24 мая 2011

Есть ли разница между php.ini, которые используются?

На стандартной установке сервера Ubuntu:

diff /etc/php5/apache2/php.ini /etc/php5/cli/php.ini

// редактирование:

Другое различие может заключаться в путях включения. У меня была эта проблема на локальном тестовом сервере, он фактически не использовал включенный класс мыла (он ничего не включал, потому что пути поиска были недопустимы), но он включал встроенный soap_client класс.

0 голосов
/ 24 мая 2011

Возможно external SOAP service пытается проверить ваш IP, и на вашем сервере разрешено ICMP, а в локальной сети - нет.
В любом случае, на этот вопрос администратор может ответить более четко: external SOAP service:)

...