У меня есть запрос на завивки, который отлично работает на моем локальном хосте, но на реальном сервере он возвращает 500 ошибок. Вот мой код:
public static function send( $xml )
{
$xml = str_replace( "\n", "", $xml );
//Write to temporary file
$put_data = tmpfile();
fwrite( $put_data, $xml );
fseek( $put_data, 0 );
$options = array(
CURLOPT_URL => 'http://*****************/cgi-bin/commctrl.pl?SessionId=' . Xml_helper::generate_session_id() . '&SystemId=live',
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HTTPHEADER => array( 'Content-type: text/xml' ),
CURLOPT_PUT => TRUE,
CURLOPT_INFILE => $put_data,
CURLOPT_INFILESIZE => strlen( $xml )
);
$curl = curl_init();
curl_setopt_array( $curl, $options );
$result = curl_exec( $curl );
curl_close( $curl );
return $result;
}
У меня есть завиток включен на сервере!
Есть ли у кого-нибудь идеи, почему он не работает на сервере? Я нахожусь на общем хостинге, если это помогает.
Я также включил отчет об ошибках в верхней части файла, но после завершения завитки ошибки не появляются. Я просто получаю общую страницу ошибок 500.
Спасибо
UPDATE:
Я был в контакте с клиентом, и они подтвердили, что полученная информация получена и вставлена в их бэк-офисную систему. Поэтому это должно быть связано с ответом, который является причиной. Это небольшой блок xml, который, как предполагается, должен быть возвращен.
ДРУГОЕ ОБНОВЛЕНИЕ
Я пробовал тот же script на другом сервере и heroku, и я все равно получаю тот же результат.
ДРУГОЕ ОБНОВЛЕНИЕ
Думаю, я нашел путь к проблеме. Кажется, что script тайм-аут из-за тайм-аута в FastCGI, и поскольку я нахожусь на общем хостинге, я не могу его изменить. Может ли кто-нибудь подтвердить это?
ЗАКЛЮЧИТЕЛЬНОЕ ОБНОВЛЕНИЕ
Я связался с моим хостинг-провайдером, и они подтвердили, что script был тайм-аут из-за значения тайм-аута на сервере, а не того, с которым я могу получить доступ с любой функцией PHP или ini_set().