php curl not working on ubuntu server got http_code 403

August 9, 2015 2.2k views
DigitalOcean PHP

I using curl php to get data from another server. When I test on localhost it working fine.

These are my testing code


$data = file_get_contents_curl(',web-elements.json');

function file_get_contents_curl($url) 
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $data = curl_exec($ch);
    return $data;


I got this error when using on vps server

["url"]=> string(79) ",web-elements.json" ["content_type"]=> string(9) "text/html" ["http_code"]=> int(403) ["header_size"]=> int(148) ["request_size"]=> int(231) ["filetime"]=> int(-1) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(0) ["total_time"]=> float(0.076722) ["namelookup_time"]=> float(0.038561) ["connect_time"]=> float(0.045397) ["pretransfer_time"]=> float(0.045438) ["size_upload"]=> float(0) ["size_download"]=> float(564) ["speed_download"]=> float(7351) ["speed_upload"]=> float(0) ["download_content_length"]=> float(564) ["upload_content_length"]=> float(0) ["starttransfer_time"]=> float(0.07661) ["redirect_time"]=> float(0) ["redirect_url"]=> string(0) "" ["primary_ip"]=> string(12) "" ["certinfo"]=> array(0) { } ["primary_port"]=> int(80) ["local_ip"]=> string(14) "" ["local_port"]=> int(34671)

My server using Ubuntu php 5.5

  • Are you still getting this error? I ask because the URL and your code appear to be working for me. So, maybe it was just a temporary error with the Envato Market API, not an issue in your code or a problem on your server.

  • Yes it still error.

3 Answers

May be because graphicriver is requiring authentification? 403 -> forbidden

  • No it is not. Cuz I test it on my localhost it working fine. but when I test it on vps server it show that error. and I can't any data from it.

If it's working from your local machine, it could be the case that your VPS IP address was blacklisted in some way in that API. A good idea is to create a new droplet and test from it.

Have another answer? Share your knowledge.