Apache + PHP-FPM + chunked POST -> Ошибка 411

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Я тут пытаюсь на Travis'е гонять тесты своего HTTP_Request2 с поддержкой работы с сетью. В принципе всё взлетело по описанному в документации Travis'а, но есть нюанс: тесты, которые пытаются отправить запрос POST с Transfer-Encoding: chunked, не проходят, т.к. сервер шлёт ошибку 411 Length Required с текстом "A request of the requested method POST requires a valid Content-length."

В Апаче с mod_php такие запросы работают, но Апач с mod_php не поддерживается в Travis'е.

Короче вопрос знатокам: оно в подобной комбинации в принципе не умеет принимать chunked post или есть какие-то настройки php-fpm / mod_fastcgi, которые надо подкрутить?
 

AnrDaemon

Продвинутый новичок
А какая нафиг разница травису, mod_php или CGI?
А вообще смотри с логи.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
А какая нафиг разница травису, mod_php или CGI?
Не знаю, но в документации, на которую я предусмотрительно дал ссылку в исходном сообщении, написано:
Документация написал(а):
Currently Travis CI does not support mod_php for apache, but you can configure php-fpm for your integration tests.
По существу вопроса есть чё?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Что в логах апача, третий раз спрашиваю?…
Добавил в обработку тестов вывод логов. Например здесь выводятся: https://travis-ci.org/pear/HTTP_Request2/jobs/68703223

Из интересного:
Код:
[Sun Jun 28 16:22:39 2015] [error] [client ::1] chunked Transfer-Encoding forbidden: /php5-fcgi/postparameters.php
таки кто его запрещает, и как разрешить?
 

AnrDaemon

Продвинутый новичок
Запрещает обрабочик, разрешить там же. Если обработчик вообще понимает такие слова. WSGI например фиксится.
Апач 2,2 или 2,4? И вообще почему апач, раз CGI используется?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Запрещает обрабочик,
"Обработчик" чего?
разрешить там же.
Где "там же"?
Если обработчик вообще понимает такие слова. WSGI например фиксится.
Про WSGI я в интернетах уже нашёл, что есть
Код:
WSGIChunkedRequest On
Я пытаюсь добиться ответа: есть что-то такое для связки PHP-FPM с Апачем?

По ссылке из предыдущего сообщения английским по чёрному было написано
Код:
<address>Apache/2.2.22 (Ubuntu) Server at hr2.local Port 80</address>
Но я понимаю, по ссылкам ходить куда менее интересно, чем их требовать.

И вообще почему апач, раз CGI используется?
Потому что, мой деревянный друг, я использую при работе с Travis'ом рекомендуемые в документации Travis'а инструменты, о чём было сказано в первом же сообщении.

Т.е. я правильно понимаю:
- ответа на ключевой вопрос "есть ли возможность включить поддержку chunked request при использовании связки PHP-FPM с Апачем" ты не знаешь даже близко,
- наводящие вопросы задаёшь чисто для поддержания светской беседы?
 

AnrDaemon

Продвинутый новичок
Ну раз вам моё общество настолько неинтересно, что вы начинаете обзываться, я вас покину.
Напоследок же задам вопрос "на подумать" - если ты используешь рекомендованные инструменты, то почему получаешь нерекомендованные результаты? Может, в консерватории что-то поправить, а не компостировать себе мозг неизвестно чем?…
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
не знаю, связано ли, но в fcgi с post-запросами без content lenght на 5.6 при определенных настройках просто сегфолт
https://bugs.php.net/bug.php?id=68921

AnrDaemon, прости, но твои 5 копеек здесь таки не по делу, учить Sad Spirit-а смотреть в логи явно не требуется
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
@grigori, учить смотреть может и не требуется, а вот говорить нам о том, что там пишется - приходится учить.
Я вот не стою за его спиной в монитор через его плечо не смотрю.
Может, я и не смогу помочь напрямую, но вытянуть максимум информации, чтобы тем, кто разбирается, было проще понять происходящее - это мне удаётся без труда.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
не знаю, связано ли, но в fcgi с post-запросами без content lenght на 5.6 при определенных настройках просто сегфолт
https://bugs.php.net/bug.php?id=68921
Сомневаюсь: тут, похоже, запросы до PHP просто не доходят, режутся ещё Апачем гораздо раньше.

В общем надо будет попробовать настроить там nginx вместо Апача: в ём, насколько я понимаю, chunked POST обрабатывается.

Можно ещё, конечно, встроенный сервер PHP, но что-то мне подсказывает, что это будет тестирование не моего клиента, а этого самого сервера.

AnrDaemon, прости, но твои 5 копеек здесь таки не по делу, учить Sad Spirit-а смотреть в логи явно не требуется
Я ещё (чуть-чуть) верил, что клован чем-то помочь хочет, пока он про версию Апача спрашивать не начал...
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
а я бы, наоборот, использовал встроенный, чтобы убрать 2 ненужных слоя - веб-сервер и fcgi sapi

411 я встречал при обработке PUT-запросов с nginx
 
Последнее редактирование:

grigori

( ͡° ͜ʖ ͡°)
Команда форума
судя по всему, не так давно в nginx сделали нормальную обработку chunked
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
В общем и целом включил mod_php вместо php-fpm.

Там, конечно, получается, что ставится стандартная для ubuntu версия php вместо той, на которой планируется тестировать:
Код:
Get:9 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main libapache2-mod-php5 amd64 5.3.10-1ubuntu3.18 [3,137 kB]
но учитывая, что тестирую-то я клиент, где версия нужная, а вспомогательные файлы для тестов на сервере могут работать на какой угодно, вариант устраивает.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Вообще, интересный вариант. Я тоже думал как тестировать курл, и придумал только открывать и слушать сокет. С Тревисом немного влом разбираться, но, видимо, оно того стоит.
 
Сверху