Lighttpd + cURL = HTTP error 417
Dankzij cURL is het met PHP enorm simpel bestanden via HTTP te sturen, bijvoorbeeld om avatars van gebruikers naar op aparte mediaserver te plaatsen.
Mocht die mediaserver een lighttpd versie ouder dan 1.4.21 draaien (Debian stable zit op het moment van schrijven op 1.4.19), dan kan het gebeuren dat je een HTTP error 417 oploopt.
Die error wordt veroorzaakt doordat cURL een ‘Expect’ header meestuurt bij bestanden groter dan 1024 bytes. Een header die lighttpd < 1.4.21 niet helemaal snapt.
De oplossing is gelukkig simpel: forceer een lege ‘Expect:’ header. Bijvoorbeeld zo:
curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘Expect:’));
0 reacties - Geplaatst in Webdevelopment, PHP
