модуль php curl, вызывающий приложение apache wsgi - PullRequest
1 голос
/ 19 октября 2011

Я настроил приложение 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 Ответ

1 голос
/ 20 октября 2011

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

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

a2dismod deflate

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

Спасибо.

...