Обновить:
В отчаянии я сделал следующее в оболочке:
REDIRECT_STATUS=true SCRIPT_FILENAME=/var/www/... REQUEST_METHOD=POST GATEWAY_INTERFACE=CGI/1.1 export REDIRECT_STATUS export SCRIPT_FILENAME export REQUEST_METHOD export GATEWAY_INTERFACE echo "test=1" | php-cgi   … и STILL переменные $_POST не отображаются в результатах этого: 
 <?php var_dump($_POST); ?> 
  Я пытаюсь создать небольшой веб-сервер, который взаимодействует с двоичным php-cgi .  Однако все идет не так хорошо.  php-cgi корректно обрабатывает запросы GET.  Когда дело доходит до запросов POST, массив $_POST пуст, даже когда вещи получают POSTED. 
  Я проверил HTTP-заголовки, которые php-cgi двоичный файл php-cgi и они действительно включают данные POST и заголовок Content-type: application/x-www-form-urlencoded . 
  Что могло бы php-cgi двоичный файл php-cgi видеть, что в запрос включены данные POST? 
Я продвигаюсь вперед, я выкопал некоторые вещи из исходного кода PHP :
/sapi/cgi/cgi_main.c :
468: static int sapi_cgi_read_post(char *buffer, uint count_bytes TSRMLS_DC)
(Я не знаю, откуда эта функция вызывается).
Прочитав ответ ниже, я попробовал:
 <?php var_dump($HTTP_RAW_POST_DATA); ?> 
… которые дали результат:
 NULL 
… указывая на то, что здесь работает что-то еще странное.
Я приближаюсь … Я нашел эту функцию в /main/php_content_types.c :
SAPI_API SAPI_POST_READER_FUNC (php_default_post_reader)
… и, похоже, это код, который обрабатывает запросы POST.
Я, наконец, понял это:
  По-видимому, необходимо установить переменную среды CONTENT_LENGTH . 
Добавление:
 CONTENT_LENGTH=6 export CONTENT_LENGTH 
к моему примеру выше заставляет его работать правильно!
Вы упомянули, что ваша система отлично работает. длина контента должна быть установлена только для POST
Также это может помочь, это спецификация CGI / 1.1. Он показывает, какие переменные среды должны быть установлены:
http://graphcomp.com/info/specs/cgi11.html и этот lib.ru/WEBMASTER/cgi1_1spec/interface.html
Каковы минимальные переменные среды, необходимые для получения запросов GET?
Попробуйте проверить переменную $ HTTP_RAW_POST_DATA.
http://php.net/manual/en/reserved.variables.httprawpostdata.php