модуль php curl, вызывающий приложение apache wsgi

#php #django #apache #curl #wsgi

#php #django #apache #curl #wsgi

Вопрос:

Я настроил приложение django с использованием mod-wsgi и apache. Это приложение протестировано и отлично работает с модулем Linux curl. Однако, когда это приложение вызывается php-кодом через библиотеку curl , я получаю ответ в виде » x1f x8b b» вместо предполагаемого ответа xml.

Оба приложения php и python запущены на одном компьютере с разными портами.

Я пытался искать помощь в Интернете, но бесполезно, поскольку мне не хватает знаний о том, как apache ведет себя в этой ситуации. Любая помощь по этому вопросу приветствуется. Пожалуйста, дайте мне знать, если потребуются какие-либо дополнительные сведения.

Обновить: Я сузил проблему до меньшего количества параметров. Я полностью устранил приложение apache / django / wsgi, запущенное на порту 8000. Теперь php-приложение, запущенное через порт 80, просто пытается (php curl) получить статический текстовый файл через порт 8000.

Даже в этом случае проблема сохраняется, и возвращаемая строка ответа все та же » x1f x8b b» . Следует отметить одну странную вещь: в обоих случаях (приложение django или статический файл) возвращаемый код ответа http равен 200. Я попытался загрузить несуществующий статический файл и заметил, что код ответа равен 404, а ответ все тот же.

Apache прослушивает как 80, так и 8000 портов.

 netstat -antp | grep "80"

tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      4348/python     
tcp6       0      0 :::80                   :::*                    LISTEN      1183/apache2    
tcp6       0      0 :::8000                 :::*                    LISTEN      1183/apache2    
  

Так что должна быть какая-то проблема с apache, которую я пропускаю. Пожалуйста, помогите.

Спасибо.

Ответ №1:

Я решил проблему. Проблема заключалась в том, что в основном вызов php curl, который я использую, получает ответ в формате gzip. Этого не происходило при вызове Linux curl, поскольку он автоматически распаковывает ответ перед записью.

Мне нужно было только отключить модуль deflate в apache.

 a2dismod deflate
  

Это сработало как шарм. Теперь статические файлы, а также приложение django / wsgi работают без сбоев.

Спасибо.